ผมลองเอาโค้ดหาไวรัสจาก MD5 ในล้วงไต๋ไวรัส2 มาดัดแปลงดูพี่ๆช่วยกันดูหน่อยครับว่าควรแก้ไขอย่างไรหรือมี error มั้ยอะไรประมาณนี้แหละครับ
- Code:
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_outfile=MD5FileScaner.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Fileversion=1.2.0.0
#AutoIt3Wrapper_Res_Language=1054
#AutoIt3Wrapper_Res_File_Add=MD5Hash.dll
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#compiler_plugin_funcs = MD5Hash
FileInstall(".\MD5Hash.dll", @ScriptDir & "\MD5Hash.dll", 1)
$plH = PluginOpen("MD5Hash.dll")
$N = FileOpenDialog("เลือกไฟล์เพื่อหาค่า MD5", "", "All (*.*)")
If $N Then
$MD5 = MD5Hash($N, 1, True)
ClipPut($MD5)
SplashTextOn("", "ค่า MD5 ของไวรัสคือ: " & $MD5 & @CRLF & @CRLF & "โปรแกรมกำลังทำการสแกน..", "510", "80", "-1", "-1", 33, "", "", "")
Sleep(3000)
SplashOff()
FileWriteLine(@TempDir & "\รายชื่อไวรัสที่ลบ.txt", "โปรแกรมสแกนหาไวรัสจากค่า MD5 (" & @ScriptName & ")" & @CRLF & _
"สแกนเมื่อวันที่ " & @MDAY & "\" & @MON & "\" & @YEAR & _
" เวลา " & @HOUR & ":" & @MIN & ":" & @SEC & @CRLF & @CRLF & "------------------- รายชื่อไฟล์ที่ถูกลบ -------------------")
$FileCount = 0
$var = DriveGetDrive("ALL")
If $MD5 <> "" Then
For $i = 1 To $var[0]
If DriveStatus($var[$i]) <> "NOTREADY" Then ScanFolder($var[$i])
Next
$iMsgBoxAnswer = MsgBox(262148, "เสร็จ", "สแกนไฟล์เสร็จสิ้น สแกนพบ " & $FileCount & " ไฟล์" & @CRLF & "ต้องการเปิด Log ของโปรแกรมหรือไม่?")
Select
Case $iMsgBoxAnswer = 6 ;Yes
FileWriteLine(@TempDir & "\รายชื่อไวรัสที่ลบ.txt", "------------------------------------------------------------" & @CRLF & _
"copyright freeware license 2011 by Arm (arm_2468@hotmail.com)" & @CRLF & "Special Thank: พี่มิ้งค์ คอมทูเดย์,[You must be registered and logged in to see this link.] & @CRLF & @CRLF)
ShellExecuteWait("Notepad.exe", @TempDir & "\รายชื่อไวรัสที่ลบ.txt")
Exit
Case $iMsgBoxAnswer = 7 ;No
FileDelete(@TempDir & "\รายชื่อไวรัสที่ลบ.txt")
Exit
EndSelect
EndIf
EndIf
Func ScanFolder($SourceFolder)
Local $Search
Local $File
Local $FileAttributes
Local $FullFilePath
$Search = FileFindFirstFile($SourceFolder & "\*.*")
While 1
If $Search = -1 Then
ExitLoop
EndIf
$File = FileFindNextFile($Search)
If @error Then ExitLoop
$FullFilePath = $SourceFolder & "\" & $File
$FileAttributes = FileGetAttrib($FullFilePath)
If StringInStr($FileAttributes, "D") Then
ScanFolder($FullFilePath)
Else
If FileGetSize($FullFilePath) < 3000000 Then
ToolTip($FullFilePath, 200, 300, "กำลังทำการ Scan", 2)
If md51($FullFilePath) = $MD5 Then
If md51($FullFilePath) <> "0" Then
LogFile($FullFilePath)
FileSetAttrib($FullFilePath, "-RSH")
FileDelete($FullFilePath)
EndIf
EndIf
ToolTip("")
EndIf
EndIf
WEnd
FileClose($Search)
EndFunc ;==>ScanFolder
Func LogFile($FileName)
FileWriteLine(@TempDir & "\รายชื่อไวรัสที่ลบ.txt", $FileName)
$FileCount += 1
ToolTip($FileName, 0, 0)
EndFunc ;==>LogFile
Func MD51($N)
Dim $MD5Plugin
Dim $FileMD5
$MD5Plugin = PluginOpen(@ScriptDir & "\MD5Hash.dll")
$FileMD5 = MD5Hash($N, 1, True)
Return $FileMD5
EndFunc ;==>MD51
$plH = PluginClose("MD5Hash.dll")