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…
0 comments:
Post a Comment