无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 746|回复: 39
打印 上一主题 下一主题

[原创] Autorun病毒清除工具

[复制链接]
跳转到指定楼层
1#
发表于 昨天 16:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 piaomusic 于 2025-6-2 16:35 编辑

Autorun病毒清除工具  https://www.123912.com/s/sj4rVv-kuJVH

2025-06-02_16-33-23.png (18.05 KB, 下载次数: 2)

2025-06-02_16-33-23.png

评分

参与人数 2无忧币 +8 收起 理由
dahuan + 5 赞一个!
2011unknown + 3 很给力!

查看全部评分

2#
 楼主| 发表于 昨天 16:39 | 只看该作者
#NoTrayIcon
#RequireAdmin
#include <MsgBoxConstants.au3>
#include <FileConstants.au3>
#include <WinAPIProc.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <File.au3>

Opt("GUIOnEventMode", 1)
Opt("GUIResizeMode", $GUI_DOCKALL)

; 主界面
Global $hGUI = GUICreate("Autorun 病毒清除工具 - By Phexon", 500, 450)
GUISetBkColor(0x002F2F)
GUICtrlCreateLabel("Autorun 病毒清除工具", 150, 20, 200, 30)
GUICtrlSetFont(-1, 12, 800, 0, "微软雅黑")
GUICtrlSetColor(-1, 0x00FF00)
GUICtrlCreateLabel("制作:Phexon", 200, 60, 100, 20)
GUICtrlSetColor(-1, 0x00FF00)

Global $idLog = GUICtrlCreateEdit("", 20, 100, 460, 250, BitOR($ES_READONLY, $WS_VSCROLL, $ES_MULTILINE))
GUICtrlSetBkColor(-1, 0x000000)
GUICtrlSetColor(-1, 0x00FF00)
GUICtrlSetFont(-1, 9, 400, 0, "Consolas")

; 功能按钮
Global $btn1 = GUICtrlCreateButton("1. 仅删除病毒", 20, 370, 110, 30)
Global $btn2 = GUICtrlCreateButton("2. 删除+免疫(推荐)", 140, 370, 110, 30)
Global $btn3 = GUICtrlCreateButton("3. 禁用Autorun", 260, 370, 110, 30)
Global $btn4 = GUICtrlCreateButton("4. 取消免疫", 380, 370, 110, 30)
Global $btn5 = GUICtrlCreateButton("5. 指定盘符处理", 20, 410, 110, 30)
Global $btn6 = GUICtrlCreateButton("6. 恢复注册表", 140, 410, 110, 30)
Global $btn7 = GUICtrlCreateButton("7. 退出", 380, 410, 110, 30)

; 事件绑定
GUICtrlSetOnEvent($btn1, "_ClearAuto1")
GUICtrlSetOnEvent($btn2, "_ClearAuto2")
GUICtrlSetOnEvent($btn3, "_ClearAuto3")
GUICtrlSetOnEvent($btn4, "_ClearAuto4")
GUICtrlSetOnEvent($btn5, "_ClearAuto5")
GUICtrlSetOnEvent($btn6, "_ClearAuto6")
GUICtrlSetOnEvent($btn7, "_ExitApp")

GUISetState(@SW_SHOW, $hGUI)

; ===== 核心功能函数 =====
Func _Log($sMsg)
    Local $sTime = "[" & @HOUR & ":" & @MIN & ":" & @SEC & "] "
    GUICtrlSetData($idLog, $sTime & $sMsg & @CRLF & GUICtrlRead($idLog))
EndFunc

Func _KillVirProcess()
    Local $aProcesses = ["SocksA.exe", "SVOHOST.exe", "AdobeR.exe", "ravmone.exe", "wincfgs.exe", _
                         "doc.exe", "rose.exe", "sxs.exe", "autorun.exe", "KB20060111.exe", "tel.xls.exe"]
    _Log("正在终止病毒进程...")
    For $i = 0 To UBound($aProcesses) - 1
        While ProcessExists($aProcesses[$i])
            RunWait('taskkill /F /IM "' & $aProcesses[$i] & '"', "", @SW_HIDE)
            _Log("已终止进程: " & $aProcesses[$i])
        WEnd
    Next
EndFunc

Func _CleanRecycleBin($sDrive)
    Local $aTypes = ["exe", "pif", "com", "bat"]
    Local $aDirs = ["Recycler", "Recycled", "$RECYCLE.BIN"]
   
    For $i = 0 To UBound($aDirs) - 1
        Local $sPath = $sDrive & "\" & $aDirs[$i]
        If FileExists($sPath) Then
            For $j = 0 To UBound($aTypes) - 1
                Local $aFiles = _FileListToArray($sPath, "*." & $aTypes[$j], $FLTA_FILES, True)
                If IsArray($aFiles) Then
                    For $k = 1 To $aFiles[0]
                        FileDelete($aFiles[$k])
                        _Log("已清理回收站病毒: " & $aFiles[$k])
                    Next
                EndIf
            Next
        EndIf
    Next
EndFunc

; ===== 主功能 =====
Func _ClearAuto1()
    _KillVirProcess()
    Local $aDrives = DriveGetDrive("ALL")
    For $i = 1 To $aDrives[0]
        If DriveStatus($aDrives[$i] & "\") = "READY" Then
            If FileExists($aDrives[$i] & "\autorun.inf") Then
                Local $sVirusFile = IniRead($aDrives[$i] & "\autorun.inf", "AutoRun", "open", "")
                If $sVirusFile <> "" And FileExists($aDrives[$i] & "\" & $sVirusFile) Then
                    FileDelete($aDrives[$i] & "\" & $sVirusFile)
                    _Log("已删除病毒文件: " & $aDrives[$i] & "\" & $sVirusFile)
                EndIf
                FileDelete($aDrives[$i] & "\autorun.inf")
                _Log("已删除: " & $aDrives[$i] & "\autorun.inf")
            EndIf
        EndIf
    Next
    MsgBox($MB_ICONINFORMATION, "完成", "Autorun 病毒清除完毕!", 3)
EndFunc

Func _ClearAuto2()
    _KillVirProcess()
    Local $aDrives = DriveGetDrive("ALL")
    For $i = 1 To $aDrives[0]
        If DriveStatus($aDrives[$i] & "\") = "READY" Then
            If FileExists($aDrives[$i] & "\autorun.inf") Then
                Local $sVirusFile = IniRead($aDrives[$i] & "\autorun.inf", "AutoRun", "open", "")
                If $sVirusFile <> "" Then
                    If FileExists($aDrives[$i] & "\" & $sVirusFile) Then
                        FileDelete($aDrives[$i] & "\" & $sVirusFile)
                        _Log("已删除病毒文件: " & $aDrives[$i] & "\" & $sVirusFile)
                    EndIf
                    
                    If Not FileExists($aDrives[$i] & "\" & $sVirusFile) Then
                        DirCreate($aDrives[$i] & "\" & $sVirusFile)
                        DirCreate($aDrives[$i] & "\" & $sVirusFile & "\免疫目录不要删除...\")
                        FileSetAttrib($aDrives[$i] & "\" & $sVirusFile, "+SHR")
                        RunWait('cacls "' & $aDrives[$i] & '\' & $sVirusFile & '" /P everyone:N', "", @SW_HIDE)
                        _Log("已免疫: " & $aDrives[$i] & "\" & $sVirusFile)
                    EndIf
                EndIf
               
                FileDelete($aDrives[$i] & "\autorun.inf")
                If Not FileExists($aDrives[$i] & "\autorun.inf") Then
                    DirCreate($aDrives[$i] & "\autorun.inf")
                    DirCreate($aDrives[$i] & "\autorun.inf\免疫目录不要删除...\")
                    FileSetAttrib($aDrives[$i] & "\autorun.inf", "+SHR")
                    RunWait('cacls "' & $aDrives[$i] & '\autorun.inf" /P everyone:N', "", @SW_HIDE)
                    _Log("已免疫: " & $aDrives[$i] & "\autorun.inf")
                EndIf
            EndIf
            _CleanRecycleBin($aDrives[$i])
        EndIf
    Next
    MsgBox($MB_ICONINFORMATION, "完成", "Autorun 病毒清除并免疫完毕!", 3)
EndFunc

Func _ClearAuto3()
    RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer", "NoDriveTypeAutoRun", "REG_DWORD", 0xFF)
    RegWrite("HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer", "NoDriveTypeAutoRun", "REG_DWORD", 0xFF)
    RunWait('net stop ShellHWDetection', "", @SW_HIDE)
    RunWait('sc config ShellHWDetection start= disabled', "", @SW_HIDE)
   
    Local $sRegPath = "HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\"
    Local $aGuid = ["{00ffa5bf-abe7-4901-aacf-4f58aa31217a}", "{41fe7eed-c47a-46f6-840a-240796fd03cf}"]
    For $i = 0 To UBound($aGuid) - 1
        RegWrite($sRegPath & $aGuid[$i], "SaferFlags", "REG_DWORD", 0)
        RegWrite($sRegPath & $aGuid[$i], "ItemData", "REG_SZ", "?:\Recyc?")
    Next
   
    _Log("已禁用Autorun功能并增强防护")
    MsgBox($MB_ICONINFORMATION, "完成", "已彻底禁用系统的Autorun自动播放功能!", 3)
EndFunc

Func _ClearAuto4()
    Local $aDrives = DriveGetDrive("ALL")
    For $i = 1 To $aDrives[0]
        If DriveStatus($aDrives[$i] & "\") = "READY" Then
            If FileExists($aDrives[$i] & "\autorun.inf") Then
                RunWait('cacls "' & $aDrives[$i] & '\autorun.inf" /P everyone:F', "", @SW_HIDE)
                DirRemove($aDrives[$i] & "\autorun.inf", 1)
                _Log("已取消免疫: " & $aDrives[$i] & "\autorun.inf")
            EndIf
            
            Local $sVirusFile = IniRead($aDrives[$i] & "\autorun.inf", "AutoRun", "open", "")
            If $sVirusFile <> "" And FileExists($aDrives[$i] & "\" & $sVirusFile) Then
                RunWait('cacls "' & $aDrives[$i] & '\' & $sVirusFile & '" /P everyone:F', "", @SW_HIDE)
                DirRemove($aDrives[$i] & "\" & $sVirusFile, 1)
                _Log("已取消免疫: " & $aDrives[$i] & "\" & $sVirusFile)
            EndIf
        EndIf
    Next
    MsgBox($MB_ICONINFORMATION, "完成", "已解除所有盘符的免疫", 3)
EndFunc

Func _ClearAuto5()
    Local $sDrive = InputBox("输入盘符", "请输入要处理的盘符(如 C:)", "", "", 200, 150)
    If @error Then Return
    If StringRight($sDrive, 1) <> ":" Then $sDrive &= ":"
   
    If DriveStatus($sDrive) = "READY" Then
        _KillVirProcess()
        
        If FileExists($sDrive & "\autorun.inf") Then
            Local $sVirusFile = IniRead($sDrive & "\autorun.inf", "AutoRun", "open", "")
            If $sVirusFile <> "" And FileExists($sDrive & "\" & $sVirusFile) Then
                FileDelete($sDrive & "\" & $sVirusFile)
                _Log("已删除病毒文件: " & $sDrive & "\" & $sVirusFile)
            EndIf
            
            FileDelete($sDrive & "\autorun.inf")
            DirCreate($sDrive & "\autorun.inf")
            DirCreate($sDrive & "\autorun.inf\免疫目录不要删除...\")
            FileSetAttrib($sDrive & "\autorun.inf", "+SHR")
            RunWait('cacls "' & $sDrive & '\autorun.inf" /P everyone:N', "", @SW_HIDE)
            _Log("已免疫: " & $sDrive & "\autorun.inf")
            
            If $sVirusFile <> "" Then
                DirCreate($sDrive & "\" & $sVirusFile)
                DirCreate($sDrive & "\" & $sVirusFile & "\免疫目录不要删除...\")
                FileSetAttrib($sDrive & "\" & $sVirusFile, "+SHR")
                RunWait('cacls "' & $sDrive & '\' & $sVirusFile & '" /P everyone:N', "", @SW_HIDE)
                _Log("已免疫: " & $sDrive & "\" & $sVirusFile)
            EndIf
        EndIf
        
        _CleanRecycleBin($sDrive)
        MsgBox($MB_ICONINFORMATION, "完成", $sDrive & " 盘处理完毕", 3)
    Else
        MsgBox($MB_ICONERROR, "错误", "无效的盘符或驱动器不可用", 3)
    EndIf
EndFunc

Func _ClearAuto6()
    RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL", "CheckedValue", "REG_DWORD", 1)
    RegDelete("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2")
    RegDelete("HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun")
    RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", "Startup", "REG_SZ", @StartupDir)
    RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", "Common Startup", "REG_SZ", @StartupCommonDir)
   
    _Log("已恢复注册表默认设置")
    MsgBox($MB_ICONINFORMATION, "完成", "注册表已恢复默认值", 3)
EndFunc

Func _ExitApp()
    Exit
EndFunc

While 1
    Sleep(100)
WEnd

点评

我有病毒样本,测试了下,有效果, 但是操作时,会一直提示:正在终止病毒进程, 其他人使用时不知道是清除完成了还是未清除完成,会一直等待  详情 回复 发表于 4 小时前
回复

使用道具 举报

3#
发表于 昨天 16:40 | 只看该作者
感谢分享
回复

使用道具 举报

4#
发表于 昨天 16:43 | 只看该作者
谢谢分享,备用
回复

使用道具 举报

5#
发表于 昨天 16:44 | 只看该作者
感谢分享
回复

使用道具 举报

6#
发表于 昨天 16:53 | 只看该作者

感谢分享
回复

使用道具 举报

7#
发表于 昨天 16:53 | 只看该作者
实用小工具 支持
回复

使用道具 举报

8#
发表于 昨天 17:09 | 只看该作者
多谢楼主分享
回复

使用道具 举报

9#
发表于 昨天 17:22 | 只看该作者
謝謝大大用心分享,感恩喔~~! ^^ 辛苦了!
回复

使用道具 举报

10#
发表于 昨天 17:59 | 只看该作者
厉害
回复

使用道具 举报

11#
发表于 昨天 18:03 | 只看该作者
感谢分享!!!
回复

使用道具 举报

12#
发表于 昨天 18:05 | 只看该作者
谢谢分享!!!
回复

使用道具 举报

13#
发表于 昨天 19:22 | 只看该作者
感谢分享,正需要。
回复

使用道具 举报

14#
发表于 昨天 20:08 | 只看该作者
感谢分享
回复

使用道具 举报

15#
发表于 昨天 20:24 | 只看该作者
感谢楼主分享源代码,特意查询了一下,是AutoIt自动化脚本语言,源码很漂亮。

点评

✌  详情 回复 发表于 昨天 21:29
回复

使用道具 举报

16#
发表于 昨天 20:39 | 只看该作者
au3写的?赞一个

点评

✔✔✔  详情 回复 发表于 昨天 21:30
回复

使用道具 举报

17#
 楼主| 发表于 昨天 21:29 | 只看该作者
neartree 发表于 2025-6-2 20:24
感谢楼主分享源代码,特意查询了一下,是AutoIt自动化脚本语言,源码很漂亮。

回复

使用道具 举报

18#
 楼主| 发表于 昨天 21:30 | 只看该作者
zlq_hysy 发表于 2025-6-2 20:39
au3写的?赞一个

✔✔✔
回复

使用道具 举报

19#
发表于 昨天 21:32 | 只看该作者
谢谢大佬分享!
回复

使用道具 举报

20#
发表于 昨天 21:42 | 只看该作者
好工具,谢谢分享,辛苦了,下载来使用。
回复

使用道具 举报

21#
发表于 昨天 21:56 | 只看该作者
好东西,收藏,谢谢
回复

使用道具 举报

22#
发表于 昨天 21:59 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

23#
发表于 昨天 22:13 | 只看该作者
感谢楼主分享实用工具。
回复

使用道具 举报

24#
发表于 昨天 22:24 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

25#
发表于 昨天 22:56 | 只看该作者
感谢分享
回复

使用道具 举报

26#
发表于 昨天 23:19 | 只看该作者
这个工具挺实用,下载试试了
回复

使用道具 举报

27#
发表于 昨天 23:44 | 只看该作者
谢谢分享!
回复

使用道具 举报

28#
发表于 15 小时前 | 只看该作者
感谢分享!
回复

使用道具 举报

29#
发表于 14 小时前 | 只看该作者
霏霏
回复

使用道具 举报

30#
发表于 13 小时前 | 只看该作者
这是给U盘用的吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-6-3 15:28

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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