#######更新文件的问题########
曾经看到过一段汇编的删除程序自身的代码,
我对汇编不是很懂,概念比较模糊,我只是想问,
如果我不仅仅要删除,还是要把另一个文件rename到本来存在的这个文件名(也就是正运行着的自身)
怎么做??另一个程序就在同个目录,只是未更新时文件名时不同的,别误会,我不是要做病毒,而是做一个服务自动更新的软件,谢谢
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;
}
问题点数:0、回复次数:3Top
1 楼zivey(爬山虎)回复于 2003-03-03 23:33:46 得分 0
如果要程序删除自身一般的程序当然不行,会产生系统保护错误。但汇编程序可以驻留内存释放系统文件据柄,这时才可以删除。如果要修改文件本身,你只要在系统的保护模式下直接写硬盘相应的字段就可以了。Top
2 楼zivey(爬山虎)回复于 2003-03-03 23:34:22 得分 0
祝你成功···!!!Top
3 楼abrams(F-15E StrikeEagle)回复于 2003-03-03 23:35:09 得分 0
我主要想如何更新自己,应该不太难的,真是我对汇编不是很懂Top




