1、说明
项目中采用windowsDefender的自定义扫描功能。
2、开启服务
打开控制面板-系统和安全-windows Defender防火墙-启用或关闭windows Defender防火墙,然后全部启用。
如果无法使用windows Defender防火墙,进行以下操作打开控制面板-程序-启用或关闭windows功能 -启用Microsoft Defender应用程序防护,然后重启电脑。
3、使用方法
4、使用demo
使用GO语言执行命令:MpCmdRun.exe -Scan -ScanType 3 -File E:\ -DisableRemediation
MpCmdRun.exe: 是 Windows Defender 命令行工具的可执行文件。
-Scan: 表示进行扫描操作。
-ScanType 3: 指定扫描类型为自定义扫描。
第一个路径E:\代表要扫描的文件夹,如果这个路径是一个文件,则会扫描该目录下文件
-DisableRemediation参数代表,扫描完成后,发现有威胁文件,不会删除威胁文件,如果不加这个参数,扫描到威胁文件时,会自动删除威胁文件
func main() {
// 利用cmd来执行命令
// -ScanType 3 代表自定义扫描
// -File E:\ 代表对E:\下的文件进行扫描,不能指定多个文件进行扫描,只能指定文件夹
// -DisableRemediation 此参数代表:禁用恶意文件修复操作,防止删除或修复威胁文件,带上此参数才会有结果概要
cmd := exec.Command("cmd", "/c", "MpCmdRun.exe", "-Scan", "-ScanType", "3", "-File", "E:\\", "-DisableRemediation")
// 创建一个管道来捕获命令的输出
cmdOutput, err := cmd.Output()
if err != nil {
fmt.Println("命令执行错误:", err)
os.Exit(1)
}
// 将命令输出转换为字符串并打印出来,此时需要解析结果概要
//批量检出的格式
/**
Scan starting...
Scan finished.
Scanning e:\ found 2 threats.
<===========================LIST OF DETECTED THREATS==========================>
----------------------------- Threat information ------------------------------
Threat : Virus:Win32/Sality.AT
Resources : 1 total
file : e:\17b0f6bb4801206852b4ac9c44e3132db01e2d28874f4748f9155ccc72a01129\17b0f6bb4801206852b4ac9c44e3132db01e2d28874f4748f9155ccc72a01129
-------------------------------------------------------------------------------
----------------------------- Threat information ------------------------------
Threat : Worm:Win32/AutoRun.XXY!bit
Resources : 3 total
file : e:\sc\aebbedfb5dbd29991ba749d9b83d5404bc91739e54902e8720255a5f2d0d45fd
file : e:\aebbedfb5dbd29991ba749d9b83d5404bc91739e54902e8720255a5f2d0d45fd\aebbedfb5dbd29991ba749d9b83d5404bc91739e54902e8720255a5f2d0d45fd
file : e:\$RECYCLE.BIN\S-1-5-21-3158377802-1343061189-2574968084-1000\$RKT0HJZ\aebbedfb5dbd29991ba749d9b83d5404bc91739e54902e8720255a5f2d0d45fd
-------------------------------------------------------------------------------
**/
fmt.Println(string(cmdOutput))
}
- 更新病毒库
在线更新:执行命令MpCmdRun.exe -SignatureUpdate
离线更新:chatGPT给出的方法如下,没试过