Tutorial Cracking : Visual Basic v5 - 6
|
Target : Program Visual Basic v5 -6
Tool : SoftIce v4.05, Hex Workshop v4.10
Untuk mengetahui sebuah program dibuat oleh Visual Basic versi 5 atau 6, kita
harus melihat kedalam programnya. Kita gunakan aja Hex Workshop. Klik kanan file
.exe dan pilih Hex Edit. Pasa Offset (+/-) 238(hex) atau 250 (hex) kamu akan menemukan
MSVBVM50.DLL atau MSVBVM60.DLL.
OK, sekarang kita tahu DLL mana yang sedang digunakan oleh program. Lakukan
setting ulang pada Softice.
Buka winice.dat di direktori softice dengan notepad dan cari baris:
; ***** Examples of export symbols that can be included *****
; Change the path to the appropriate drive and directory
;exp=c:\windows\system\msvbvm60.dll
;exp=c:\windows\system\msvbvm50.dll
Nonaktifkan baris tersebut berdasarkan .DLL yang digunakan oleh program dengan menggunakan
tanda ; (Semicolon).
Beri tambahan memori untuk softice dengan menambah baris SYM=4096
Simpan perubahan tersebut dan restart ulang komputermu!.
Kita akan mencoba untuk mendapatkan Serial Number (=S/N)sebab 90% dari semua
kasus VB program memakai __VBSTRCOMP untuk membandingkan input string kita dengan S/N!.
Jalankan program yang mau dicrack trus tekan (CTRL+D) dan ketikkan perintah breakpoint :
bpx __vbastrcomp.
Untuk memastikan langkah kita, ketikkan BL * kamu akan melihat ini :
bpx msvbvm60!__vbastrcomp or bpx msvbvm50!__vbastrcomp
Jika kamu melihat seperti bpx 017F:23878865 lakukan setting ulang pada softice seperti
pada langkah pertama tadi.
Masukkan nama : (Magic Mike) dan serial numbernya (12121212) terus klik register
SoftIce akan menuju ke:
:66060A80
:66060A85 :66060A8B :66060A90 :66060A94 :66060A98
:66060A9C
:653C10E6 :653C10E7 :653C10E9 :653C10EA
:653C10EB :653C10EC :653C10EF :653C10F0 :653C10F2
:653C10F4 :653C10F7 :653C10FA :653C10FC :653C10FE
:653C1100 :653C1103 :653C1106 :653C1108 :653C110A
:653C110D :653C110F :653C1111 :653C1113 :653C1115
:653C1117 :653C1119 :653C111C :653C111F
:653C1122
:653C1125
:653C1127 :653C1128 :653C112A |
cmp dword ptr
[esp+04], 00000002 je 6608FB24 push 00030001 push [esp+08]
push [esp+10] push [esp+18] call dword ptr [66110010]
; Lakukan pelacakan pada Call ini
push ebp mov ebp, esp push ecx push ebx push
esi mov esi, dword ptr [ebp+08] push edi test esi, esi jne
653C1140 and dword ptr [ebp-04], esi mov ecx, dword ptr
[ebp+0C] test ecx, ecx jne 653C1148 xor ebx, ebx cmp dword ptr
[ebp-04], ebx mov edx, dword ptr [ebp-04] jb 653C110A mov edx,
ebx mov eax, dword ptr [ebp+10] test eax, eax jne
653C116C test edx, edx je 653C1175 mov eax, edx shr eax,
1 mov dword ptr [ebp+10], eax mov edi, dword ptr [ebp+0C]
; EDI berisi s/n mov esi, dword
ptr [ebp+08] ;
ESI dimasukin STRING mov ecx, dword ptr [ebp+10] xor eax,
eax repz cmpsw je 653C1131 |
Pada perintah :653C1122 kita dapat melihat S/N
Kedua string adalah UNICODE yang berarti tiap karakter diikuti oleh nilai hex 00
contoh. 123 = 31,00,32,00,33 (hex)
D ESI (serial yang kita masukkan - jika tidak tampil masukkan wd 5!)
D EDI (S/N yang asli)
Catat serial number yang asli, gimana......???
|