พอดีเจอไวรัสแฟรชไดรฟ์ ตัวหนึ่งครับ มันทำงานอย่างนี้ครับ
สมมุติว่า ในแฟรชไดรฟ์มีโฟลเดอร์ 2 อัน ชื่อ a กับ b
มันจะสร้างไฟล์ไวรัสเป็นรูปโฟลเดอร์ชื่อ a.exe อยู่ในโฟลเดอร์ a ครับ และในโฟลเดอร์ a มีโฟลเดอร์ ก อยู่
มันก็จะสร้างไวรัส ก.exe อีกในโฟลเดอร์ ก เป็นอย่างนี้ไปเรื่อย ถ้ามีโฟลเดอร์ซ้อน ๆ กัน มันก็จะตามไปสร้างจนกว่าจะไม่มีโฟลเดอร์ครับ โฟลเดอร์ b ก็เป็นแบบเดียวกัน
ถ้าเกิดในแฟรชไดรฟ์มี โฟลเดอร์ซัก 10 โฟลเดอร์ แล้วแต่ละโฟลเดอร์นั้นก็มีอีก 10 โฟลเดอร์ เป็นอย่างนี้ซ้อนกันไป 10 ชั้นเราจะเขียนฟังก์ชันลบมันยังไงดีครับ คิดว่าน่าจะเป็น Recursive
นี่เป็นตัวอย่าางโค๊ดที่เขียนแต่จัดการได้แค่ ชั้นเดียว สมมุติแฟรชไดรฟ์คือ G:\
สมมุติว่า ในแฟรชไดรฟ์มีโฟลเดอร์ 2 อัน ชื่อ a กับ b
มันจะสร้างไฟล์ไวรัสเป็นรูปโฟลเดอร์ชื่อ a.exe อยู่ในโฟลเดอร์ a ครับ และในโฟลเดอร์ a มีโฟลเดอร์ ก อยู่
มันก็จะสร้างไวรัส ก.exe อีกในโฟลเดอร์ ก เป็นอย่างนี้ไปเรื่อย ถ้ามีโฟลเดอร์ซ้อน ๆ กัน มันก็จะตามไปสร้างจนกว่าจะไม่มีโฟลเดอร์ครับ โฟลเดอร์ b ก็เป็นแบบเดียวกัน
ถ้าเกิดในแฟรชไดรฟ์มี โฟลเดอร์ซัก 10 โฟลเดอร์ แล้วแต่ละโฟลเดอร์นั้นก็มีอีก 10 โฟลเดอร์ เป็นอย่างนี้ซ้อนกันไป 10 ชั้นเราจะเขียนฟังก์ชันลบมันยังไงดีครับ คิดว่าน่าจะเป็น Recursive
นี่เป็นตัวอย่าางโค๊ดที่เขียนแต่จัดการได้แค่ ชั้นเดียว สมมุติแฟรชไดรฟ์คือ G:\
- Code:
#Include <File.au3>
#Include <Array.au3>
$FileList=_FileListToArray("G:\","*",2)
$NumFileList=$FileList[0]
$i=0
While $i<=$NumFileList
if FileExists("G:\"&$FileList[$i]&"\"&$FileList[$i]&".exe") then
;FileDelete("G:\"&$FileList[$i]&"\"&$FileList[$i]&".exe")
MsgBox(0,"","เจอไวรัส """&$FileList[$i]&".exe""")
EndIf
$i=$i+1
WEnd