鱼C论坛

 找回密码
 立即注册
查看: 3897|回复: 2

【代码】VB6.0实现软件自我删除,其他语言的也可以进来参考下

[复制链接]
发表于 2011-2-12 10:41:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
调用批处理
  1. Public Sub KillMe()
  2.     Dim mPath As String
  3.    
  4.     On Error GoTo InIDE
  5.    
  6.     Debug.Print 1 / 0
  7.    
  8.     If Right$(App.Path, 1) = "" Then
  9.         mPath = App.Path
  10.     Else
  11.         mPath = App.Path & ""
  12.     End If
  13.    
  14.     Open mPath & "Demon.bat" For Output As #1
  15.         Print #1, ":Repeat" & vbCrLf & _
  16.                   "del """ & mPath & App.EXEName & ".exe""" & vbCrLf & _
  17.                   "if exist """ & mPath & App.EXEName & ".exe""" & " goto Repeat" & vbCrLf & _
  18.                   "del %0"
  19.     Close #1
  20.     Shell mPath & "Demon.bat", vbHide
  21. InIDE: '因为删除属于静默的,所以这里留空
  22. End Sub
  23. Private Sub Form_Unload(Cancel As Integer)
  24. Call KillMe
  25. End Sub
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-2-12 19:10:00 | 显示全部楼层
你就是用的批处理而已,看我的:
  1. int main(int argc, char *argv[])
  2. {
  3.     HMODULE module = GetModuleHandle(0);
  4.     CHAR buf[MAX_PATH];
  5.     GetModuleFileName(module, buf, sizeof buf);
  6.     CloseHandle(HANDLE(4));
  7.     __asm {
  8.         lea    eax, buf
  9.         push    0
  10.         push    0
  11.         push    eax
  12.         push    ExitProcess
  13.         push    module
  14.         push    DeleteFile
  15.         push    UnmapViewOfFile
  16.         ret
  17.     }
  18.     return 0;
  19. }
复制代码
这段代码在PROCESS没有结束前就将启动PROCESS的EXE文件删除了.

不过不是我写的,我没那能耐。代码由Gary Nebbett写就。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2011-2-13 12:11:09 | 显示全部楼层
回复 2# yuyuhongss


    完全看不懂,哈哈
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-22 00:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表