2
Perkenalan dasar kepada tools kita.

.
Introduction

Hai, berhubung cukup banyak yang menanyakan bagaimana menggunakan kedua tools tersebut, dan memang banyak yang enggan belajar ngecrack, gara gara buta sama sekali tentang SoftIce maupun Wdasm, akhirnya gua memberanikan diri untuk membuat tutorial, mengenai perkenalan dasar kedua tools tersebut. Perhatian bahwa ini hanyalah perkenalan, dimana kalau elu pengen tahu lebih jauh lagi, butuh latihan dan latihan ...



The Essay


Halo ketemu lagi di tutor gua yang ke 8 ...

Begini, sekarang gua mau ajarin segala sesuatu tentang tools cracking yang gua dan temen temen di [eKH] make. Peralatan tersebut mencakup :
1. SoftIce 3.x for Windows 95/NT
2. WDasm 8.9

Gua bikin tutorial ini, karena banyak sekali permintaan minta diajarin cara cara mempergunakan tools tersebut.
Oke, tanpa panjang panjang gua akan langsung mulai tutorial gue ...

1. SoftIce 3.x for Windows 95/NT

SoftIce adalah debugger under Windows 95/NT. Apa itu Debugger ? Debugging adalah proses untuk melihat apakah suatu program berjalan dengan baik. Debugger adalah subjeknya, dalam hal ini alatnya. Debugging disini melibatkan kode kode assembly. Karena itu diharap kamu punya sedikit pengetahuan di assembly.

Setelah kamu install SI, kamu dapat menekan CTRL-D di dalam Windows 95 untuk masuk ke layar softice. Kalau kamu ikutin tutorialku tentang cara mensetting softice, maka layar paling kanan atas, adalah layar flag register. Flag register tersebut akan tampak lebih putih/tebal, jika bernilai satu. Kalau kamu belum tahu apa itu flag register, kamu bisa beli/baca buku buku tentang assembly, yang sangat banyak tersedia di web. Bagaimanapun, untuk cracker, flag terpenting adalah zero flag, ditandai dengan huruf Z. Flag ini sering dipergunakan untuk menentukan suatu lompatan bersyarat. Perhatikan kode berikut untuk lebih jelasnya :

cmp eax, ebx
kurangkan eax dengan ebx, tanpa merubah nilai variabel asal. Jika setelah pengurangan eax=0 maka set Zeroflag = 1.
jz [eax+0b]
Jump if Zero. Lompat ke lokasi [eax+0b] jika zeroflag terset, atau dengan kata lain sama dengan satu.

Layar paling atas, disebut layar register. Dimana kamu dapat melihat nilai dari setiap register yang ada di processor x86. Ingat bahwa setiap nilai tersebut dalam hexa, bukan dalam decimal.

Layar kedua dari atas, digunakan jika elu pake perintah watch, yakni untuk melihat isi dari suatu register secara terus menerus.

layar ketiga dari atas, disebut layar memory, yakni layar yang menampilkan isi memory pada suatu lokasi. Format tampilannya dari kiri ke kanan :
[segmen]:[offset] [kode hexa] [kode decimal]

layar berikutnya disebut layar opcodes, dimana kamu dapat melihat perintah perintah dalam bahasa assembly.

layar berikutnya, adalah layar perintah, dimana kamu bisa mengetikkan berbagai perintah softice.

Berikut adalah berbagai perintah yang kita sering pakai dalam ngecrack, harap dicatat bahwa ini belumlah semua perintah SofIce, syntaxnya juga tidak selengkap di documentationnya, karena ini semua yang BIASA gua pake.

- BPX, untuk memasang Breakpoint pada kondisi tertentu,
BPX [Function]
BPX [Segment:Offset]
- ?, untuk menampilkan nilai dari suatu kode hexa.
? [kode]
- BPM, Breakpoint pada pengaksesan memory, bisa [W]rite to memory bisa [R]ead to memory, bisa pula keduanya.
BPM [Segment:Offset] [R][W] (Default = RW)
- D, untuk mendisplay isi suatu daerah pada memory.
D [register/Segment:offset]
- BC, Breakpoint Clear untuk menghapus breakpoint dari memory.
BC [nomor breakpoint/*] (*=semua breakpoint)
- BD, Breakpoint Disable untuk mengdisable secara sementara suatu breakpoint.
BD [nomor breakpoint/*]
- BE, Breakpoint Enable untuk mengenablekan suatu breakpoint yang di BD.
BE [nomor breakpoint/*]
- BL, Breakpoint list, menampilkan semua breakpoint yang sedang dipakai baik active maupun tidak.
- G, Go untuk pergi ke suatu offset.
G [Segment:Offset]
- A, Assembly untuk merubah sementara suatu assembly kode di memory.
A [Segment:Offset] (Secara default adalah di baris yang akan dieksekusi.

Itulah beberapa kode yang biasa gua pake, ini sama sekali ngak lengkap, mo lebih lengkap baca tutorial cracking secara terus menerus, atau lebih bagus lagi baca file PDF dari SoftIce.

Berikut beberapa API function standar yang sering dipakai pada software software secara umum :
- Software dengan tipe serial number :
GetWindowtextA
Getdlgitemtexta
Getdlgitemint

Jika tidak berhasil, bisa dugunakan hmemcpy
- Software dengan tipe time trial :
Getlocaltime
getsystemtime

- Software yang mengakses file .ini pada startup :
readprivateprovilestringa

- Software yang mengakses suatu sembarang file, misalnya untuk membaca "informasi" tertentu :
readfile

- Software dengan nag screen :
Createwindowexa
createwindow
dialogboxparama
messageboxa
dialogbox

- Software yang meload file .dll tertentu misalnya Go!Zilla (advert.dll) :
LoadLibrary


2. WDasm 8.9

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, untuk lebih jelasnya bisa diliat pada contoh - contoh penggunaan WDasm di tutorial lain yang ada di [eKH].

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.

Oke beberapa hal di atas adalah beberapa petunjuk sederhana menggunakan WDasm 8.9.
Moga - moga penjelasan singkat ini bisa memberikan gambaran mengenai penggunaan WDasm dalam meng-krak sebuah program.

Source: flag eRRatum & CHuPaCaBRa

Bookmark and Share



2 komentar :

Anonim mengatakan... [Reply to comment]

gan.... link download wdasm nya dunk.... yg bisa di win 7.
PM gua gan ya, dierzy@gmail.com

Anonim mengatakan... [Reply to comment]

After checking out a few of the blog articles on your web page, I seriously appreciate your technique of blogging.
I added it to my bookmark website list and will
be checking back in the near future. Take a look at my web site too and tell me
your opinion.

My web blog; web hosting for small business 2012

Posting Komentar

Silahkan tinggalkan komentar anda disini...

 
Ujie Caprone | © 2011 Blogger Template by Ujiecaprone.com