Software Cracking : W32Dasm89 |
Tools kedua yang akan di bahas di sini bernama WDasm 8.9, sama seperti SoftICE, program ini berfungsi untuk melakukan debuging pada sebuah program ( baca : meng-krak program ).
Tapi berbeda dari SoftICE yang menggunakan metode "Live Cracking", WDasm menggunakan metode "Dead Listing" dalam meng-krak sebuah program.
Metode "Dead Listing" ini mengharuskan kita meng-krak sebuah program secara mundur.
Sebelum kamu meng-krak s/w apapun dengan WDasm, sangat dianjurkan untuk mencoba
menjalankan s/w tersebut dengan normal. Pada bagian registrasi, coba kamu masukan nama
atau angka sembarang, sesuai permintaan. Seharusnya akan keluar pesan yang mengatakan kalo
kode registrasi kamu tidak cocok, catat pesan itu, karena sangat penting dalam penggunaan
WDasm selanjutnya.
Untuk mulai mengutak - atik sebuah s/w, kamu harus membukanya dari dalam WDasm. Caranya,
pilih menu 'Disassembler', lalu pilih 'Open File to Disassemble'.
Setelah menunggu beberapa saat ( lamanya tergantung besar file yang kamu load ), di layar
akan muncul listing program s/w target tersebut, dalam bahasa assembly tentunya.
Sebelum kamu melangkah lebih jauh, sebaiknya kamu Save dulu supaya nantinya kalo kamu mau
memanggil listing s/w itu kembali, kamu ngak perlu mengulangi proses awal yang
menghabiskan waktu tadi.
Untuk menyimpannya, pilih menu 'Disassembler' dan pilih 'Save Disassembly Text File and
Create Project File'.
Selanjutnya untuk membuka listing s/w tersebut, kamu tinggal memilih menu 'Project' dan
pilih 'Open Project File'.
( Catatan : Perintah save di atas menciptakan file *.asf yang merupakan file dalam format
teks biasa dan bisa dibuka dengan teks editor lain. File *.asf ini berukuran jauh lebih
besar dari file yang kamu disassembly oleh karena itu perhatikan kapasitas hard disk kamu
Sebagai gambaran, sebuah file *.exe yang besarnya 1 MB bisa menghasilkan file *.asf
sebesar
12 MB )
Setelah sebuah file berhasil di disassembly, akan tampil listing perintah assembly.
Format tampilan tersebut adalah :
- Pada baris - baris pertama ditampilkan keterangan mengenai nama file, code offset, code
size, data offset dan data size.
- Setelah itu adalah keterangan mengenai menu, fungsi dan modul yang diimport.
- Pada bagian berikutnya adalah "Assembly Code Listing".
Contoh Assembly Code Listing :
1 * Referenced by a (U)nconditional or (C)onditional Jump at
Address:
2 |:00401022(C)
3 |
4 :00401029 8B4DF4 mov ecx, dword ptr [ebp-0C]
A
B
C
Keterangan :
- Baris 1 dan Baris 2 :
Menandakan bahwa kumpulan listing di bawah kalimat tersebut adalah
perintah - perintah yang dipanggil oleh
suatu perintah yang ada pada lokasi 00401022 ( lihat baris 2 )
- Baris 4 :
Terbagi dalam 3 kolom, kolom A, kolom B dan kolom C
Kolom A : Kode Lokasi
Kolom B : Kode mesin dari perintah Assembly di kolom C
Kolom C : Perintah Assembly
Untuk berpindah dari suatu lokasi ke lokasi tertentu lainnya, gunakan perintah "Goto
Code Location" di bawah menu "Goto".
Kamu ngak perlu bingung dengan kode - kode pada kolom B, kode tersebut sama dengan
perintah assembly pada kolom C tapi untuk berhasil meng-krak sebuah s/w kamu harus
mengetahui beberapa kode penting yang berkaitan dengan perintah - perintah jump.
Kode - kode tersebut antara lain :
- 74xx atau 0F84xxxxxxxx = JE ( Jump If Equal )
- 75xx atau 0F85xxxxxxxx = JNE ( Jump If Not Equal )
- 76xx atau 0F86xxxxxxxx = JBE ( Jump If Below or Equal )
- 77xx atau 0F87xxxxxxxx = JA ( Jump If Above )
- 90
= NOP
Jika kamu ingin mengganti sebuah perintah JE menjadi JNE, kamu harus merubah kodenya dari
74xx menjadi 75xx seperti yang tertera diatas. Tentu perubahan itu ngak bisa dilakukan di
dalam WDasm, kamu harus pake Hex Editor untuk ngerubahnya.
Pada setiap program shareware biasanya akan keluar pesan seperti "Invalid
Registration" atau pesan - pesan lainnya yang menandakan nomer registrasi yang kamu
masukin salah.
Kamu bisa mencari kumpulan perintah yang menghasilkan pesan tersebut dengan menggunakan
"String Data References" yang ada dibawah menu "Refs".
Perintah itu akan membuka window baru berisi daftar string ( kalimat ) yang muncul pada
s/w target, kamu bisa memilih salah satu string tersebut dengan mengklik-nya 2 kali.
Kamu akan langsung diarahkan bagian program yang menghasilkan string tersebut seperti
contoh di bawah ini :
* Possible StringData Ref from Data Obj ->"Invalid Registration"
:0040DE0F BA4F2A4900 mov edx, 00492A4F --> kamu akan langsung diarahkan ke baris ini
:0040DE14 8D45F4 lea eax, dword ptr [ebp-0C]
:0040DE17 E844470200 call 00432560
:....dan seterusnya....
Untuk mengetrace program secara bertahap, kamu bisa menggunakan tombol Anak Panah ke atas
atau ke bawah, jika menemukan perintah Jump atau Call tertentu, kamu bisa menekan tombol
Anak Panah ke kanan untuk mengikuti perintah Jump atau Call tersebut dan untuk kembali ke
posisi semula, gunakan tombol Ctrl+Anak Panah ke kiri.
|