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

MM Viewer v1.02

Target  : MM Viewer v1.02
Tool     : SoftIce v4.05

  Jalankan MMViewer, pilih register, setelah mengisi segala sesuatunya, tekan register, lalu kamu akan ditanyakan RegCodenya. Ketikkan sembarang angka, katakanlah 123454323 (fav gue) , lalu pasang BPX di hmemcpy, lalu tekan OK. Teken F12 sampai masuk ke badan program, lalu search di memory serial palsu kita, lalu pasang BPM disitu, kamu akan break (pertama langsung dapet !!!) (Kalau kamu bingung dengan apa yang barusan gua jelaskan, silahkan baca kembali tutorial eKH yang terdahulu) disini :

:00403737 7426 JZ 0040375F
:00403739 8B0E MOV ECX,[ESI] -->> Serial Asli
:0040373B 8B1F MOV EBX,[EDI] -->> Serial Palsu

Kalau kamu mau tahu serial aslinya, kamu cukup ketikkan D ESI, maka kamu akan mendapatkan serial aslinya.
:0040373D 39D9 CMP ECX,EBX -->> Bandingkan
:0040373F 7558 JNZ 00403799
:00403741 4A DEC EDX
:00403742 7415 JZ 00403759
:00403744 8B4E04 MOV ECX,[ESI+04]
:00403747 8B5F04 MOV EBX,[EDI+04]
:0040374A 39D9 CMP ECX,EBX
:0040374C 754B JNZ 00403799
:0040374E 83C608 ADD ESI,08
:00403751 83C708 ADD EDI,08
:00403754 4A DEC EDX
:00403755 75E2 JNZ 00403839

Disini, kamu cukup ketikkan F12 (PRet), untuk kembali ke pemanggilnya :

:004605B2 8D55F4 LEA EDX,[EBP-0C]
:004605B5 8B45F8 MOV EAX,[EBP-08]
:004605B8 E8EFF6FFFF CALL 0045FCAC
:004605BD 8B45F4 MOV EAX,[EBP-0C]
:004605C0 8B55FC MOV EDX,[EBP-04]
:004605C3 E84831FAFF CALL 00403710 -->> Rutin Pembanding Serial
:004605C8 0F94C3 SETZ BL
:004605CB 33C0 XOR EAX,EAX
:004605CD 5A POP EDX
:004605CE 59 POP ECX
:004605CF 59 POP ECX
:004605D0 648910 MOV FS:[EAX],EDX

Kalau kamu doyan ngepath, kamu tinggal men SetNZ BL. Tapi kita mo bikin keygennya, jadi kita butuh tahu gimana rutin serialnya. Pasang BPX di 004605b8 , sebelum itu bersihkan dulu segala breakpoint yang tak terpakai, lalu keluar dulu dari SI, dan tekan Register, kamu mustinya kembali ke offset tersebut. Ketikkan D *(EDX) -->> Register Code, tanpa 0 di depannya dan tanpa 4 angka terakhir ( Di komputer gue) Jadi berhubung Register Code gue : 0018-8626-4044-1259 dirubah jadi 1886264044 dan D EAX -->> 18862640441259 (Serial Lengkap)

Perhatikan bahwa di EDX dialamatkan secara indirect addressing, sedang di EAX secara direct addresing. Sebenarnya mudah saja kenapa program tidak mengikutsertakan 0 di depan serial, ini karena setelah muncul rutin string to integer yang dipanggil program untuk merubah string ke integer, 0 tidak akan terpakai lagi, begitu pula dengan "-". Lalu kenapa diambil 10 angka terdepan ? Ini karena batasan dalam integer hexa (FFFFFFFF) sebesar 10 digit. Jadi jelasnya program mempaskan serialnya untuk dapat dimuat ke register.

Sekarang kita trace(F8) ke dalam Call 0045fcac :

:0045FCAC 55 PUSH EBP
:0045FCAD 8BEC MOV EBP,ESP
:0045FCAF 83C4F4 ADD ESP,-0C
:0045FCB2 53 PUSH EBX
:0045FCB3 56 PUSH ESI
:0045FCB4 57 PUSH EDI
:0045FCB5 33C9 XOR ECX,ECX
:0045FCB7 894DF4 MOV [EBP-0C],ECX
:0045FCBA 8955F8 MOV [EBP-08],EDX
:0045FCBD 8945FC MOV [EBP-04],EAX
:0045FCC0 8B45FC MOV EAX,[EBP-04]
:0045FCC3 E8EC3AFAFF CALL 004037B4
:0045FCC8 33C0 XOR EAX,EAX
:0045FCCA 55 PUSH EBP
:0045FCCB 68B3FD4500 PUSH 0045FDB3
:0045FCD0 64FF30 PUSH DWORD PTR FS:[EAX]
:0045FCD3 648920 MOV FS:[EAX],ESP
:0045FCD6 33C0 XOR EAX,EAX
:0045FCD8 55 PUSH EBP
:0045FCD9 6816FD4500 PUSH 0045FD16
:0045FCDE 64FF30 PUSH DWORD PTR FS:[EAX]
:0045FCE1 648920 MOV FS:[EAX],ESP
:0045FCE4 8D45F4 LEA EAX,[EBP-0C]
:0045FCE7 50 PUSH EAX
:0045FCE8 8B45FC MOV EAX,[EBP-04]
:0045FCEB E81039FAFF CALL 00403600
:0045FCF0 8BC8 MOV ECX,EAX
:0045FCF2 83E904 SUB ECX,04
:0045FCF5 BA01000000 MOV EDX,00000001
:0045FCFA 8B45FC MOV EAX,[EBP-04] -->> EAX = 14 digit register code
:0045FCFD E8023BFAFF CALL 00403804
:0045FD02 8B45F4 MOV EAX,[EBP-0C] -->> EAX = 10 digit register code
:0045FD05 E81261FAFF CALL 00405E1C -->> String to Integer
:0045FD0A 8BD8 MOV EBX,EAX -->> Integer dari 10 digit register code
:0045FD0C 33C0 XOR EAX,EAX
:0045FD0E 5A POP EDX
:0045FD0F 59 POP ECX
:0045FD10 59 POP ECX
:0045FD11 648910 MOV FS:[EAX],EDX
:0045FD14 EB37 JMP 0045FD4D
:0045FD16 E9E131FAFF JMP 00402EFC
:0045FD1B 8D45F4 LEA EAX,[EBP-0C]
:0045FD1E 50 PUSH EAX
:0045FD1F 8B45FC MOV EAX,[EBP-04]
:0045FD22 E8D938FAFF CALL 00403600
:0045FD27 8BC8 MOV ECX,EAX
:0045FD29 83E905 SUB ECX,05
:0045FD2C BA01000000 MOV EDX,00000001
:0045FD31 8B45FC MOV EAX,[EBP-04]
:0045FD34 E8CB3AFAFF CALL 00403804
:0045FD39 8B45F4 MOV EAX,[EBP-0C]
:0045FD3C BAD65F7A51 MOV EDX,517A5FD6
:0045FD41 E81261FAFF CALL 00405E58
:0045FD46 8BD8 MOV EBX,EAX
:0045FD48 E8CB34FAFF CALL 00403218
:0045FD4D 8D45F4 LEA EAX,[EBP-0C]
:0045FD50 50 PUSH EAX
:0045FD51 8B45FC MOV EAX,[EBP-04]
:0045FD54 E8A738FAFF CALL 00403600
:0045FD59 8BD0 MOV EDX,EAX
:0045FD5B 83EA03 SUB EDX,03
:0045FD5E B904000000 MOV ECX,00000004
:0045FD63 8B45FC MOV EAX,[EBP-04]
:0045FD66 E8993AFAFF CALL 00403804 -->> Ambil 4 digit berikutnya dari register code yang tersisa

Kenapa 4 digit ? Karena didalam Call tersebut ada Indirect Addresing, sehingga satu register hanya mampu menampung 32 bit = 4 digit, berapapun sisa dari register code tersebut.
:0045FD6B 8B45F4 MOV EAX,[EBP-0C] -->> 4 digit tersebut
:0045FD6E E8A960FAFF CALL 00405E1C -->> String to Integer 4 digit tersebut
:0045FD73 8BF0 MOV ESI,EAX -->> hasilnya
:0045FD75 8D45F4 LEA EAX,[EBP-0C]
:0045FD78 E81BFEFFFF CALL 0045FB98
:0045FD7D 8B45F4 MOV EAX,[EBP-0C] -->> Serial Number
:0045FD80 E89760FAFF CALL 00405E1C -->> String to Integer Serial Number
:0045FD85 03F0 ADD ESI,EAX -->> Serial Number + 4 digit register code
:0045FD87 F7DE NEG ESI -->> Neg-kan nilai tersebut
:0045FD89 33DE XOR EBX,ESI -->> Xor 10 digit Register Code dengan ESI
:0045FD8B 8B55F8 MOV EDX,[EBP-08]
:0045FD8E 8BC3 MOV EAX,EBX -->> Integer dari EBX, sekarang dipindahkan ke EAX
:0045FD90 E853090000 CALL 004606E8
:0045FD95 33C0 XOR EAX,EAX
:0045FD97 5A POP EDX
:0045FD98 59 POP ECX
:0045FD99 59 POP ECX
:0045FD9A 648910 MOV FS:[EAX],EDX
:0045FD9D 68BAFD4500 PUSH 0045FDBA
:0045FDA2 8D45F4 LEA EAX,[EBP-0C]
:0045FDA5 E8E236FAFF CALL 0040348C
:0045FDAA 8D45FC LEA EAX,[EBP-04]
:0045FDAD E8DA36FAFF CALL 0040348C
:0045FDB2 C3 RET

Sisa dari code diatas, salah satunya adalah merubah kembali EBX yang masih dalam integer kembali ke dalam String, ini adalah RegKey yang asli.

Sekarang kamu sudah melihat mudah sekali untuk mereverse program ini, dan membuat keyGenZ nya.

WebMaster
Terus      Kembali
Komentar dan Mailing List
Crack One Software Every Day Make You The Real Cracker