能力值:
(RANK:350 )
2 楼
BOOL WriteFile(
HANDLE hFile, // handle to file to write to
LPCVOID lpBuffer, // pointer to data to write to file
DWORD nNumberOfBytesToWrite, // number of bytes to write
LPDWORD lpNumberOfBytesWritten, // pointer to number of bytes written
LPOVERLAPPED lpOverlapped // pointer to structure needed for overlapped I/O
);
调用时如下:
push lpOverlapped // pOverlapped = NULL
push lpNumberOfBytesWritten // pBytesWritten = 0012F8D8
push nNumberOfBytesToWrite // nBytesToWrite = 1EE0 (7904.)
push lpBuffer // Buffer = 001A0F48
push hFile // hFile = 000001C8 (window)
call WriteFile
你在OD堆栈中看的数据就是传给WriteFile的参数。
Buffer = 001A0F48 -》001A0F48 ASCII "[XPTaskbar] File=osxp\xpstrict.xp
写的文件应是:xpstrict.xp
能力值:
( LV2,RANK:10 )
3 楼
writefile函数第一个参数是文件句柄,通过CreateFileA函数返回的。从WriteFile函数的参数以及相关堆栈无法查出来到底写的什么文件,这里之所以查出来了,是利用了堆栈相关性而已,也就是说上面这个文件只是作为参考,未必真的就是写的文件。正确方法是拦截这个函数前面的CreateFileA函数,看看第一个参数指向的内容
能力值:
( LV2,RANK:10 )
4 楼
最初由 upm 发布 writefile函数第一个参数是文件句柄,通过CreateFileA函数返回的。从WriteFile函数的参数以及相关堆栈无法查出来到底写的什么文件,这里之所以查出来了,是利用了堆栈相关性而已,也就是说上面这个文件只是作为参考,未必真的就是写的文件。正确方法是拦截这个函数前面的CreateFileA函数,看看第一个参数指向的内容
那请问您能不能根据writefile函数第一个参数文件句柄“hFile”查到具体读写的文件路径呢?
能力值:
( LV2,RANK:10 )
5 楼
拦截这个函数前面的CreateFileA函数,看看第一个参数指向的内容
能力值:
( LV2,RANK:10 )
6 楼
最初由 upm 发布 拦截这个函数前面的CreateFileA函数,看看第一个参数指向的内容
0012FA88 00500D5C |FileName = "\\.\REGVXD"
0012FA8C C0000000 |Access = GENERIC_READ|GENERIC_WRITE
0012FA90 00000003 |ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE
0012FA94 00000000 |pSecurity = NULL
0012FA98 00000003 |Mode = OPEN_EXISTING
0012FA9C 00000080 |Attributes = NORMAL
0012FAA0 00000000 \hTemplateFile = NULL
请问: “\\.\REGVXD” 是在那个目录上?
还有:cmp eax,-1;返回-1表示什么?
00500DD6 E8 1567F0FF call <jmp.&kernel32.CreateFileA>
00500DDB 83F8 FF cmp eax,-1;返回-1表示什么?
00500DDE 74 08 je short x_.00500DE8
00500DE0 50 push eax
00500DE1 E8 EA66F0FF call <jmp.&kernel32.CloseHandle>
能力值:
( LV12,RANK:660 )
7 楼
打开文件失败~
能力值:
( LV13,RANK:410 )
8 楼
\\.\REGVXD是RegMon挂入系统的驱动程序,-1在系统没有找到这个设备文件时返回,这里应该是检测你有没有开启RegMon监视程序读写注册表。
能力值:
( LV12,RANK:660 )
9 楼
以上是监测是否存在特定文件(好像是RegMon)用以反调试,如果打开文件成功,返回该文件句柄给EAX,否则返回-1,也就是说明没有这个特定文件存在...
能力值:
( LV12,RANK:660 )
10 楼
晕,楼上的好快~