Menurut anda antivirus manakah yang mampu untuk menagani virus?

Apakah anda tertarik dengan web kami?

Senin, 03 Mei 2010

Cara membuat hang komputer

Cara Membuat Hang Komputer
ikuti langkah2 berikut ini :
1.buka command prompt/cmd anda, caranya klik start > run > cmd
2.Saat command prompt anda muncul, ketik edit iseng.bat
3.Maka tampilan command prompt anda akan berbeda. setelah itu

masukkan/ketikkan code di bawah ini :
net send [ipkomputer]/[namakomputer] pesan anda
contoh :
net send 192.168.101.7 sorry ya kompi lagi capek restart dulu ya
call iseng.bat

kemudian save as file tersebut.

Untuk menjalankannya tinggal klik file iseng.bat tersebut


Keterangan dan tips :

* iseng.bat adalah nama file bisa diganti dengan nama lain misalnya coba.bat, kucing.bat dll.

* Saat menyimpan file pada menu cmd, perhatikan huruf yang dicetak berbeda dengan huruf lainnya:

* File : huruf F dicetak berbeda, maksudnya untuk mengakses menu file kita harus menekan tombol F.

* Hal tersebut juga berlaku pada menu menu lainnnya.

* Untuk berpindah ke area ketikan lain gunakan tombol tab.

Cara membuat game tetris

Ini cara untuk membuat game dengan tetris.
Proram yang diperlukan adalah vfp

PUBLIC ff
ff = CreateObject('frm')
ff.visible = .T.
RETURN


#DEFINE tetris 4
#DEFINE c0 128 && color constant
#DEFINE c1 196 && color constant
#DEFINE sqee_width 20
#DEFINE sqee_height 20
#DEFINE bucketWidth 12
#DEFINE bucketHeight 24
#DEFINE dropInterval 200 && millisecond
#DEFINE keyLeft 19
#DEFINE keyRight 4
#DEFINE keyDrop 32
#DEFINE keyRotate 5

DEFINE CLASS sqee As Shape
Owner = 0 && (0)empty, (1)debris, all others - Figure.Mode
Width = sqee_width
Height = sqee_height
BorderColor = RGB (240,240,255)
BackColor = RGB(255,255,255)
ENDDEFINE

DEFINE CLASS figure As Custom
DIMEN arrX [tetris]
DIMEN arrY [tetris]
dY = 1
dX = 1
mode = 0
main = .F.
BackColor = 0
turned_counter = 0
turned_counter_dy = 0
turned_counter_dx = 0
turned_clockwise = 0
turned_clockwise_dy = 0
turned_clockwise_dx = 0

PROCEDURE init
THIS.BackColor = THIS.get_color()
THIS.after_init
ENDPROC

PROCEDURE assign_neighbours (tl, tly, tlx, tr, try, trx)
THIS.turned_counter = tl
THIS.turned_counter_dy = tly
THIS.turned_counter_dx = tlx
THIS.turned_clockwise = tr
THIS.turned_clockwise_dy = try
THIS.turned_clockwise_dx = trx
ENDPROC

PROCEDURE init_arr (y1,x1, y2,x2, y3,x3, y4,x4)
THIS.arrX [1] = x1
THIS.arrX [2] = x2
THIS.arrX [3] = x3
THIS.arrX [4] = x4
THIS.arrY [1] = y1
THIS.arrY [2] = y2
THIS.arrY [3] = y3
THIS.arrY [4] = y4
ENDPROC

PROCEDURE reset_figure
STORE 1 TO THIS.dY, THIS.dX
ENDPROC

FUNCTION get_color ()
DO CASE
CASE INLIST (THIS.mode, 1,11)
RETURN RGB (c1,c0,c0)
CASE THIS.mode = 2
RETURN RGB (c1,c1,c0)
CASE INLIST (THIS.mode, 3,31,32,33)
RETURN RGB (c1,c0,c1)
CASE INLIST (THIS.mode, 4,41)
RETURN RGB (c0,c1,c1)
CASE INLIST (THIS.mode, 5,51)
RETURN RGB (c0,c1,c0)
CASE INLIST (THIS.mode, 6,61,62,63)
RETURN RGB (c0,c0,c1)
CASE INLIST (THIS.mode, 7,71,72,73)
RETURN RGB (c0,c0,c0)
OTHER
RETURN RGB (c1,c1,c1)
ENDCASE
ENDFUNC

PROCEDURE set_state (numColor, numOwner)
LOCAL ii
FOR ii=1 TO tetris
WITH ThisForm.d.arr [ THIS.dY+THIS.arrY[ii], THIS.dX+THIS.arrX[ii] ]
.BackColor = numColor
.Owner = numOwner
ENDWITH
ENDFOR
ENDPROC

PROCEDURE set_visible
THIS.set_state (THIS.BackColor, THIS.mode)
ENDPROC

PROCEDURE set_free
THIS.set_state (THIS.Parent.BackColor, 0)
ENDPROC

PROCEDURE set_debris
THIS.set_state (THIS.BackColor, -1)
ENDPROC

PROCEDURE set_owner (numOwner)
LOCAL ii
FOR ii=1 TO tetris
WITH ThisForm.d.arr [ THIS.dY+THIS.arrY[ii], THIS.dX+THIS.arrX[ii] ]
.Owner = numOwner
ENDWITH
ENDFOR
ENDPROC

PROCEDURE conflict (dY,dX, allowedMode)
LOCAL ii
FOR ii=1 TO tetris
IF Not (BETW(dY+THIS.dY+THIS.arrY[ii], 1, bucketHeight);
And BETW(dX+THIS.dX+THIS.arrX[ii], 1, bucketWidth))
RETURN .T.
ENDIF

WITH ThisForm.d.arr [ dY+THIS.dY+THIS.arrY[ii], dX+THIS.dX+THIS.arrX[ii] ]
IF Not (.Owner=0 Or .Owner=THIS.mode Or .Owner=allowedMode)
RETURN .T.
ENDIF
ENDWITH
ENDFOR
RETURN .F.
ENDPROC

FUNCTION move_ (dY,dX)
IF THIS.Conflict (dY,dX,0)
RETURN .F.
ELSE
THIS.set_free
THIS.dY = THIS.dY + dY
THIS.dX = THIS.dX + dX
THIS.set_visible
RETURN .T.
ENDIF
ENDPROC

PROCEDURE move_down
RETURN THIS.move_ (1,0)
ENDPROC

PROCEDURE move_left
RETURN THIS.move_ (0,-1)
ENDPROC

PROCEDURE move_right
RETURN THIS.move_ (0,1)
ENDPROC
ENDDEFINE

DEFINE CLASS f1 As figure && vertical stick
mode = 1
main = .T.
PROCEDURE after_init
THIS.init_arr (0,0, 1,0, 2,0, 3,0)
THIS.assign_neighbours (11,2,-1, 11,2,-2)
ENDPROC
ENDDEFINE

DEFINE CLASS f11 As figure && horizontal stick
mode = 11
main = .F.
PROCEDURE after_init
THIS.init_arr (0,0, 0,1, 0,2, 0,3)
THIS.assign_neighbours (1,-2,1, 1,-2,2)
ENDPROC
ENDDEFINE

DEFINE CLASS f2 As figure && square
mode = 2
main = .T.
PROCEDURE after_init
THIS.init_arr (0,0, 0,1, 1,0, 1,1)
THIS.assign_neighbours (2,0,0, 2,0,0)
ENDPROC
ENDDEFINE

DEFINE CLASS f3 As figure && t-bone
mode = 3
main = .T.
PROCEDURE after_init
THIS.init_arr (0,0, 0,1, 0,2, 1,1)
THIS.assign_neighbours (32,0,0, 31,0,0)
ENDPROC
ENDDEFINE

DEFINE CLASS f31 As figure && t-bone rotated
mode = 31
main = .F.
PROCEDURE after_init
THIS.init_arr (0,0, 1,0, 2,0, 1,1)
THIS.assign_neighbours (3,0,0, 33,0,0)
ENDPROC
ENDDEFINE

DEFINE CLASS f32 As figure && t-bone rotated
mode = 32
main = .F.
PROCEDURE after_init
THIS.init_arr (0,1, 1,1, 2,1, 1,0)
THIS.assign_neighbours (33,0,0, 3,0,0)
ENDPROC
ENDDEFINE

DEFINE CLASS f33 As figure && t-bone rotated
mode = 33
main = .F.
PROCEDURE after_init
THIS.init_arr (1,0, 1,1, 1,2, 0,1)
THIS.assign_neighbours (31,0,0, 32,0,0)
ENDPROC
ENDDEFINE

DEFINE CLASS f4 As figure && zed1
mode = 4
main = .T.
PROCEDURE after_init
THIS.init_arr (0,0, 0,1, 1,1, 1,2)
THIS.assign_neighbours (41,0,0, 41,0,0)
ENDPROC
ENDDEFINE

DEFINE CLASS f41 As figure && zed1 rotated
mode = 41
main = .F.
PROCEDURE after_init
THIS.init_arr (2,0, 1,0, 1,1, 0,1)
THIS.assign_neighbours (4,0,0, 4,0,0)
ENDPROC
ENDDEFINE

DEFINE CLASS f5 As figure && zed2
mode = 5
main = .T.
PROCEDURE after_init
THIS.init_arr (1,0, 1,1, 0,1, 0,2)
THIS.assign_neighbours (51,0,0, 51,0,0)
ENDPROC
ENDDEFINE

DEFINE CLASS f51 As figure && zed2 rotated
mode = 51
main = .F.
PROCEDURE after_init
THIS.init_arr (0,0, 1,0, 1,1, 2,1)
THIS.assign_neighbours (5,0,0, 5,0,0)
ENDPROC
ENDDEFINE

DEFINE CLASS f6 As figure && scrap1
mode = 6
main = .T.
PROCEDURE after_init
THIS.init_arr (0,0, 1,0, 2,0, 0,1)
THIS.assign_neighbours (62,0,0, 61,0,0)
ENDPROC
ENDDEFINE

DEFINE CLASS f61 As figure && scrap1 rotated
mode = 61
main = .F.
PROCEDURE after_init
THIS.init_arr (1,0, 1,1, 1,2, 0,0)
THIS.assign_neighbours (6,0,0, 63,0,0)
ENDPROC
ENDDEFINE

DEFINE CLASS f62 As figure && scrap1 rotated
mode = 62
main = .F.
PROCEDURE after_init
THIS.init_arr (0,0, 0,1, 0,2, 1,2)
THIS.assign_neighbours (63,0,0, 6,0,0)
ENDPROC
ENDDEFINE

DEFINE CLASS f63 As figure && scrap1 rotated
mode = 63
main = .F.
PROCEDURE after_init
THIS.init_arr (0,1, 1,1, 2,1, 2,0)
THIS.assign_neighbours (61,0,0, 62,0,0)
ENDPROC
ENDDEFINE

DEFINE CLASS f7 As figure && scrap2
mode = 7
main = .T.
PROCEDURE after_init
THIS.init_arr (0,0, 0,1, 1,1, 2,1)
THIS.assign_neighbours (72,0,0, 71,0,0)
ENDPROC
ENDDEFINE

DEFINE CLASS f71 As figure && scrap2 rotated
mode = 71
main = .F.
PROCEDURE after_init
THIS.init_arr (0,0, 0,1, 0,2, 1,0)
THIS.assign_neighbours (7,0,0, 73,0,0)
ENDPROC
ENDDEFINE

DEFINE CLASS f72 As figure && scrap2 rotated
mode = 72
main = .F.
PROCEDURE after_init
THIS.init_arr (1,0, 1,1, 1,2, 0,2)
THIS.assign_neighbours (73,0,0, 7,0,0)
ENDPROC
ENDDEFINE

DEFINE CLASS f73 As figure && scrap2 rotated
mode = 73
main = .F.
PROCEDURE after_init
THIS.init_arr (0,0, 1,0, 2,0, 2,1)
THIS.assign_neighbours (71,0,0, 72,0,0)
ENDPROC
ENDDEFINE

DEFINE CLASS bucket As Container
max_mode = 7
current_mode = 0
BackColor = RGB(255,255,255)

DIMEN ff [100]
ADD OBJECT ff[ 1] As f1
ADD OBJECT ff[11] As f11
ADD OBJECT ff[ 2] As f2
ADD OBJECT ff[ 3] As f3
ADD OBJECT ff[31] As f31
ADD OBJECT ff[32] As f32
ADD OBJECT ff[33] As f33
ADD OBJECT ff[ 4] As f4
ADD OBJECT ff[41] As f41
ADD OBJECT ff[ 5] As f5
ADD OBJECT ff[51] As f51
ADD OBJECT ff[ 6] As f6
ADD OBJECT ff[61] As f61
ADD OBJECT ff[62] As f62
ADD OBJECT ff[63] As f63
ADD OBJECT ff[ 7] As f7
ADD OBJECT ff[71] As f71
ADD OBJECT ff[72] As f72
ADD OBJECT ff[73] As f73

arr_size = bucketWidth * bucketHeight
DIMEN arr [bucketHeight, bucketWidth]

PROCEDURE Init
THIS.AddSquees
THIS.Width = sqee_width * bucketWidth
THIS.Height = sqee_height * bucketHeight
ENDPROC

PROCEDURE AddSquees
LOCAL lnY, lnX, lcName
FOR lnY=1 TO bucketHeight
FOR lnX=1 TO bucketWidth
lcName = STRTRAN('arr'+STR(lnY,2) + '_' + STR(lnX,2), ' ','0')
THIS.AddObject (lcName, 'sqee')
THIS.arr [lnY,lnX] = EVAL('THIS.'+lcName)
WITH THIS.arr [lnY,lnX]
.left = (lnX-1) * sqee_width
.top = (lnY-1) * sqee_height
.Owner = 0
.visible = .T.
ENDWITH
ENDFOR
ENDFOR
ENDPROC

PROCEDURE RemoveSquees
LOCAL lnY, lnX, lcName
FOR lnY=1 TO bucketHeight
FOR lnX=1 TO bucketWidth
lcName = STRTRAN('arr'+STR(lnY,2) + '_' + STR(lnX,2), ' ','0')
THIS.RemoveObject (lcName)
ENDFOR
ENDFOR
ENDPROC

FUNCTION init_figure
THIS.current_mode = INT (RAND() * THIS.max_mode) + 1
IF NOT BETW(THIS.current_mode, 1,THIS.max_mode)
THIS.current_mode = 1
ENDIF
WITH THIS.ff [THIS.current_mode]
.reset_figure
IF .conflict (0,0,0)
RETURN .F.
ENDIF
.set_visible
ENDWITH
RETURN .T.
ENDFUNC

FUNCTION debris_line (num) && if there is at least one line of debris
LOCAL ii
FOR ii=1 TO bucketWidth
IF THIS.arr [num, ii].Owner <> -1
RETURN .F.
ENDIF
ENDFOR
RETURN .T.
ENDFUNC

FUNCTION find_debris_line
LOCAL jj
FOR jj=bucketHeight TO 1 STEP -1
IF THIS.debris_line (jj)
RETURN jj
ENDIF
ENDFOR
RETURN 0
ENDFUNC

PROCEDURE shake_debris
LOCAL num, jj, ii, savedColor
num = THIS.find_debris_line()
IF num = 0
RETURN
ENDIF

* release line
FOR ii=1 TO bucketWidth
THIS.arr[num, ii].Owner = 0
THIS.arr[num, ii].BackColor = THIS.BackColor
ENDFOR

* drop all other lines
FOR jj=num-1 TO 1 STEP -1
FOR ii=1 TO bucketWidth
IF THIS.arr[jj,ii].Owner = -1
savedColor = THIS.arr [jj, ii].BackColor
THIS.arr [jj, ii].BackColor = THIS.BackColor
THIS.arr [jj, ii].Owner = 0
THIS.arr [jj+1, ii].BackColor = savedColor
THIS.arr [jj+1, ii].Owner = -1
ENDIF
ENDFOR
ENDFOR
ENDPROC

PROCEDURE rotate_figure (newMode, dY,dX)
LOCAL obj
WITH THIS.ff [THIS.current_mode]
obj = THIS.ff [.turned_clockwise]
obj.dY = .dY + .turned_clockwise_dY
obj.dX = .dX + .turned_clockwise_dX
ENDWITH

IF Not obj.Conflict (0,0,THIS.current_mode)
THIS.ff [THIS.current_mode].set_free
THIS.current_mode = obj.mode
THIS.ff [THIS.current_mode].set_visible
RETURN .T.
ELSE
RETURN .F.
ENDIF
ENDPROC

PROCEDURE rotate
WITH THIS.ff [THIS.current_mode]
DO WHILE .T.
IF THIS.rotate_figure (.turned_clockwise, .turned_clockwise_dY, .turned_clockwise_dX)
EXIT
ELSE
IF Not .move_right()
EXIT
ENDIF
ENDIF
ENDDO
ENDWITH
ENDPROC

PROCEDURE rotate_counter_clockwise
WITH THIS.ff [THIS.current_mode]
THIS.rotate (.turned_counter, .turned_counter_dY, .turned_counter_dX)
ENDWITH
ENDPROC
ENDDEFINE

DEFINE CLASS frm As Form
Caption = 'Tetris'
MaxButton = .F.
BorderStyle = 2
KeyPreview = .T.
ADD OBJECT d As bucket
ADD OBJECT t As Timer

PROCEDURE Init
WITH THIS.d
STORE 0 TO .top, .left
THIS.Width = .Width
THIS.Height = .Height
ENDWITH
THIS.d.init_figure
THIS.t.Interval = dropInterval && setting speed
ENDPROC

PROCEDURE Destroy
THIS.d.RemoveSquees
ENDPROC

PROCEDURE KeyPress
LPARAMETERS nKeyCode, nShiftAltCtrl
DO CASE
CASE nKeyCode=27
THIS.release
CASE nKeyCode=keyLeft
THIS.d.ff [THIS.d.current_mode].move_left
CASE nKeyCode=keyRight
THIS.d.ff [THIS.d.current_mode].move_right
CASE nKeyCode=keyDrop
DO WHILE THIS.d.ff [THIS.d.current_mode].move_down()
ENDDO
CASE nKeyCode=keyRotate
THIS.d.rotate
ENDCASE
ENDPROC

PROCEDURE t.Timer
LOCAL obj
WITH ThisForm.d
obj = .ff [.current_mode]
IF Not obj.move_down()
obj.set_debris
IF .init_figure()
obj = .ff [.current_mode]
ELSE
ThisForm.release && here you lost
ENDIF
ENDIF
.shake_debris
ENDWITH
ENDPROC
ENDDEFINE




Semoga bermanfaat...

Cara membuat antivirus kspoold/yang lain

Ini adlah cara membuat antivirus Kspoold,virus Kspoold sebenarya tidak merusak komputer anda,tetapi hanya membuat komputer anda menjadi lebih berat kerjanya karena virus ini membuat memory menjadi banyak data.Wahh,sepertinya anda sudah tidaksabar nih,langsung saja yuk kita coba.Copy,Pastekan kode yang ada di bawah ini kedalam notepad.

Echo off
Cls
REM - Ubah Warna
Color A
REM - Ubah Judul
Title Kspoold Killer * By N4is3N (Atau nama anda sendiri)
REM - Masuk ke Direktori Sistem
%SYSTEMDRIVE%
cd %SYSTEMROOT%\System32
Echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Echo KSPOOLD KILLER
Echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Echo After you press any key on your keyboard, i do...
Echo - Removing Related Registry
Echo - Stopping Kspoold Process
Echo - Deleting Kspoold file in the system directory
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Echo.
Pause
Echo.
REM - Hapus Registry yg di buat sebagai service virus
Reg delete "HKEY_MACHINE_\SYSTEM\ControlSet001\Service\KspooldDaemon" /f
Reg delete "HKEY_MACHINE_\SYSTEM\ControlSet002\Service\KspooldDaemon" /f
Reg delete "HKEY_MACHINE_\SYSTEM\CurentControlSet\Service\KspooldDaemon"/f
REM - Hentikan Proses Virus
TaskKill /IM Kspoold.exe /F /T
REM - Set Atribut file Virus menjadi normal
Attrib -s -h -r Kspoold.exe
REM - Hapus file Virus
Del Kspoold.exe
Cls
Echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Echo KSPOOLD KILLER
Echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Echo After you press any key on your keyboard, i do...
Echo - Removing Related Registry
Echo - Stopping Kspoold Process
Echo - Deleting Kspoold file in the system directory
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Echo.
Echo Press any key to continue...
Echo.
Echo Well done -The "Kspoold" was completely removed
Echo.
Pause


Nah,gampang kan .Kalau ingin membasmi virus lain hanya perlu ganti nama virusnya dan ekstensinya saja.okay

Kamis, 29 April 2010

MARI KITA MEMBUAT antivirus dengan notepad

MUNGKIN BANYAK ORANG PENGEN BIKIN ANTIVIRUS ,TAPI KAN RUMIT KODENYA .TETAPI TIDAK USAH REPOT,ANDA DAPAT MEMBUATNYA DENGAN NOTEPAD KOK.

Ini caramembuat antivirus
ok kita hanya butuh notepad.
dan ini adalah kode antivirusnya


@echo off
taskkill /F /IM namavirus1.exe /IM namavirus2.exe
for /R C:\ %%a in (*.exe) do if %%~za equ 157184 del /A: H S R A “%%a”
for /R C:\ %%a in (*.doc.exe) do del “%%a”
echo untuk drive d N subfolder_Nye
for /R D:\ %%a in (*.doc.exe) do del “%%a”
cd /d c:\
attrib *.doc -H -S -A /S
cd /d d:\
echo untuk drive D N subfolder_Nye
attrib *.doc -H -S -A /S
exit

TERUS SAVE DENGAN NAMA ANTIVIRUS.bat

GAMPANG KAN.

Mari kita membuat antivirus sendiri

sebuah ANTIVIRUS sederhana, yang diperlukan :
1. Software Visual Basic 6.0 (Visual Basic)
02. Sedikit pemahaman akan pemograman Visual Basic 6.0
3. Sampel file bersih atau virus (– opsional)

Sekarang kita akan belajar membuat sebuah rutin sederhana untuk :- Memilih file yang akan dicek- Membuka file tersebut dalam mode binary- Memproses byte demi byte untuk menghasilkan Checksum
Buka Visual Basic6.0 anda, lalu buatlah sebuah class module dan Form dengan menambahkan sebuah objek Textbox, CommonDialog dan Command Button. (Objek CommonDialog dapat ditambahkan dengan memilih Project -> COmponent atau Ctrl-T dan memilih Microsoft Common Dialog Control 6.0) Ketikkan kode berikut pada class module (kita beri nama class module tsb clsCrc) :
================= START HERE ====================
Private crcTable(0 To 255) As Long ‘crc32
Public Function CRC32(ByRef bArrayIn() As Byte, ByVal lLen As Long, Optional ByVal lcrc As Long = 0) As Long
‘bArrayIn adalah array byte dari file yang dibaca, lLen adalah ukuran atau size file
Dim lCurPos As Long ‘Current position untuk iterasi proses array bArrayInDim lTemp As Long ‘variabel temp hasil perhitungan
If lLen = 0 Then Exit Function ‘keluar fungsi apabila ukuran file = 0lTemp = lcrc Xor &HFFFFFFFF
For lCurPos = 0 To lLenlTemp = (((lTemp And &HFFFFFF00) &H100) And &HFFFFFF) Xor (crcTable((lTemp And 255) Xor bArrayIn(lCurPos)))Next lCurPos
CRC32 = lTemp Xor &HFFFFFFFF
End Function
Private Function BuildTable() As BooleanDim i As Long, x As Long, crc As LongConst Limit = &HEDB88320
For i = 0 To 255crc = iFor x = 0 To 7If crc And 1 Thencrc = (((crc And &HFFFFFFFE) 2) And &H7FFFFFFF) Xor LimitElsecrc = ((crc And &HFFFFFFFE) 2) And &H7FFFFFFFEnd IfNext xcrcTable(i) = crcNext iEnd Function
Private Sub Class_Initialize()BuildTableEnd Sub
================= END HERE ====================
Lalu ketikkan kode berikut dalam event Command1_Click :
================= START HERE ====================
Dim namaFileBuka As String, HasilCrc As StringDim CCrc As New clsCrc ‘bikin objek baru dari class ClsCrcDim calCrc As LongDim tmp() As Byte ‘array buat file yang dibaca
Private Sub Command1_Click()CommonDialog1.CancelError = True ‘error bila user mengklik cancel pada CommonDialogCommonDialog1.DialogTitle = “Baca File” ‘Caption commondialog
On Error GoTo erorhandle ‘label error handle
CommonDialog1.ShowOpennamafilbuka = CommonDialog1.FileNameOpen namafilbuka For Binary Access Read As #1 ‘buka file yang dipilih dengan akses baca pada mode binaryReDim tmp(LOF(1) – 1) As Byte ‘deklarasi ulang untuk array, # Bugs Fixed #Get #1, , tmp()Close #1
calCrc = UBound(tmp) ‘mengambil ukuran file dari arraycalCrc = CCrc.CRC32(tmp, calCrc) ‘hitung CRC
HasilCrc = Hex(calCrc) ‘diubah ke format hexadesimal, karena hasil perhitungan dari class CRC masih berupa numericText1.Text = HasilCrc ‘tampilkan hasilnyaExit Sub
erorhandle:If Err.Number <> 32755 Then MsgBox Err.Description ‘error number 32755 dalah bila user mengklik tombol cancel pada saat memilih file
================= END HERE ====================
COba anda jalankan program diatas dengan memencet tombol F5, lalu klik Command1 untuk memilih dan membuka file. Maka program akan menampilkan CRC32nya.
Second#Kode diatas dapat kita buat menjadi sebuah rutin pengecekan file suspect virus dengan antara membandingkan hasil CRC32nya dan database CRC kita sendiri. Algoritmanya adalah :- Memilih file yang akan dicek- Membuka file tersebut dalam mode binary- Memproses byte demi byte untuk menghasilkan Checksum- Buka file database- Ambil isi file baris demi baris- Samakan Checksum hasil perhitungan dengan checksum dari file
Format file database dapat kita tentukan sendiri, misal :- FluBurung.A=ABCDEFGH- Diary.A=12345678Dimana FluBurung.A adalah nama virus dan ABCDEFGH dalah Crc32nya. Jika kita mempunyai format file seperti diatas, maka kita perlu membaca file secara sekuensial per baris serta memisahkan antara nama virus dan Crc32nya. Dalam hal ini yang menjadi pemisah adalah karakter ‘=’.Buat 1 module baru (– diberi nama module1) lalu isi dengan kode :
================= START HERE ====================
Public namaVirus As String, CrcVirus As String ‘deklarasi variabel global untuk nama dan CRC virus Public pathExe as String ‘deklarasi variabel penyimpan lokasi file EXE AV kita
Public Function cariDatabase(Crc As String, namaFileDB As String) As BooleanDim lineStr As String, tmp() As String ‘variabel penampung untuk isi fileOpen namaFileDB For Input As #1 ‘buka file dengan mode inputDoLine Input #1, lineStrtmp = Split(lineStr, “=”) ‘pisahkan isi file bedasarkan pemisah karakter ‘=’namaVirus = tmp(0) ‘masukkan namavirus ke variabel dari arrayCrcVirus = tmp(1) ‘masukkan Crcvirus ke variabel dari arrayIf CrcVirus = Crc Then ‘bila CRC perhitungan cocok/match dengan databasecariDatabase = True ‘kembalikan nilai TRUEExit Do ‘keluar dari perulanganEnd IfLoop Until EOF(1)Close #1End Function
================= END HERE ====================
Lalu tambahkan 1 objek baru kedalam Form, yaitu Command button2. lalu ketikkan listing kode berikut kedalam event Command2_Click :
================= START HERE ====================If Len(App.Path) <= 3 Then ‘bila direktori kita adalah root direktoripathEXE = App.PathElsepathEXE = App.Path & “”End If CommonDialog1.CancelError = True ‘error bila user mengklik cancel pada CommonDialogCommonDialog1.DialogTitle = “Baca File” ‘Caption commondialog On Error GoTo erorhandle ‘label error handle CommonDialog1.ShowOpennamafilbuka = CommonDialog1.FileNameOpen namafilbuka For Binary Access Read As #1 ‘buka file yang dipilih dengan akses baca pada mode binaryReDim tmp(LOF(1) – 1) As Byte ‘deklarasi ulang untuk array # Bugs Fixed #Get #1, , tmp()Close #1 calCrc = UBound(tmp) ‘mengambil ukuran file dari arraycalCrc = CCrc.CRC32(tmp, calCrc) ‘hitung CRC HasilCrc = Hex(calCrc) ‘diubah ke format hexadesimal, karena hasil perhitungan dari class CRC masih berupa numericIf cariDatabase(HasilCrc, pathEXE & “DB.txt”) Then ‘bila fungsi bernilai TRUEMsgBox “Virus ditemukan : ” & namaVirus ‘tampilkan message BoxEnd IfExit Sub erorhandle:If Err.Number <> 32755 Then MsgBox Err.Description ‘error number 32755 dalah bila user mengklik tombol cancel pada saat memilih file