Teknik membuat AntiVirus

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…
Blog, Updated at: 4/04/2011 07:03:00 PM

0 comments:

Post a Comment

ROUGER DELUFFY CHANNEL