2/29/2008

Teknik Membuat Anti Virus Dengan VB

Keamanan dalam bekerja dengan menggunakan komputer sebagai sarana mengaplikasikan berbagai pekerjaan, anti virus merupakan kebutuhan pokok yang harus dipunyai oleh setiap komputer. tapi apakah semua anti virus yang beredar di pasaran sanggup untuk mengatasi berbagai malcode yang berkeliaran? jawabannya pasti tidak. kenapa? karena semakin canggihnya teknologi dan semakin pintarnya seseorang maka semakin bobrok juga otak2 orang itu.,…..

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

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.

sumber :http://aurel666.wordpress.com