ถึงตอนนี้ก็เสร็จเป็นที่เรียบร้อยแล้วกับโปรเจ็คพิเศษนี้ อิอิ
หน้าเว็บ
▼
วันอังคารที่ 29 มีนาคม พ.ศ. 2554
Basic Virus Removal Tool With VB6
กระทู้นี้ก็ไม่มีอะไรมากครับ เป็นพื้นฐานการทำตัวแก้ไวรัสหรือ Virus Removal Tool นั้นเองง่ายๆครับมีอยู่ไม่กี่ขึ้นตอน มาดูกันเลย ...
สำหรับคนที่เขียนโปรแกรมบ่อยๆก็คงจะร้อง อ่อ *0*
ข้างต้นเป็นการ Kill Process Virus แบบ Basic มากๆคือใช้คำสั่ง taskkill ในการ Kill Process ผ่าน Command Line และ vbHide ก็คือซ่อนการทำงานของ Command Line ครับ ...
เมื่อ Kill Process ไปแล้ว ต่อมาก็เป็นขึ้นตอนการลบไฟล์แบบพื้นฐานกันบ้าง ...
ข้างต้นก็จะเป็นการลบไฟล์ผ่าน Command Line แต่ในที่นี้จะใช้ Environment Path ในการระบุที่อยู่ของไฟล์นะครับ ดูได้จากลิงค์ด้านล่าง
http://vlaurie.com/computers2/Articles/environment.htm
หลักจาก Kill Process และ ลบไฟล์ไวรัสไปแล้วสิ่งที่เหลืออยู่คือค่าใน Registry ที่ถูกแก้โดยไวรัสสายพันธุ์นั้นๆ เราก็ตามไปลบกันอีกครับ ...
ข้างต้นก็จะเป็นโค้ด Shell อีกตามเคย (บอกแล้วว่า Basic 55+) ที่ใช้ลบ Value ของไวรัสใน Registry นะครับ ...
หรืออาจจะเป็นการเปลี่ยนค่าใน Value Key นั้นๆ ตรง Key Virus เปลี่ยนเอาเองนะครับ
และเมื่อเสร็จทุกขั้นตอนแล้ว ที่ขาดไม่ได้คือรีสตาร์ทเครื่องเพื่อให้การลบล้างไวรัสสมบูรณ์ครับ ...
สั่ง Restart ผ่าน Command Line เลย อิๆ ...
หวังว่าบทความนี้จะมีประโยชน์กับหลายๆท่านที่คิดจะทำ Removal Tool กัน เพราะนี่แค่พื้นฐานให้ท่านนำไปพัฒนาต่ออีกได้อย่างยาวไกล
By ICheer_No0M
สำหรับคนที่เขียนโปรแกรมบ่อยๆก็คงจะร้อง อ่อ *0*
อ้างถึง
Shell "taskkill /f /im ""virus.exe""", vbHide
ข้างต้นเป็นการ Kill Process Virus แบบ Basic มากๆคือใช้คำสั่ง taskkill ในการ Kill Process ผ่าน Command Line และ vbHide ก็คือซ่อนการทำงานของ Command Line ครับ ...
เมื่อ Kill Process ไปแล้ว ต่อมาก็เป็นขึ้นตอนการลบไฟล์แบบพื้นฐานกันบ้าง ...
อ้างถึง
Shell "cmd.exe /c del /f /q /a %systemroot%\system32\virus.exe", vbHide
ข้างต้นก็จะเป็นการลบไฟล์ผ่าน Command Line แต่ในที่นี้จะใช้ Environment Path ในการระบุที่อยู่ของไฟล์นะครับ ดูได้จากลิงค์ด้านล่าง
http://vlaurie.com/computers2/Articles/environment.htm
หลักจาก Kill Process และ ลบไฟล์ไวรัสไปแล้วสิ่งที่เหลืออยู่คือค่าใน Registry ที่ถูกแก้โดยไวรัสสายพันธุ์นั้นๆ เราก็ตามไปลบกันอีกครับ ...
อ้างถึง
On Error Resume Next
Set shl = CreateObject("WScript.Shell")
shl.RegDelete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\run\virus"
Set shl = CreateObject("WScript.Shell")
shl.RegDelete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\run\virus"
ข้างต้นก็จะเป็นโค้ด Shell อีกตามเคย (บอกแล้วว่า Basic 55+) ที่ใช้ลบ Value ของไวรัสใน Registry นะครับ ...
หรืออาจจะเป็นการเปลี่ยนค่าใน Value Key นั้นๆ ตรง Key Virus เปลี่ยนเอาเองนะครับ
อ้างถึง
Shell ("REG add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v คีย์ที่ต้องการเปลี่ยน /t REG_DWORD /d ค่าที่ต้องการเปลี่ยน /f"), vbHide
และเมื่อเสร็จทุกขั้นตอนแล้ว ที่ขาดไม่ได้คือรีสตาร์ทเครื่องเพื่อให้การลบล้างไวรัสสมบูรณ์ครับ ...
อ้างถึง
Shell "shutdown -r -f -t 0"
สั่ง Restart ผ่าน Command Line เลย อิๆ ...
หวังว่าบทความนี้จะมีประโยชน์กับหลายๆท่านที่คิดจะทำ Removal Tool กัน เพราะนี่แค่พื้นฐานให้ท่านนำไปพัฒนาต่ออีกได้อย่างยาวไกล
By ICheer_No0M
Write To Text File [ VB6 ]
Open "C:\log.txt" For Append As #1 Print #1, Text1.Text Print #1, "ICheer_No0M" Close #1For Append As #1 คือการเขียน log แบบ ผนวก หรืือ เพิ่มเติ่ม เมื่อรันคำสั่งซ้ำข้อความจะถูกเขียนเพิ่มลงไปจากข้อความที่มีอยู่เดิม
For Output As #1 คือการเขียนทับใหม่ลงไปทั้งหมด เมื่อรันคำสั่งซ้ำข้อความใหม่จะทับข้อความเดิมทั้งหมด ครับ
จากโค้ดก็เป็นการเขียนไฟล์ log.txt ที่มีใน C:\log.txt นะครับ
บรรทัดแรกก็จะเขียนจาก Text1.Text บรรทัดที่สองก็จะเขียนคำว่า ICheer_No0M
บรรทัดแรกก็จะเขียนจาก Text1.Text บรรทัดที่สองก็จะเขียนคำว่า ICheer_No0M
ขอบคุณพี่ Jae สำหรับคำแนะนำครับ ^^
Ascii To Hex Function [ VB6 ]
Private Function StringHex(EvalString As String) As String Dim intStrLen As Integer Dim intLoop As Integer Dim strHex As String EvalString = Trim(EvalString) intStrLen = Len(EvalString) For intLoop = 1 To intStrLen strHex = strHex & Hex(Asc(Mid(EvalString, intLoop, 1))) Next StringHex = strHex End Function _______________________________________________________________ Private Sub Command1_Click() Text2.Text = "0x" & StringHex(Text1.Text) End Sub
สร้าง Text1 & Text2 & Command1
Sleep & Wait Function [ VB6 ]
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long) Use : Sleep 5000 ________________________________________________ Public Function Wait(WaitTime) Dim StartTime As Double StartTime = Timer Do While Timer < StartTime + WaitTime If Timer > 86395 Or Timer = 0 Then Exit Do DoEvents Loop End Function Use : wait 5
โค้ด Function นี้ก็ไม่มีอะไรมากครับ เหมือนเป็นการหน่วงเวลาในตัวอย่าง 5000 คือ 5 วินาที ใช้ได้ทั้ง 2 แบบนะครับ
ขอบคุณพี่ Jae สำหรับ Function Wait : )