十二 发表于 2010-12-14 20:55:18

挫= =

本帖最后由 十二 于 2010-12-14 21:01 编辑

事先声明很挫很挫- =    能无视就无视吧,能飘过就飘过。

OD = = F3 载入 WinMend Folder Hidden

Ctrl+N 查看程序的输入表 给CreateDirectoryW下断点,至于为什么给他下断点,因为我跟过(MS这理由不成立)   = =   总之就是根据CreateFile跟出来的如果你想少安装两次程序就对CreateDirectoryW下断把 = =

F9运行,能看到有一处异常POP ESI。估计是有SEH暗桩,不用理他继续F9运行直到程序被断下。

断在了kernel32.dll中 看堆栈。

0012FA18   0040C4B2/CALL 到 CreateDirectoryW 来自 FolderHi.0040C4AD
0012FA1C   01A327FC|Path = \\?\C:\Recycler\S-1-5-21-842925246-2025429265-682008880-1013\com4\hidefiles\WinMend-Folder-Hidden
0012FA20   00000000\pSecurity = NULL
0012FA24   0123F001
0012FA28   0040BF2A返回到 FolderHi.0040BF2A 来自 FolderHi.0040C4A0
0012FA2C   0012FA54指向下一个 SEH 记录的指针
0012FA30   0040BF4FSE处理程序

双击/CALL 到 CreateDirectoryW 来自 FolderHi.0040C4AD,回到0040C4AD处可以看到函数执行前的入栈以及一些赋值状况。

CreateDirectoryW 有两个参数 Path、 pSecurity。 看也能看出来 Path 所指向的是一个目录。 百度上查得原型CreateDirectoryW 创建一个新目录Path 是新目录名 pSecurity是目录的安全特性。

再次F9可以看到堆栈中的   CreateDirectoryW创建了一个名称为一堆H的文件夹。

再次F9 还是一样再里层又创建了一个一堆以H命名的文件夹。

F2取消这个断点然后F9运行。弹出一个对话框,似乎是让你输入密码的- = 这个程序是别人给我的似乎是忘记密码了然后。。。。。。。

回到OD给CreateFileW断点,为什么下这个断如果你不想跟踪消息然后一步一步走,就在CreateFileW断 - =

回到对话框,随便打入一个密码然后确定。OD帮我们断下来,看堆栈。

0012F6A4   004C90EA/CALL 到 CreateFileW 来自 FolderHi.004C90E5
0012F6A8   02A7428C|FileName = \\?\C:\Recycler\S-1-5-21-842925246-2025429265-682008880-1013\com4\hidefiles\WinMend-Folder-Hidden\HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\HH...
0012F6AC   C0000000|Access = GENERIC_READ|GENERIC_WRITE
0012F6B0   00000000|ShareMode = 0
0012F6B4   00000000|pSecurity = NULL
0012F6B8   00000002|Mode = CREATE_ALWAYS
0012F6BC   00000000|Attributes = 0
0012F6C0   00000000\hTemplateFile = NULL

在FileName 上右键数据窗口中跟随。往下拉

02A7455C2E 00 2E 00 2E 00 5C 00 46 00 6F 00 6C 00 64 00...\Fold
02A7456C65 00 72 00 5F 00 38 00 34 00 32 00 39 00 32 00er_84292
02A7457C35 00 32 00 34 00 36 00 5C 00 38 00 34 00 32 005246\842
02A7458C39 00 32 00 35 00 32 00 34 00 36 00 2D 00 32 00925246-2
02A7459C30 00 32 00 35 00 34 00 32 00 39 00 32 00 36 0002542926
02A745AC35 00 2D 00 48 00 69 00 64 00 65 00 50 00 61 005-HidePa
02A745BC73 00 73 00 77 00 6F 00 72 00 64 00 2E 00 69 00ssword.i
02A745CC6E 00 69 00 00 00                              ni.


可以看到一个以ini的文件。

F2取消断点,给WriteFile下断。F9运行,堆栈。

0012F61C   0040BD3D/CALL 到 WriteFile 来自 FolderHi.0040BD38
0012F620   000004F0|hFile = 000004F0
0012F624   012C4278|Buffer = 012C4278
0012F628   00000031|nBytesToWrite = 31 (49.)
0012F62C   0012F634|pBytesWritten = 0012F634
0012F630   00000000\pOverlapped = NULL

Alt+V-H查看句柄找到000004F0可以看到句柄名称为那一串路径

Alt+C回到CPU窗口右键Buffer = 012C4278数据窗口中跟随 ASCII中记录的正好有你打的明文密码。

接着F9看看还写了什么别的文件没有。还有写Desptop.ini不过似乎不重要。

隐藏文件的原理也很简单就是把文件放入CreateFileW所建的目录。

找到C:\Recycler\S-1-5-21-842925246-2025429265-682008880-1013\但是并不能看到com4文件夹。

回想WriteFile最后写入的文件Desptop.ini用cmd删除掉此文件正常显示com4但是到了第二层H。。。。目录无法进行继续访问。这是由于windows没办法处理260字节以上的目录名引起的BUG。

在此感谢火柴无限蓝

处理这种BUg非常简单就是缩短前目录的H。。。个数。 = =

到此就可以任意修改password为任意值了。

密码是明文的,程序没有加密算法,也没明显的anti。 如果有加密算法可以尝试跟踪WriteFile。或者在密码输入框跟踪消息。

很挫很挫,就当是那个OD教程的实例?

十二 发表于 2010-12-14 20:57:17

此处提供WinMend-Folder-Hidden

点我下载

四爺 发表于 2010-12-14 21:16:03

在技术群潜水很大壓力

神符影之歌 发表于 2010-12-15 17:26:08

12君V5其实某符昨天在群里已经看过一次了~特意来顶贴的
页: [1]
查看完整版本: 挫= =