首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

一段经典代码,没看懂,该如何处理

2013-10-24 
一段经典代码,没看懂据说是大牛Gary Nebbett写的,exe文件删除自身。int main(int argc, char *argv[]) {HMO

一段经典代码,没看懂
据说是大牛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返回开始调用。

热点排行