一段经典代码,没看懂
据说是大牛Gary Nebbett写的,exe文件删除自身。
int main(int argc, char *argv[])
{
HMODULE module = GetModuleHandle(0);
CHAR buf[MAX_PATH];
GetModuleFileName(module, buf, sizeof buf);
CloseHandle(HANDLE(4));
__asm {
lea eax, buf
push 0
push 0
push eax
push ExitProcess
push module
push DeleteFile
push UnmapViewOfFile
ret
}
return 0;
}
可我迷惑的是,UnmapViewOfFile这个函数是带一个参数的,参数在哪里?是不是那时候这个API没参数,后来改了接口?
[解决办法]
不起作用。。。。
[解决办法]
俺也不懂__asm。为什么需要删除自身?
[解决办法]
函数调用的方式压栈和出栈,能理解到这里,你就可以理解这个代码了。上面显示放入参数,push,ret返回开始调用。