Tulisan Dasar Cracking
Selamat Datang................. Cracker..........
Tutorial Cracking :

JPEG Optimizer v3.01

 Target  : JPEG Optimizer 3.01
 Tools   : SoftIce3.x

Jalankan JPEG, klik Register, ketikkan sembarang angka katakanlah 123454323 , lalu sebelum klik OK, pasang bpx di SI di hmemcpy. Kembali ke JPEG, tekan Register, kamu akan terlempar ke SI. Kamu berada di kernel Windows 95, tekan F12 beberapa kali supaya masuk ke bodi program, di komputer gua gua teken 7 kali.

Nah kamu, sekarang sudah sampai di badan program, tapi di akhir function, terbukti dari adanya ret yang sangat dekat, ini jelas tidak berguna bagi kita (jangan khawatir, semua software yang diproteksi dengan serial, kalau diattack via hmemcpy pasti akan sama saja), tekan F12 beberapa kali lagi, sampai masuk ke badan program yang ngak dekat dengan RET :

:00428BDD 66C746100800 MOV WORD PTR [ESI+10],0008
:00428BE3 66C746102C00 MOV WORD PTR [ESI+10],002C
:00428BE9 33C9 XOR ECX,ECX
:00428BEB 894DF4 MOV [EBP-0C],ECX
:00428BEE 8D55F4 LEA EDX,[EBP-0C]
:00428BF1 FF461C INC DWORD PTR [ESI+1C]
:00428BF4 8B83C8010000 MOV EAX,[EBX+000001C8]
:00428BFA E8D98A0100 CALL 004416D8
:00428BFF 8D45F4 LEA EAX,[EBP-0C] -->> Reg Code
:00428C02 E823FA0100 CALL 0044862A -->> Length()
:00428C07 83F806 CMP EAX,06 -->> 6 ?
:00428C0A 751B JNZ 00428C27 -->> bad cracker !
:00428C0C 837DF800 CMP DWORD PTR [EBP-08],00 -->> sudah diisi ?
:00428C10 7405 JZ 00428C17 -->> bad cracker !
:00428C12 8B55F8 MOV EDX,[EBP-08]
:00428C15 EB05 JMP 00428C1C
:00428C17 BAFFDF4700 MOV EDX,0047DFFF
:00428C1C 52 PUSH EDX -->> Reg Code !
:00428C1D E8A60C0000 CALL 004298C8 -->> Check()
:00428C22 59 POP ECX
:00428C23 84C0 TEST AL,AL -->> good/bad guy flag
:00428C25 7504 JNZ 00428C2B -->> Good/Bad guy jump
:00428C27 33C0 XOR EAX,EAX
:00428C29 EB05 JMP 00428C30
:00428C2B B801000000 MOV EAX,00000001
:00428C30 50 PUSH EAX
:00428C31 FF4E1C DEC DWORD PTR [ESI+1C]
:00428C34 8D45F4 LEA EAX,[EBP-0C]
:00428C37 BA02000000 MOV EDX,00000002

Secara umum program akan mengecek apakah panjang regkey tadi adalah 6 karakter (tanpa diitung dengan /0, kalau kamu seorang C programmer) , kalau tidak berarti key tadi salah. Sekarang mungkin kamu nanya, kok gua tahu kalau jump di bawah length() adalah bad jump ? Ini sudah umum, buat apa program mengecek panjang=6 ? dan dibawahnya ada conditional jump, sudah pasti conditional jump itu adalah bad jump. Kecuali dalam beberapa kasus (Opera 3.5) yang mengecek bahwa serial tidak boleh sama dengan 6 (sangat amat langka).

Program selanjutnya akan mengecek apakah key tersebut valid, memanggil function pengecek, dan membawa tanda apakah key kita valid atau tidak.

Sekarang kita butuh masuk ke function tersebut :Check()

:004298C8 55 PUSH EBP
:004298C9 8BEC MOV EBP,ESP
:004298CB 83C4F8 ADD ESP,-08
:004298CE 53 PUSH EBX
:004298CF 8B4508 MOV EAX,[EBP+08]
:004298D2 8D5DF8 LEA EBX,[EBP-08]
:004298D5 8A10 MOV DL,[EAX]
:004298D7 8813 MOV [EBX],DL
:004298D9 8A4801 MOV CL,[EAX+01]
:004298DC 884B01 MOV [EBX+01],CL
:004298DF 8A5002 MOV DL,[EAX+02]
:004298E2 885302 MOV [EBX+02],DL
:004298E5 8A4803 MOV CL,[EAX+03]
:004298E8 884B03 MOV [EBX+03],CL
:004298EB 8A5004 MOV DL,[EAX+04]
:004298EE 885304 MOV [EBX+04],DL
:004298F1 8A4005 MOV AL,[EAX+05]
:004298F4 884305 MOV [EBX+05],AL
:004298F7 0FBE0B MOVSX ECX,BYTE PTR [EBX] -->> 1st char of regcode
:004298FA 51 PUSH ECX
:004298FB E8B4520400 CALL 0046EBB4
:00429900 59 POP ECX
:00429901 83F841 CMP EAX,41 -->> 41h=A ?
:00429904 7547 JNZ 0042994D -->> Bad cracker jump
:00429906 0FBE4301 MOVSX EAX,BYTE PTR [EBX+01] -->> 2nd char
:0042990A 50 PUSH EAX
:0042990B E8A4520400 CALL 0046EBB4
:00429910 59 POP ECX
:00429911 83F84C CMP EAX,4C -->> 4Ch=L ?
:00429914 7537 JNZ 0042994D
:00429916 0FBE5302 MOVSX EDX,BYTE PTR [EBX+02] -->> 3rd char
:0042991A 83FA32 CMP EDX,32 -->> 32h=2 ?
:0042991D 752E JNZ 0042994D
:0042991F 0FBE4B03 MOVSX ECX,BYTE PTR [EBX+03] -->> 4th char
:00429923 83F935 CMP ECX,35 -->> 35h=5 ?
:00429926 7525 JNZ 0042994D
:00429928 0FBE4304 MOVSX EAX,BYTE PTR [EBX+04] -->> 5th char
:0042992C 83F833 CMP EAX,33 -->> 33h=3 ?
:0042992F 751C JNZ 0042994D
:00429931 0FBE5305 MOVSX EDX,BYTE PTR [EBX+05] -->> 6 char
:00429935 83FA39 CMP EDX,39 -->> 39h=9 ?
:00429938 7513 JNZ 0042994D
:0042993A C705584348001443FC69MOV DWORD PTR [00484358],69FC4314
:00429944 E837A8FDFF CALL 00404180
:00429949 B001 MOV AL,01
:0042994B EB1B JMP 00429968
:0042994D 53 PUSH EBX
:0042994E E84D1F0000 CALL 0042B8A0
:00429953 59 POP ECX
:00429954 84C0 TEST AL,AL
:00429956 7404 JZ 0042995C
:00429958 B001 MOV AL,01
:0042995A EB0C JMP 00429968
:0042995C C70558434800EBBC0396MOV DWORD PTR [00484358],9603BCEB
:00429966 33C0 XOR EAX,EAX
:00429968 5B POP EBX
:00429969 59 POP ECX
:0042996A 59 POP ECX
:0042996B 5D POP EBP
:0042996C C3 RET

Jelas terlihat kan ? bahwa keynya dihardcoded dan dibandingkan satu persatu dengan key kita, jadi key yang valid adalah :

AL2539 -->> satu key untuk semua user :)

Terus      Kembali
Crack One Software Every Day Make You The Real Cracker