DLL Show 4.0 |
Softice 3.24 |
oleh
BlackZ
Pengenalan Program |
Ini yang saya kutip dari helpnya program ini :
"DLL Show for Windows
95 is a small utility that displays a list of all tasks and
processes currently running on your MS Windows 95 system. DLL
Show is fully Y2K compliant and will work with MS Windows 98
systems as well."
Tutorial ini melakukan pencarian S/N yang tepat sesuai
dengan nama dan organization yang dimasukkan di dalam kotak
registrasi. Software ini merupakan shareware 30 hari dan ada nag
screen yang muncul saat pertama kali program ini dijalankan.
Kalau sudah diregistrasi nag screen tersebut dapat dihilangkan.
Metode perhitungan serial number-nya berbeda dengan versi
sebelumnya yang hanya memiliki satu nama, organisasi dan serial
number. Kali ini pembuat program ini mencoba memproteksi dengan
megolah nama dan organisasi dari user.
Essay |
Jalankan program Cascader 1.02
dan klik tombol Regiser maka kamu akan di minta mengisi nama dan
kode registrasi. Coba tulis dulu dengan :
User Name : BlackZ Organization : Freelance Registration Code : 123456
Sekarang kita jalankan softice (Ctrl-D) lalu ketik semua
breakpoint yang memungkinkan. Keluar lagi dari softice (Ctrl-D)
dan klik tombol OK dan kita akan masuk lagi ke layar softice. Dan
ternyata program menggunakan 'getdlgitemtexta'. Pertama-tama saya
tekan F12 sampai keluar dari layar softice (sebanyak 4 kali) lalu
saya ulangi lagi (tekan F12 dikurangi satu) sebanyak 3 kali dan
kamu akan menemui rutin seperti ini :
:0040F1F1 CALL EBP :0040F1F3 LEA EAX, [ESP+10] :0040F1F7 PUSH EAX :0040F1F8 CALL 004175A0 ;konversi serial kita ke hexa :0040F1FD ADD ESP, 04 :0040F200 MOV EBP, EAX ;ebp = serial kita :0040F202 PUSH ESI :0040F203 CALL 00416320 ;mengolah nama kita dan simpan di eax :0040F208 ADD ESP, 04 :0040F20B CMP EAX, 0119A792 ;bandingkan dengan 119A792h :0040F210 JNZ 0040F22A ;lompat kalau salah :0040F212 PUSH 0042426C :0040F217 MOV EBP, [KERNEL32!lstrcpy] :0040F21D PUSH ESI :0040F21E CALL EBP :0040F220 PUSH 00424254 :0040F225 PUSH EBX :0040F226 CALL EBP :0040F228 JMP 0040F231 :0040F22A CMP EAX, 0D5FCE3C ;bandingkan dengan D5FCE3Ch :0040F22F JNZ 0040F23D :0040F231 PUSH EBX ;organisasi :0040F232 PUSH ESI ;nama kita :0040F233 CALL 00415170 ;rutin yg menggenerate serial asli :0040F238 ADD ESP, 08 :0040F23B MOV EBP, EAX :0040F23D PUSH EBX ;organisasi :0040F23E PUSH ESI ;nama kita :0040F23F CALL 00415170 ;rutin yg menggenerate serial asli :0040F244 ADD ESP, 08 :0040F247 CMP EAX, EBP ;bandingkan serial asli dengan palsu :0040F249 JZ 0040F269 ;eax = serial asli dalam hexa
nah kemudian kita coba masuk ke rutin CALL 00415170 maka kamu akan menemui rutin ini :
:00415170 MOV EAX,[ESP+04] ;nama kita :00415174 PUSH ESI :00415175 MOV ESI,[00423954] ;konstanta DB95DB95h :0041517B PUSH EAX :0041517C OR ESI, 00000378 ;or-kan konstanta di atas :00415182 CALL 00416320 ;rutin pengolah nama :00415187 ADD ESP, 04 :0041518A ADD ESI, EAX :0041518C MOV EAX, [ESP+0C] :00415190 PUSH EAX :00415191 CALL 00416320 ;rutin pengolah freelance :00415196 ADD ESP, 04 :00415199 ADD EAX, ESI ;eax = serial asli dalam hexa :0041519B POP ESI :0041519C RET
Dari rutin di atas ada dua CALL 00416320 di mana yang pertama mengolah nama kita dan di simpan di eax, lalu ditambahkan dengan konstanta yang tersimpan di esi dan disimpan hasilnya di esi. Rutin call yang kedua mengolah organisasi dan hasilnya di simpan di eax, lalu nilai yang ada di esi tadi ditambahkan ke eax dan itulah serial aslinya dalam hexadesimal. Sekarang kita lihat rumusnya dalam rutin CALL 00416320 dan kamu akan menemui rutin seperti ini :
:00416320 PUSH EBX :00416321 PUSH ESI :00416322 MOV ESI,[ESP+0C] :00416326 PUSH EDI :00416327 PUSH EBP :00416328 XOR EDI, EDI :0041632A PUSH ESI :0041632B CALL [KERNEL32!lstrlen] ;eax = panjang nama atau organisasi :00416331 TEST ESI, ESI :00416333 JZ 00416367 :00416335 TEST EAX, EAX :00416337 JZ 00416367 :00416339 MOV ECX, 00000000 ;nolkan ecx :0041633E JLE 00416367 ;rumus dimulai :00416340 MOVSX EBX, BYTE PTR [ECX+EAX+00425C78];konstanta string pertama :00416348 MOVSX EBP, BYTE PTR [ECX+ESI] ;karakter nama atau organisasi :0041634C LEA EDX, [ECX+01] :0041634F IMUL EBX, EBP :00416352 MOVSX ECX, BYTE PTR [ECX+00425CB0] ;konstanta string kedua :00416359 IMUL EBX, ECX :0041635C IMUL EBX, EDX :0041635F ADD EDI, EBX :00416361 MOV ECX, EDX :00416363 CMP EAX, EDX ;apakah edx = panjang nama atau organisasi :00416365 JG 00416340 ;lompat kalau ya dan rumus selesai :00416367 MOV ECX, EDX :00416369 POP EBP :0041636A POP EDI :0041636B POP ESI :0041636C POP EBX :0041636D RET
Nah di atas merupakan rutin pembentuk serial asli dan ada dua konstanta string yang pada offset 00425C78 dan 00425CB0 masing-masing konstanta berisi 54 karakter.
K R A K |
Keygenerator program ini silahkan kamu buat, tidak sulit kok dan kalau berhasil atau menemui kesulitan silahkan email saya disertai listing program keygeneratornya atau masalah kamu dalam membuat keygenz tersebut.
Ada cara lain untuk meregistrasi program ini saat kita
mendebug bisa dilakukan dengan cara seperti ini : ketika kamu
tekan tombol ok dan mucul layar softice saat mau mengkrak program
ini, lalu tekan tombol F12 sebanyak 3 kali dan kamu tekan F10
sampai ke offset 0040F22F dan ketik 'a' dan tekan enter, lalu
ketik JZ 0040F23D dan rutin pada offset tersebut yang tadinya JNZ
0040F23D akan berubah. Lalu tekan CTRL-D untuk keluar dari layar
softice dan kamu sudah teregristrasi. Mudah bukan!
Catatan |
Versi sebelumnya pembuat program ini membuat proteksi jenis hard code, dan rupanya mereka sekarang mulai menyadari pentingnya proteksi yang lebih baik. Tetapi rutin pembentuk serial numbernya masih dapat dilihat dengan mudah.
© Juli1999