Sunday, December 2, 2007

Solusi untuk Beginner

[Tutorial] Solusi untuk Beginner

Solusi untuk krack file elf_cm1.exe
===================================

1. Jalankan file elf_cm1.exe secara normal dan klik "check!"
2. Catat error message yang muncul = "no, not really."
3. Exit elf_cm1.exe, buka Olly dan load file elf_cm1.exe.
4. Untuk mencari serial, kita menggunakan langkah yang berbeda dengan teknik patching dengan melakukan
tracing satu per satu terhadap algoritma yang dibuat program, maka dari itu kita akan set breakpoint pada saat
user meng-klik "check!".
Terlebih dahulu anda harus mengetahui dasar2 WinAPI(Application Programmable Interface), ok akan kita
pahami dengan learning by doing. Download dulu help untuk winAPI di
Code:
http://users.ugent.be/~fschoonj/modula2/win32hlp/win32.zip
extract dan tambahkan help file tersebut pada olly dengan cara : pilih menu Help > select API help file dan pilih
file win32.hlp. Cukup sampai disini dan kita lanjutkan find the serial...
5. Pada main window, klik kanan > search for > All intermodular calls. Nha, disitu ada beberapa fungsi API,
kita akan mencari fungsi API apakah yang digunakan untuk mengambil inputan pada window dialog? Adalah
GetDlgItemTextA atau GetDlgItem atau GetDlgItemText atau mirip2 seperti itu deh pokoknya hehe ....
6. Dobel klik pada fungsi GetDlgItemTextA maka akan kembali ke window utama. Set breakpoint(F2) pada
baris
Code:
004012C8 . E8 77010000 CALL ;
\GetDlgItemTextA
Run Program(F9), program elf_cm1.exe akan dijalankan dan masukkan sembarang serial, untuk contoh disini
misalnya : 123, klik "check!" maka proses akan pause sampai pada tanda breakpoint tadi. Untuk mengetahui
lebih detail tentang GetDlgItemTextA, klik kanan pada baris itu dan pilih help on symbolic name (Ctrl+F11).
Sekarang dah ngerti kan kenapa kita membutuhkan reference buat WinAPI?
7. Sekarang perhatikan pada keterangan Return Value pada help WinAPI
Code:
Return Value
If the function succeeds, the return value specifies the number of characters copied to
the buffer, not including the terminating null character.
If the function fails, the return value is zero.
Artinya, jika berhasil mendapatkan serial yang diinputkan user, maka return value akan bernilai jumlah karakter
yang akan disimpan di EAX. Mengapa disimpan di EAX? karena EAX digunakan untuk
Accumulator/perhitungan. Gak percaya? pencet F8 dan Lihat window register pada sebelah kanan, maka akan
bernilai 00000003 (sesuai dengan jumlah karakter yg diinputkan).
8. Pencet F8 5x atau sampe ketemu baris
Code:
004013E9 > \83F8 05 CMP EAX,5
Apa maksudnya? pada baris itu akan membandingkan nilai register EAX yang bernilai 3 dengan 5, yang berarti
bahwa karakter yang dimaksudkan harus berjumlah 5.

9. Set breakpoint pada baris itu dan hapus breakpoint sebelumnya karena kita udah gak pake lagi. Restart
program(F2) dan F9 untuk run program, isi dengan serial 12345.
10. Sebelum pencet F8, perhatikan nilai register Z pada window register sebelah kanan yaitu bernilai 0,
sekarang pencet F8 dan nilai register akan bernilai 1. itu adalah karena fungsi CMP EAX, 5 dan fungsi JNZ
(Jump is not Zero) pada baris selanjutnya adalah membandingkan register Z apakah bernilai 0 atau 1.
Jika Z bernilai 0, maka akan jump ke VA 0040132C, tetapi jika tidak, maka lanjutkan memproses baris
selanjutnya.
11. Tekan F8 terus menerus sambil melihat window register sebelah kanan, perhatikan pada register ESI dan
EDI. ESI akan bernilai serial yang dimasukkan dan akan dibandingkan dengan nilai EDI yang berasal dari
program, stop jika ketemu baris
Code:
004012E9 > /A7 CMPS DWORD PTR DS:[ESI],DWORD PTR ES:[EDI]
disitu akan dibandingkan string ESI dan EDI. CMPS akan merubah nilai register Z menjadi 0 jika tidak sama
atau 1 jika sama.
Dari sini sebenernya sudah bisa ditebak jika serial tidak sama dengan "fubar" maka akan "Incorrect". OK
sekarang kita coba dengan terlebih dahulu set breakpoint pada baris CMPS tadi dan hapus breakpoint
sebelumnya ...
12. Pencet F2, F9 masukkan "fubar" dan pencet "check!", maka akan berhenti pada breakpoint dan pencet F9
lagi. Apa yang terjadi?
Uppppsssssss... ternyata masih salah dengan error message yang berbeda... hmm berarti kracking blm berhenti
sampe disini, sabar...sabar hehe...
13. Pencet lagi F2, F9 masukkan sembarang serial tetapi harus 5 karakter. Pencet F8 sehingga perintah CMPS
dieksekusi, sampai pada tahap ini sebenernya anda dapat langsung merubah nilai Z sehingga baris JNZ tidak
akan dieksekusi tetapi hanya bersifat sementara, caranya gimana? arahkan mouse pada register Z dan dobel
klik, maka nilai Z akan berubah menjadi 1.
14. Pencet F8 terus menerus sambil memperhatikan register ESI dan EDI karena akan ada proses CMPS lagiKetemu serial yang lain kan? ok kita coba masukin serial "word?" tanpa petik dan lihat hasilnya. Kalau masih salah juga berarti ya harus debug lebih lama lagi hehe...That's all folksDari penjelasan tutorial diatas sengaja saya buat panjang agar mudah dimengerti disamping karena saya
termasuk beginner ya otomatis seperti itu yang bisa saya jelaskan
Dan perlu diingat bahwa ini bukanlah satu2nya cara untuk mengetahui serial untuk elf_cm1.exe. Apabila ada
solusi yang lebih tepat dan cepat, silakan di posting disini juga.

0 Comments:

 

© 2007 Computer and software: Solusi untuk Beginner | Design by Template Unik



---[[ Skip to top ]]---