关于 删除自身 失败(100)

  • 主题发起人 主题发起人 wonhunter
  • 开始时间 开始时间
W

wonhunter

Unregistered / Unconfirmed
GUEST, unregistred user!
我在网上搜索了下 发现该方法不成功啊? 为啥呢?procedure deleteSelf;var hModule: THandle;szModuleName: array[0..MAX_PATH] of char;hKrnl32: THandle;pExitProcess, pdeleteFile, pFreeLibrary, pUnmapViewOfFile: pointer;ExitCode: UINT;beginhModule := GetModuleHandle(nil);GetModuleFileName(hModule, szModuleName, sizeof(szModuleName));hKrnl32 := GetModuleHandle('kernel32');pExitProcess := GetProcAddress(hKrnl32, 'ExitProcess');pdeleteFile := GetProcAddress(hKrnl32, 'DeleteFileA');pFreeLibrary := GetProcAddress(hKrnl32, 'FreeLibrary');pUnmapViewOfFile := GetProcAddress(hKrnl32, 'UnmapViewOfFile');ExitCode := system.ExitCode;CloseHandle(THANDLE(4));asmlea eax, szModuleNamepush ExitCodepush 0push eaxpush pExitProcesspush hModulepush pdeleteFilepush pUnmapViewOfFileretendend;系统是XP
 
为啥呢?这是为啥呢?
 
自身文件在运行的时候,是不能删除的。我删除自身的时候,都是退出的时候建立一个批处方文件,再调用这个批处理文件
 
我在网上看到有一个人发的程序可以在运行中删除的,只是没有源代码
 
CloseHandle(THANDLE(4));这个是Windows2000的硬编码.其他系统是已经行不通了.
 
接受答案了.
 
后退
顶部