A Day In The Life 1.5 |
Wdasm 8.9 |
oleh
BlackZ
Pengenalan Program |
A Day in the Life, salah satu
software diari multimedia yang dapat merekam data personal anda.
Anda dapat menulis segala pikiran anda ke dalam diari ini,
mendukung penggunaan gambar maupun suara. Setiap pengguna dapat
men-setting konfigurasi-nya sendiri dan untuk perlindungan anda
dapat menggunakan proteksi password yang dapat mengunci data
anda.
Tutorial ini melakukan pencarian S/N yang tepat agar 'nag message' tidak muncul pada saat memulai program.
Essay |
Sebelum memulai kita tes dulu
bagaimana tingkah laku program ini dalam pengisian 'register
code' nya. Jalankan program A Day in The Life 1.5 lalu pilih menu
Help dan klik menu Register... dan anda akan di minta mengisi
nama dan kode registrasi. Coba dulu dengan :
Name : BlackZ
Registration Code : 123456
akan muncul pesan error yang bertuliskan "Invalid registration code!" ingat pesan itu.
Sekarang kita jalankan Wdasm, lalu pilih file ADITL.EXE untuk
di disassemble. Lalu kita cari kata-kata pesan error tadi, maka
anda akan mendapatkannya pada rutin bagian ini :
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:0049C736(C), :0049C758(C)| :0049C768 6A00 push 00000000 :0049C76A 668B0DECC74900 mov cx, word ptr [0049C7EC] :0049C771 B201 mov dl, 01 * Possible StringData Ref from Code Obj ->"Invalid registration code!" | :0049C773 B8F8C74900 mov eax, 0049C7F8 :0049C778 E8631FFAFF call 0043E6E0 :0049C77D 8B45FC mov eax, dword ptr [ebp-04] :0049C780 8B8004020000 mov eax, dword ptr [eax+00000204] :0049C786 8B10 mov edx, dword ptr [eax] :0049C788 FF9294000000 call dword ptr [edx+00000094] :0049C78E 8B45FC mov eax, dword ptr [ebp-04] :0049C791 8B8008020000 mov eax, dword ptr [eax+00000208] :0049C797 8B10 mov edx, dword ptr [eax] :0049C799 FF9294000000 call dword ptr [edx+00000094]
kita lihat bahwa ada dua alamat yang akan memanggil rutin ini yaitu 0049C736 dan 0049C758... nah kita menuju kedua alamat itu dan ada pada rutin ini :
* Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0049C708(C) | :0049C70D 8D55F4 lea edx, dword ptr [ebp-0C] * Possible StringData Ref from Code Obj ->"ClaDiTL" | :0049C710 B8E4C74900 mov eax, 0049C7E4 :0049C715 E84A78F6FF call 00403F64 :0049C71A 8D55EC lea edx, dword ptr [ebp-14] :0049C71D 8B45FC mov eax, dword ptr [ebp-04] :0049C720 8B8008020000 mov eax, dword ptr [eax+00000208] :0049C726 E80934F8FF call 0041FB34 :0049C72B 8B55EC mov edx, dword ptr [ebp-14] ; serial kita (palsu) :0049C72E 8B45F4 mov eax, dword ptr [ebp-0C] ; serial asli :0049C731 E8B276F6FF call 00403DE8 ; pembanding serial asli palsu. :0049C736 7530 jne 0049C768 ; lompat kalau tidak sama :0049C738 8D55EC lea edx, dword ptr [ebp-14] :0049C73B 8B45FC mov eax, dword ptr [ebp-04] :0049C73E 8B8008020000 mov eax, dword ptr [eax+00000208] :0049C744 E8EB33F8FF call 0041FB34 :0049C749 8B55EC mov edx, dword ptr [ebp-14] * Possible StringData Ref from Code Obj ->"ClaDiTL" | :0049C74C B8E4C74900 mov eax, 0049C7E4 :0049C751 E86A78F6FF call 00403FC0 :0049C756 85C0 test eax, eax :0049C758 7E0E jle 0049C768 :0049C75A A1D0964A00 mov eax, dword ptr [004A96D0] :0049C75F 8B00 mov eax, dword ptr [eax] :0049C761 E8929C0000 call 004A63F8 :0049C766 EB37 jmp 0049C79F
kita trace sampai rutin call 00403DE8, lalu lihat isi register
edx dan eax, ternyata register edx menyimpan serial kita dan
register eax berisi susunan string. Kalau kita lihat pada rutin
di atas terdapat strin aneh "ClaDiTL", dan jangan
terkecoh karena bila kita masukkan string itu registrasi belum
berhasil. Nah kita coba masuk ke rutin call 00403DE8 (tekan F8),
maka kita akan dapatkan rutin seperti ini :
:00403DE8 53 push ebx :00403DE9 56 push esi :00403DEA 57 push edi :00403DEB 89C6 mov esi, eax ;serial asli :00403DED 89D7 mov edi, edx ;serial kita :00403DEF 39D0 cmp eax, edx ;bandingkan serial asli dan serial kita :00403DF1 0F848F000000 je 00403E86 :00403DF7 85F6 test esi, esi :00403DF9 7468 je 00403E63 :00403DFB 85FF test edi, edi :00403DFD 746B je 00403E6A :00403DFF 8B46FC mov eax, dword ptr [esi-04] :00403E02 8B57FC mov edx, dword ptr [edi-04] :00403E05 29D0 sub eax, edx :00403E07 7702 ja 00403E0B :00403E09 01C2 add edx, eax
yah dengan melihat isi register eax dan edx kita sudah mendapatkan serial number yang asli, selesai !!!
K R A K |
Program ini hanya memliki satu serial number dan tidak memperdulikan nama yang dimasukkan. Nah ternyata string aneh yang kita lihat pada rutin di atas yaitu "ClaDiTL" merupakan bagian serial number keseluruhan. Rupanya program memiliki dua string B-245263470B dan ClaDiTL yang kemudian digabungkan. Apa maksudnya ya ? mau mengecoh ?
Ini yang didapatkan dari proses pencarian di atas :
Name : <terserah>Registration Code : B-245ClaDiTL263470B
Catatan |
Nggak ada nih !
© Juni1999