Pernahkah anda melihat suatu Program atau Software yang tidak bisa dijalankan karena anda modifikasi atau terkena infeksi oleh virus komputer? ya, Software tersebut memiliki kemampuan melakukan pengecekan diri sendiri apakah byte atau ukuran file mereka berubah atau tidak, cara yang dilakukan bisa berupa hashing (biasanya dengan menggunakan File Library seperti DLL untuk melakukan check pada File lainnya) atau dengan melakukan pengecekan terhadap ukuran File.
Pada artikel ini, saya mencoba untuk membuat agar suatu Program dapat melakukan check ukurannya sendiri, sehingga jika Program terinfeksi virus dimana ukuran atau size program bertambah atau berkurang maka Program akan menampilkan Alert atau keluar program secara otomatis.
Pada main form,tepatnya di bagian kode Form_Load (Private Sub Form_Load())
ketikkan kode berikut:
Call Virus_Check
lalu buat module dan ketikkan kode dibawah ini:
Const OPEN_EXISTING = 3
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function GetFileSizeEx Lib "kernel32" (ByVal hFile As Long, lpFileSize As Currency) As Boolean
Private Declare Function MoveFile Lib "kernel32.dll" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long
Private Declare Function CopyFile Lib "kernel32.dll" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Private Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Sub Copy_File(File, Destination)
retval = CopyFile(File, Destination, 1)
End Sub
Sub Move_File(File, Destination)
retval = MoveFile(File, Destination)
End Sub
Sub Main()
frmMain.Show
End Sub
Function Virus_Check()
On Error GoTo CheckUnknown
'membuat copy file
Call Copy_File(App.Path & "\test.exe", "C:\test.tst")
Dim hFile As Long, nSize As Currency
hFile = CreateFile("C:\test.tst", GENERIC_READ, FILE_SHARE_READ, ByVal 0&, OPEN_EXISTING, ByVal 0&, ByVal 0&)
GetFileSizeEx hFile, nSize
'ukuran file yang sebenarnya..jangan sampai salah memasukkan sizenya
If nSize <> "2.0480" Then
MsgBox "Ukuran berubah", vbCritical, "Peringatan"
'memberi pesan kalau program akan keluar otomatis
MsgBox "For safety Reasons this Application will now close", vbExclamation, "Closing"
'selalu hapus file test.tst
Unload frmMain
Kill ("C:\test.tst")
End
Else:
Kill ("C:\test.tst")
End If
CheckUnknown:
If Err.Number = "53" Then
MsgBox "Unknown Error Occured,, This file has Possibly been renamed to something else, This files EXE name should be ""test.exe"""
End
End If
End Function
Bagaimana cara kerjanya?
Pertama,program akan menyalin dirinya sendiri ke drive C:\ , lalu program mengambil ukuran size hasil copy apakah sama dengan kode pada module. Jika tidak sama, program akan memberi pesan peringatan dan akan keluar dari program secara otomatis.
Jangan lupa compile program lalu mencatat size kemudian mengubah kode program dan baru compile
ulang agar trik ini bisa berhasil. Jika anda menjalankan tanpa mengcomplie maka trik ini tidak akan berjalan..
Ingat ya, nama program dan sizenya harus sama dengan kode di module program tersebut..
Sekali lagi,kuncinya hanyalah di size program, karena virus yang menginfeksi suatu program biasanya menambah size program asli atau dengan kata lain menumpuk data di file infeksi..
Semoga Bermanfaat =))
Artikel ini dibuat oleh Yudha Tri Putra,segala macam bentuk pengcopyan atau menyalin sebagian atau seluruh halaman ini,dapat dikenakan sanksi dan melanggar Hak Cipta Yudha Tri Putra sebagai Blogger
0 komentar:
Posting Komentar