Pada kenyataannya, sekarang banyak virus, worm dan berbagai saudaranya yang beredar yang dihasilkan oleh orang2 yang tak punya moral dengan tujuan tertentu. (ah…..jadi vixers ga ada untungnya, cuma ngerusakin kompi orang).
yooo…. dari pada basa basi mending kita bahas, susah ga bikin removal atau anti virus itu? jawabannya bisa ya bisa tidak, kenapa.? kalo mo buat anti virus yang diperlukan adalah bahasa program apa yang kita kuasai, klo ga menguasai gimana dok? jawabannya ya belajarlah (susah2 amat).
ok…. buat persiapan bikin anti virus :(…….Lets Go………)
1. Siapkan sampel2 virus
Kita harus nyiapin sampel2 virus, yang berguna agar program ,yang kita buat dapat mendeteksi keberadaan virus2 tersebut. semakin banyak sampel yang kita punyai semakin baik program tersebut dalam mendeteksi virus2 yang beredar maupun varian2 nya.
2. Teh Panas, Lucky Strike and Lagu Kesukaan ( BIar Ga Bosan)
(saya hanya memaparkan beberapa souce code yang dianggap penting,,,, dalam membuat anti virus)
MEMBACA SIGNATURE VIRUS YANG ADA
Private Sub cmdTambah_Click()
Dim nf As Integer
Dim cVDF As String
Dim cPattern As String
cVDF = App.Path + “\Scan.vdf”
nf = FreeFile
Open cVDF For Append As #nf
cPattern = AmbilPatternFile(txtPath.Text)
If cPattern = “” Then
MsgBox “Gagal mengambil pattern virus !”, vbCritical, vbOKOnly
Else
Print #nf, cPattern + txtNamaVirus.Text
Call lstHistory.AddItem(”Tambah VDF : ” + txtNamaVirus.Text, 0)
End If
Close #nf
End Sub
Kelemahan Teknik ini berfungsi jika signature virus ada, jika tidak maka kemungkinan virus-virus tidak akan dikenali….
teknik lain yang sering digunakan oleh antivirus lain seperti CRC atau ceksum… dan ini kemungkinan besar untuk mendeteksi keberadaan virus-virus yang ada
CEK PROSES BERJALAN
Public Sub CekProcesses()
Dim hSnapShot As Long
Dim ProcessEntry As PROCESSENTRY32
Dim NextEnumExists As Boolean
Dim Pos As Long
Dim pId As Long
Dim fileName As String
Dim baseName As String
hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
If hSnapShot = 0 Then
MsgBox “Failed to create Module and Thread snapshot”
Exit Sub
End If
ProcessEntry.dwSize = Len(ProcessEntry)
NextEnumExists = 0 <> Process32First(hSnapShot, ProcessEntry)
While NextEnumExists
pId = ProcessEntry.th32ProcessID
Pos = InStr(ProcessEntry.szExeFile, Chr(0))
If Pos > 1 Then
fileName = Left(ProcessEntry.szExeFile, Pos - 1)
baseName = extractFilename(fileName)
Else
fileName = “”
baseName = “”
End If
Call lstHistory.AddItem(”Periksa (” + Hex$(pId) + “) ” + fileName, 0)
Call cekModules(pId)
NextEnumExists = 0 <> Process32Next(hSnapShot, ProcessEntry)
Wend
Call CloseHandle(hSnapShot)
End Sub
Public Sub CekModules(pId As Long)
Dim ModuleEntry As TMODULEENTRY32
Dim hProcess As Long
Dim Proceed As Long
Dim hSnapShot As Long
Dim lWritten As Long
Dim sBuffer As String * 512
Dim ImageNTHeader As IMAGE_NT_HEADERS
Dim e_lfanew As Integer
Dim Pattern As String
Dim i As Integer
If GetVersion = VER_PLATFORM_WIN32_NT Then
If Not SetPrivilege(”SeDebugPrivilege”, True) Then Exit Sub
End If
hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, pId)
If hProcess <> 0 Then
hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pId)
If hSnapShot <> -1 Then
ModuleEntry.dwSize = Len(ModuleEntry)
Proceed = Module32First(hSnapShot, ModuleEntry)
Do While Proceed
sBuffer = Space(1024)
If ReadProcessMemory(hProcess, ByVal ModuleEntry.modBaseAddr, ByVal sBuffer, 512, lWritten) Then
If lWritten > 0 Then
e_lfanew = InStr(sBuffer, “PE” + Chr$(0) + Chr$(0)) - 1
If e_lfanew > 0 Then
If ReadProcessMemory(hProcess, ByVal (ModuleEntry.modBaseAddr + e_lfanew), ByVal ImageNTHeader, Len(ImageNTHeader), lWritten) Then
Pattern = buatPattern(ImageNTHeader)
i = 0
Do While i <= PatternCount
If Pattern = Left(PatternVirus(i), Len(Pattern)) Then Exit Do
i = i + 1
Loop
If i <= PatternCount Then
Call TerminateProcess(hProcess, 0)
Call lstHistory.AddItem(”Found :” + Mid$(PatternVirus(i), Len(Pattern) + 1), 0)
Call lstHistory.AddItem(”Action: Delete process”, 0)
End If
End If
End If
End If
Proceed = Module32Next(hSnapShot, ModuleEntry)
Loop
End If
CloseHandle (hSnapShot)
End If
CloseHandle (hProcess)
If GetVersion() = VER_PLATFORM_WIN32_NT Then
Call SetPrivilege(”SeDebugPrivilege”, False)
End If
End Sub
setelah menghentikan prosesnya kita akan mencari virus2 tersebut
MENCARI DAN MENDAPATKAN VIRUS2 DIMEDIA PENYIMPANAN
Function GetFiles(Path As String)
Dim ObjFSO As Object
Dim sFiles As Object
Dim Pattern As String
Dim i As Integer
On Error GoTo Finally
Set ObjFSO = CreateObject(”Scripting.FileSystemObject”)
txtScan.Text = Path
For Each sFiles In ObjFSO.GetFolder(Path).Files
DoEvents
If InStr(”bat bin com cmd dll exe ini htt pif”, Right$(sFiles, 3)) > 0 Then
Pattern = AmbilPatternFile(sFiles)
If Pattern <> “” Then
i = 0
Do While i <= PatternCount
If Pattern = Left(PatternVirus(i), Len(Pattern)) Then Exit Do
i = i + 1
Loop
If i <= PatternCount Then
Call lstHistory.AddItem(”File :” + sFiles, 0)
Call lstHistory.AddItem(”Found :” + Mid$(PatternVirus(i), Len(Pattern) + 1), 0)
End If
End If
End If
Next
Finally:
End Function
Ini hanya point-point penting yang terdapat dalam suatu antivirus…..
semoga lo dapat ngembanginnya…….soalnya gw juga lagi nyoba(he…he…he…)…
ntar deh aq kasih teknik lain pada tutorial berikutnya..key.
=======================================================================================
Download Tutorial membuat anti virus dengan vb
0 comments:
Post a Comment
Terima Kasih