Kamis, 27 Oktober 2011

[VB 6.0] Kode selfcheck sederhana


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

(C) 2018. Diberdayakan oleh Blogger.

Categories

Followers