1. I-Code Internal
2. I-Code Eksternal
Dari kedua Teknik sejenis diatas tersebut tidak akan saya bahas semua, hanya Teknik I-Code Internal yang akan kita bahas disini. Mengapa ? karena secara konseptual, keduanya hampir sama. Hanya saja I-Code Eksternal cenderung lebih panjang dan sulit untuk dibuat serta memerlukan pengetahuan yang lebih sehingga memerlukan waktu yang cukup lama untuk melakukan pengecekan, tentunya ini cukup merugikan dan melelahkan untuk dibahas, tapi sebenarnya ada alasan lain mengapa I-Code Internal tidak saya bahas, alasanya adalah “Saya tidak bisa” He..He.. :) .
Udah lah, sampai disini saja basa – basinya, pasti temen – temen yang belum mengetahui teknik ini, penasaran bagaimana pembuatanya ??Ayo dibuat !!
Design Form sbb :
Beri Properties seperti berikut !
Coding di balik jendela code form
-------------------- Begin Code ---------------------------------
‘ I-Code
‘ Oleh A.M Hirin
Private Declare Function ExtractIconEx Lib "shell32.dll" _
Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal _
nIconIndex As Long, ByRef phiconLarge As Long, ByRef phiconSmall _
As Long, ByVal nIcons As Long) As Long
Private Declare Function DrawIconEx Lib "user32" (ByVal hDC As _
Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, _
ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As _
Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Boolean
Private Function calc_byte(path_Picture As String) As String
Dim binT() As Byte
Dim count, long_hash As Double
ReDim binT(FileLen(path_Picture)) As Byte
Open path_Picture For Binary As #1
Get #1, , binT
Close #1
For count = 1 To UBound(binT)
long_hash = long_hash + binT(count) ^ 2
Next
calc_byte = Hex(long_hash)
End Function
Private Sub Command1_Click()
CD.ShowOpen
Text1.Text = CD.FileName
End Sub
Private Sub Command2_Click()
Dim hIcon As Long
Dim IconExist As Long
Picture1.Cls
IconExist = ExtractIconEx(Text1.Text, 0, ByVal 0&, hIcon, 1)
If IconExist <= 0 Then IconExist = ExtractIconEx(Text1.Text, 0, hIcon, ByVal 0&, 1) If IconExist <= 0 Then GoTo bersih End If DrawIconEx Picture1.hDC, 0, 0, hIcon, 0, 0, 0, 0, &H3 SavePicture Picture1.Image, App.Path & "\pic.tmp" txtHasil.Text = calc_byte(App.Path & "\pic.tmp") Exit Sub bersih: txtHasil.Text = "" End Sub
-------------End Code ------------------
Penggunaan
1. Pilih satu file executable yang akan di ambil nilai ceksum Iconya
2. Lalu Klik Tombol Hash
3. Lihatlah nilai ceksum icon tersebut akan muncul
Implementasi
Sekarang kamu bisa tambahkan teknik ini kedalam Antivirus kamu untuk mensuspect virus dengan Icon-Icon yang didefinisikan. Caranya sama ketika membuat database Antivirus, seperti Crc-32,Md5, atau ceksum lainya.
Contoh salah satu local Antivirus menangkap objek dengan I-Code Diatas !Penutup
Kaya’nya udah ya sedikit bincang – bincang mengenai pembuatan I-Code, udh capek nih , semoga berguna yah. Bagi temen – temen yang mau download projek diatas, maaf yah cz tidak ada. Maklum, gak ada tempat buat upload, tapi coba deh, kalo ada yang minta mungkin ntar saya upload kalo sempat.
~ Semoga Berguna ~Catatan :
Pada code I-Code diatas, sangat bergantun pada ukuran Picture box yan digunakan. Tentukan standar Picture box yan akan kamu gunakan dalam Antivirusmu !!, karena dalam kondisi ukuran Picturebox yang berbeda, maka nilai ceksum yang dihasilkan juga berbeda. Bisa dilihat alasanya setelah menganalisa code diatas !!



Comments :
0 komentar to “Scan Heuristic Berdasarkan Icon”
Posting Komentar