|
Tutorial Cracking : X-Ripper v3.4
|
Target : X-Ripper v3.4
Tool : SoftIce v4.05, W32Dasm v8.93
Seperti biasa, buka X-Ripper dan click pada tombol Register. Ketikkan password 12345 dan click OK. Boom! Kotak jelek dengan pesan "The registration information...." muncul. Nah, inget baik-baik pesen ini.
Trus, buka W32DAsm kemudian disassembly X-Ripper. Setelah selesai, cari pesen tadi dengan Seach->Find Text. Kamu akan melihat tampilan seperti ini:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004053A4(C) <- Ingat alamat ini.
| * Possible StringData Ref from Data Obj ->"The registration information you " ->"have entered is invalid. Please "
->"make sure that you type your registration "
->"information exactly as it appears, "
->"including upper/lower case."
| :004053BC 68FC7E4200 push 00427EFC
Seperti kita lihat, program memanggil instruksi diatas dari alamat 004053A4. Jadi, langsung aja kita lihat pada alamat tersebut. Teken Shift+F12 dan masukkan alamat tadi. Kamu akan melihat tampilan seperti ini:
:00405396 E845000000 call 004053E0 <-- Menarik...
:0040539B 83C404 add esp, 00000004
:0040539E 85C0 test eax, eax <-- apakah eax=0?
:004053A0 6A00 push 00000000
:004053A2 6A00 push 00000000
:004053A4 7416 je 004053BC <-- lompat ke kotak jelek kalo ya
* Possible StringData Ref from Data Obj ->"Thank you for registering Sonetics "
->"X-Ripper!" <-- Hey!
| :004053A6 68A87F4200 push 00427FA8
:004053AB 8BCF mov ecx, edi
:004053AD E8D11C0100 call 00417083 <-- Panggil kotak registrasi sukses
Nah, kita bisa lihat kalo pada alamat 00405396 program membandingkan password palsu kita dengan yang asli, soalnya setelah call program mengetest eax dan langsung lompat ke kotak jelek (ingat khan, yang manggil kotak jelek itu cuman satu, yaitu alamat 004053A4 aja). Jadi jelas kalo call ini penting. Eh, kita bisa aja langsung patch program ini dengan mengganti je pada alamat 004053A4 dengan jne kan? Yah, tapi kita kan mau lihat passwordnya apaan? Ya nggak?
OK. Sekarang kita lihat callnya. Teken Shift+F12 dan masukkan 004053E0.
* Referenced by a CALL at Addresses:
|:004034CA , :00405396
| :004053E0 8B442404 mov eax, dword ptr [esp+04] <-- eax=password palsu kita
:004053E4 85C0 test eax, eax
:004053E6 7418 je 00405400
:004053E8 68201A4200 push 00421A20 <-- ??? Pasti password asli
:004053ED 50 push eax
:004053EE E844220000 call 00407637 <-- bandingkan passwordnya
:004053F3 83C408 add esp, 00000008
:004053F6 85C0 test eax, eax <-- apakah eax=0?
:004053F8 7506 jne 00405400 <-- lompat kalo ya (nggak sama passwordnya)
:004053FA B801000000 mov eax, 00000001 <-- Anak baik (password benar)
:004053FF C3 ret <-- Kembali
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:004053E6(C), :004053F8(C)
| :00405400 33C0 xor eax, eax <-- Anak jelek
:00405402 C3 ret <-- Kembali
Karena gue nggak tau ada apaan di alamat 00421A20, jadi gue putuskan gunakan SoftICE. Inget-inget alamat 004053E8
Pertama, jalanin X-Ripper lagi, trus masukin password palsunya. Jangan click OK dulu! Teken Ctrl+D untuk masuk ke SoftICE, trus ketik bpx hmemcpy (gue make bpx hmemcpy, karena ada masalah dengan MemTurbo gue). Anyway, setelah itu, teken F5 untuk kembali ke Windows. Sekarang click OK. Boom! Kamu kembali ke SoftICE. Tapi kamu ada di instruksi yang salah nich, jadi teken F11 satu kali, trus trace pake F12 sampe kamu ngeliat tampilan pada bagian bawah SoftICE jadi XRIPPER!.text.... lagi. Tampilan akan jadi seperti ini:
* Reference To: USER32.GetWindowTextA, Ord:015Eh <-- *Dari W32DAsm
| :0041C566 FF1550494400 Call dword ptr [00444950]
:0041C56C 8B4D10 mov ecx, dword ptr [ebp+10]
:0041C56F 6AFF push FFFFFFFF
:0041C571 E850D0FFFF call 004195C6
:0041C576 EB0B jmp 0041C583
Nah, setelah itu, ketik bc * untuk menghapus breakpoint. Sekarang ketik bpx 004053E8 trus teken F5. Boom! kamu berada pada alamat 004053E8 sekarang.
:004053E8 68201A4200 push 00421A20 <-- kamu disini
:004053ED 50 push eax
:004053EE E844220000 call 00407637 <-- bandingkan passwordnya
Sekarang teken F10 satu kali, pasti sekarang pointer berada pada alamat 004053ED. Untuk melihat isi dari 00421A20, ketik d 00421A20 Kamu akan melihat kode XJKD392017 Apa itu? Pasti password yang bener. Sekarang bc * dan teken F5. Masukkan passwordnya yang bener, trus click OK. "Thank you for registering..." Hore! Berhasil nich...
|