找回密码
 加入
搜索
查看: 2104|回复: 6

[AU3基础] 如何30秒检测一次

  [复制链接]
发表于 2010-12-24 12:38:33 | 显示全部楼层 |阅读模式
#NoTrayIcon
#AutoIt3Wrapper_plugin_funcs = MD5Hash
$how = IniRead(@ScriptDir & "\md5.ini","qq93632200","检测方式","")
$spath = IniRead(@ScriptDir & "\md5.ini","qq93632200","原路径","")
$dpath = IniRead(@ScriptDir & "\md5.ini","qq93632200","检测路径","")
$md5 = IniRead(@ScriptDir & "\md5.ini","qq93632200","MD5值","")
$howdo = IniRead(@ScriptDir & "\md5.ini","qq93632200","执行方式","")
$wpath = IniRead(@ScriptDir & "\md5.ini","qq93632200","报警路径","")
If $how = 1 Then
        chkfiles()
ElseIf $how = 2 Then
        chkmd5()
Else
        If $how = 3 Then
                getmd5()
        Else
                MsgBox(48,"错误","检测方式参数设置错误" & @CRLF & "请重新设置!!")
            exit
        EndIf
EndIf
Func chkfiles()
        $plH = PluginOpen(@ScriptDir & "\MD5.dll")
        $smd5 = MD5Hash($spath,1,True)
        $dmd5 = MD5Hash($dpath,1,True)
        if $dmd5 <> $smd5 Then
                doit()
        EndIf
        PluginClose($plH)
        Exit
EndFunc
Func chkmd5()
        $plH = PluginOpen(@ScriptDir & "\MD5.dll")
        $dmd5 = MD5Hash($dpath,1,True)
        if $dmd5 <> $md5 Then
                doit()
        EndIf
        PluginClose($plH)
        Exit
EndFunc
Func doit()
        If $howdo = 1 Then
                        MsgBox(16,"警告!!!","本系统已被病毒感染,为您的上网安全!" & @CRLF & "请换到其他机子并通知网管处理!!" & @CRLF & "系统将在10秒后自动关机!!",10)
                        Shutdown(13)
                ElseIf $howdo = 2 Then
                        FileWrite($wpath,@ComputerName & "号机" & @MON & "月" & @MDAY & "号" & @HOUR & "点" & @MIN & "分检测" & "MD5值检测不符合标准,估计中招了,赶快去处理吧!!!" & @CRLF)
                        Exit
                Else
                        If $howdo = 3 Then
                        MsgBox(16,"警告!!!","本系统已被病毒感染,为您的上网安全!" & @CRLF & "请换到其他机子并通知网管处理!!" & @CRLF & "系统将在10秒后自动关机!!",10)
                        FileWrite($wpath,@ComputerName & "号机" & @MON & "月" & @MDAY & "号" & @HOUR & "点" & @MIN & "分检测" & "MD5值不符合标准,估计中招了,赶快去处理吧!!!" & @CRLF)
                        Shutdown(13)
                    EndIf
                EndIf
EndFunc
Func getmd5()
        $plH = PluginOpen(@ScriptDir & "\MD5.dll")
        IniWrite(@ScriptDir & "\md5.ini","qq93632200","MD5值",MD5Hash($spath,1,True))
        PluginClose($plH)
EndFunc
发表于 2010-12-24 12:47:48 | 显示全部楼层
#NoTrayIcon
#AutoIt3Wrapper_plugin_funcs = MD5Hash
$how = IniRead(@ScriptDir & "\md5.ini","qq93632200","检测方式","")
$spath = IniRead(@ScriptDir & "\md5.ini","qq93632200","原路径","")
$dpath = IniRead(@ScriptDir & "\md5.ini","qq93632200","检测路径","")
$md5 = IniRead(@ScriptDir & "\md5.ini","qq93632200","MD5值","")
$howdo = IniRead(@ScriptDir & "\md5.ini","qq93632200","执行方式","")
$wpath = IniRead(@ScriptDir & "\md5.ini","qq93632200","报警路径","")
While 1
If $how = 1 Then
        chkfiles()
ElseIf $how = 2 Then
        chkmd5()
Else
        If $how = 3 Then
                getmd5()
        Else
                MsgBox(48,"错误","检测方式参数设置错误" & @CRLF & "请重新设置!!")
            ;exit
        EndIf
        EndIf
        Sleep (30000)
WEnd
       
       
Func chkfiles()
        $plH = PluginOpen(@ScriptDir & "\MD5.dll")
        $smd5 = MD5Hash($spath,1,True)
        $dmd5 = MD5Hash($dpath,1,True)
        if $dmd5 <> $smd5 Then
                doit()
        EndIf
        PluginClose($plH)
        Exit
EndFunc
Func chkmd5()
        $plH = PluginOpen(@ScriptDir & "\MD5.dll")
        $dmd5 = MD5Hash($dpath,1,True)
        if $dmd5 <> $md5 Then
                doit()
        EndIf
        PluginClose($plH)
        Exit
EndFunc
Func doit()
        If $howdo = 1 Then
                        MsgBox(16,"警告!!!","本系统已被病毒感染,为您的上网安全!" & @CRLF & "请换到其他机子并通知网管处理!!" & @CRLF & "系统将在10秒后自动关机!!",10)
                        Shutdown(13)
                ElseIf $howdo = 2 Then
                        FileWrite($wpath,@ComputerName & "号机" & @MON & "月" & @MDAY & "号" & @HOUR & "点" & @MIN & "分检测" & "MD5值检测不符合标准,估计中招了,赶快去处理吧!!!" & @CRLF)
                        Exit
                Else
                        If $howdo = 3 Then
                        MsgBox(16,"警告!!!","本系统已被病毒感染,为您的上网安全!" & @CRLF & "请换到其他机子并通知网管处理!!" & @CRLF & "系统将在10秒后自动关机!!",10)
                        FileWrite($wpath,@ComputerName & "号机" & @MON & "月" & @MDAY & "号" & @HOUR & "点" & @MIN & "分检测" & "MD5值不符合标准,估计中招了,赶快去处理吧!!!" & @CRLF)
                        Shutdown(13)
                    EndIf
                EndIf
EndFunc
Func getmd5()
        $plH = PluginOpen(@ScriptDir & "\MD5.dll")
        IniWrite(@ScriptDir & "\md5.ini","qq93632200","MD5值",MD5Hash($spath,1,True))
        PluginClose($plH)
EndFunc
发表于 2010-12-24 12:51:50 | 显示全部楼层
记得在前面加个防止程序多次启动的代码 因为你没有设置退出方式
发表于 2010-12-24 14:16:38 | 显示全部楼层
AdlibRegister("MyAdlib")
;...
Exit

Func MyAdlib()
    ;... 运行中尽量避免使用等待效果的函数, 例如 Wait(), MsgBox(), InputBox()等...
    If WinActive("Error") Then
        ;...
    EndIf
EndFunc
发表于 2010-12-24 21:40:07 | 显示全部楼层
AdlibRegister("MyAdlib",30000)
发表于 2010-12-26 14:16:57 | 显示全部楼层
AdlibRegister("*")

看看
发表于 2010-12-27 16:28:54 | 显示全部楼层
本帖最后由 AUFS 于 2010-12-27 16:30 编辑

AdlibRegister('_MD5CHK',1000)为每秒执行一次检测
#NoTrayIcon
#AutoIt3Wrapper_plugin_funcs = MD5Hash
$how = IniRead(@ScriptDir & "\md5.ini","qq93632200","检测方式","")
$spath = IniRead(@ScriptDir & "\md5.ini","qq93632200","原路径","")
$dpath = IniRead(@ScriptDir & "\md5.ini","qq93632200","检测路径","")
$md5 = IniRead(@ScriptDir & "\md5.ini","qq93632200","MD5值","")
$howdo = IniRead(@ScriptDir & "\md5.ini","qq93632200","执行方式","")
$wpath = IniRead(@ScriptDir & "\md5.ini","qq93632200","报警路径","")

AdlibRegister('_MD5CHK',1000)


While 1
Sleep(200)
WEnd


Func _MD5Chk()
If $how = 1 Then
chkfiles()
ElseIf $how = 2 Then
chkmd5()
Else
If $how = 3 Then
getmd5()
Else
MsgBox(48,"错误","检测方式参数设置错误" & @CRLF & "请重新设置!!")
exit
EndIf
EndIf
EndFunc
        

Func chkfiles()
        $plH = PluginOpen(@ScriptDir & "\MD5.dll")
        $smd5 = MD5Hash($spath,1,True)
        $dmd5 = MD5Hash($dpath,1,True)
        if $dmd5 <> $smd5 Then
                doit()
        EndIf
        PluginClose($plH)
        Exit
EndFunc
Func chkmd5()
        $plH = PluginOpen(@ScriptDir & "\MD5.dll")
        $dmd5 = MD5Hash($dpath,1,True)
        if $dmd5 <> $md5 Then
                doit()
        EndIf
        PluginClose($plH)
        Exit
        EndFunc
        
Func doit()
        If $howdo = 1 Then
                        MsgBox(16,"警告!!!","本系统已被病毒感染,为您的上网安全!" & @CRLF & "请换到其他机子并通知网管处理!!" & @CRLF & "系统将在10秒后自动关机!!",10)
                        Shutdown(13)
                ElseIf $howdo = 2 Then
                        FileWrite($wpath,@ComputerName & "号机" & @MON & "月" & @MDAY & "号" & @HOUR & "点" & @MIN & "分检测" & "MD5值检测不符合标准,估计中招了,赶快去处理吧!!!" & @CRLF)
                        Exit
                Else
                        If $howdo = 3 Then
                        MsgBox(16,"警告!!!","本系统已被病毒感染,为您的上网安全!" & @CRLF & "请换到其他机子并通知网管处理!!" & @CRLF & "系统将在10秒后自动关机!!",10)
                        FileWrite($wpath,@ComputerName & "号机" & @MON & "月" & @MDAY & "号" & @HOUR & "点" & @MIN & "分检测" & "MD5值不符合标准,估计中招了,赶快去处理吧!!!" & @CRLF)
                        Shutdown(13)
                    EndIf
                EndIf
                        EndFunc
                        

Func getmd5()
        $plH = PluginOpen(@ScriptDir & "\MD5.dll")
        IniWrite(@ScriptDir & "\md5.ini","qq93632200","MD5值",MD5Hash($spath,1,True))
        PluginClose($plH)
EndFunc
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-21 15:51 , Processed in 0.079953 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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