#include <file.au3>
#include <buttonconstants.au3>
#include <editconstants.au3>
#include <guiconstantsex.au3>
#include <progressconstants.au3>
#include <staticconstants.au3>
#include <windowsconstants.au3>
$Form1 = GUICreate("AV BAT Scanner", 245, 211, 260, 322)
$Progress1 = GUICtrlCreateProgress(8, 16, 209, 33)
$Filesdf = GUICtrlCreateLabel("File", 8, 56, 228, 17)
$Input1 = GUICtrlCreateInput("Directory", 8, 176, 209, 21)
$Button1 = GUICtrlCreateButton("Scan", 8, 88, 209, 81, $WS_GROUP)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$pat = GUICtrlRead ( $Input1 )
local $i, $lF, $path
FileChangeDir ( $pat )
local $i, $lF, $path
While 1
Sleep (100)
$path = @WorkingDir
$lF = _FileListToArray ($path, "*", 2 )
If Not @error = 4 Then
for $i = 1 to $lF[0]
Sleep (100)
;FileDelete ( @ScriptDir & "\" & $lF[$i] & "\*.*" )
$arr = _FileListToArray ( $path & "\" & $lF[$i], "*", 1 )
If Not @error Then
Local $d
For $d = 1 to $arr[0]
$Filesc = $arr[$d]
_AvS()
Next
FileChangeDir ( $path & "\" & $lF[$i] )
EndIf
Next
Else
ExitLoop
EndIf
WEnd
EndSwitch
WEnd
Func _AvS()
GUICtrlSetData ( $Filesdf, $Filesc )
Sleep(100)
$lin = _FileCountLines($Filesc)
Local $i, $lis
For $i = 1 To $lin
Sleep(100)
ProgressSet($i, $lis)
$lis = FileReadLine($Filesc, $i)
$cas = StringInStr ( $lis, "Del" )
$cass = StringInStr ( $lis, "*" )
if Not $cas = 0 And Not $cass = 0 Then MsgBox ( 0, "Virus", "BAT\DelFile.1" )
Next
For $i = 1 To $lin
Sleep(100)
ProgressSet($i, $lis)
$lis = FileReadLine($Filesc, $i)
$cas = StringInStr ( $lis, "Rd" )
$cass = StringInStr ( $lis, "*" )
if Not $cas = 0 And Not $cass = 0 Then MsgBox ( 0, "Virus", "BAT\DeleteDir.2" )
Next
For $i = 1 To $lin
Sleep(100)
ProgressSet($i, $lis)
$lis = FileReadLine($Filesc, $i)
$cas = StringInStr ( $lis, "Copy" )
$cass = StringInStr ( $lis, "%1" )
$casss = StringInStr ( $lis, "%windir%" )
$vf = StringInStr ( $lis, "System32" )
if Not $cas = 0 And Not $cass = 0 and Not $casss = 0 And NOt $vf = 0 Then MsgBox ( 0, "Virus", "BAT\Worm" )
Next
For $i = 1 To $lin
Sleep(100)
ProgressSet($i, $lis)
$lis = FileReadLine($Filesc, $i)
$cas = StringInStr ( $lis, "Format" )
if Not $cas = 0 Then MsgBox ( 0, "Virus", "tr\Format" )
Next
For $i = 1 To $lin
Sleep(100)
ProgressSet($i, $lis)
$lis = FileReadLine($Filesc, $i)
$cas = StringInStr ( $lis, "echo" )
$cass = StringInStr ( $lis, ">>" )
$casss = StringInStr ( $lis, "vbs" )
if Not $cas = 0 And Not $cass = 0 And Not $casss = 0 Then MsgBox ( 0, "Virus", "BAT\VBS" )
Next
EndFunc