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

The Cleaner v2.0

Target  : The Cleaner v2.0
Tool     : SoftIce v4.05

Jalankan The Cleaner, kamu akan mendapat greetZ untuk register (mungkin bisa disebut nag ?) Ok, seperti biasa masukkan nama, serial palsu, BPX di Hmemcpy, tekan F5 2 kali ... Heyyyy, F5 2 kali akan mengantarkan kita kembali ke program, berarti ada 2 kemungkinan, program tidak membutuhkan username, atau program mengkalkulasi serial on the fly (disebut event on edit, di Delphi), setelah gua periksa ternyata kemungkinan yang pertama, maka tekan F5 hanya SEKALI, lalu F12 sampe ketemu dengan badan programnya :

:0044D0BD 8B55FC MOV EDX,[EBP-04] -->> Serial Number
:0044D0C0 8BC3 MOV EAX,EBX
:0044D0C2 E84DFFFFFF CALL 0044D014 -->> Check()
:0044D0C7 84C0 TEST AL,AL -->> Serial Ok ? (al != 0)
:0044D0C9 0F84BA000000 JZ 0044D189 -->> No, then Jump !
:0044D0CF B9C0D14400 MOV ECX,0044D1C0
:0044D0D4 B201 MOV DL,01
:0044D0D6 A1E0B84400 MOV EAX,[0044B8E0]
:0044D0DB E85CE8FFFF CALL 0044B93C
:0044D0E0 8BF0 MOV ESI,EAX
:0044D0E2 8D55FC LEA EDX,[EBP-04]
:0044D0E5 8B8300020000 MOV EAX,[EBX+00000200]
:0044D0EB E80022FDFF CALL 0041F2F0
:0044D0F0 8B45FC MOV EAX,[EBP-04]
:0044D0F3 50 PUSH EAX
:0044D0F4 B9D4D14400 MOV ECX,0044D1D4
:0044D0F9 BAE8D14400 MOV EDX,0044D1E8
:0044D0FE 8BC6 MOV EAX,ESI
:0044D100 E8CBE8FFFF CALL 0044B9D0
:0044D105 8D55FC LEA EDX,[EBP-04]
:0044D108 8B83F0010000 MOV EAX,[EBX+000001F0]
:0044D10E E8DD21FDFF CALL 0041F2F0
:0044D113 8B45FC MOV EAX,[EBP-04]
:0044D116 50 PUSH EAX
:0044D117 B9F8D14400 MOV ECX,0044D1F8
:0044D11C BAE8D14400 MOV EDX,0044D1E8
:0044D121 8BC6 MOV EAX,ESI
:0044D123 E8A8E8FFFF CALL 0044B9D0
:0044D128 8BC6 MOV EAX,ESI
:0044D12A E8E15BFBFF CALL 00402D10
:0044D12F 8D55FC LEA EDX,[EBP-04]
:0044D132 8B8300020000 MOV EAX,[EBX+00000200]
:0044D138 E8B321FDFF CALL 0041F2F0
:0044D13D 8B55FC MOV EDX,[EBP-04]
:0044D140 A1D08C4500 MOV EAX,[00458CD0]
:0044D145 8B00 MOV EAX,[EAX]
:0044D147 0550370000 ADD EAX,00003750
:0044D14C E8B766FBFF CALL 00403808
:0044D151 8D55FC LEA EDX,[EBP-04]
:0044D154 8B83F0010000 MOV EAX,[EBX+000001F0]
:0044D15A E89121FDFF CALL 0041F2F0
:0044D15F 8B55FC MOV EDX,[EBP-04]
:0044D162 A1D08C4500 MOV EAX,[00458CD0]
:0044D167 8B00 MOV EAX,[EAX]
:0044D169 0554370000 ADD EAX,00003754
:0044D16E E89566FBFF CALL 00403808
:0044D173 B808D24400 MOV EAX,0044D208
:0044D178 E863B0FEFF CALL 004381E0
:0044D17D C7835001000001000000MOV DWORD PTR [EBX+00000150],00000001
:0044D187 EB0A JMP 0044D193
:0044D189 B82CD24400 MOV EAX,0044D22C -->> "Invalid bla bla bla" message ...
:0044D18E E84DB0FEFF CALL 004381E0
:0044D193 33C0 XOR EAX,EAX
:0044D195 5A POP EDX
:0044D196 59 POP ECX
:0044D197 59 POP ECX
:0044D198 648910 MOV FS:[EAX],EDX
:0044D19B 68B0D14400 PUSH 0044D1B0
:0044D1A0 8D45FC LEA EAX,[EBP-04]
:0044D1A3 E80C66FBFF CALL 004037B4
:0044D1A8 C3 RET

Check() :
:0044D014 55 PUSH EBP
:0044D015 8BEC MOV EBP,ESP
:0044D017 83C4F0 ADD ESP,-10
:0044D01A 53 PUSH EBX
:0044D01B 8955FC MOV [EBP-04],EDX
:0044D01E 8B45FC MOV EAX,[EBP-04]
:0044D021 E8BE6BFBFF CALL 00403BE4
:0044D026 33C0 XOR EAX,EAX
:0044D028 55 PUSH EBP
:0044D029 6889D04400 PUSH 0044D089
:0044D02E 64FF30 PUSH DWORD PTR FS:[EAX]
:0044D031 648920 MOV FS:[EAX],ESP
:0044D034 8D45F0 LEA EAX,[EBP-10]
:0044D037 50 PUSH EAX
:0044D038 8D4DF4 LEA ECX,[EBP-0C]
:0044D03B 8D55F8 LEA EDX,[EBP-08]
:0044D03E 8B45FC MOV EAX,[EBP-04]
:0044D041 E80EFFFFFF CALL 0044CF54
Rutin diatas akan memisahkan serial kita menjadi 3 bagian, masing masing berisi 4 karakter dari serial, lalu mengconvertnya dalam integer. Contoh :
123456789012345678 (panjang serial terserah, toh software tidak mengecek panjangnya) akan dipisahkan menjadi :
1234 -->> part1
6789 -->> part2
1234 -->> part3
Ngerti kan, dia ngambil per 4 karakter, tapi selalu menlongkapi satu karakter, jadi format serial :

xxxxyxxxxyxxxx (setidaknya panjang serial 14 karakter !)
dimana y adalah terserah anda !!! :)
:0044D046 837DF800 CMP DWORD PTR [EBP-08],00 -->> part1 = 0 ?
:0044D04A 7421 JZ 0044D06D -->> Bad Jump !
:0044D04C 837DF400 CMP DWORD PTR [EBP-0C],00 -->> part2 = 0 ?
:0044D050 741B JZ 0044D06D
:0044D052 837DF000 CMP DWORD PTR [EBP-10],00 -->> part3 = 0 ?
:0044D056 7415 JZ 0044D06D
Maksud dari kode diatas, selain untuk mengecek apakah panjang serial minimal 14 (yah, secara ngak langsung sih :) juga untuk mengecek apakah kita memasukkan kode kita 0000, karena jika 0000 diconvert ke integer, akan tetap 00.

:0044D058 8B45F8 MOV EAX,[EBP-08]
:0044D05B 0345F4 ADD EAX,[EBP-0C]
:0044D05E 0345F0 ADD EAX,[EBP-10]
kode diatas, menambahkan part1,2,3 ke dalam eax
:0044D061 B96F000000 MOV ECX,0000006F -->> ecx = 6fh = 111d
:0044D066 99 CDQ -->> edx = 0
:0044D067 F7F9 IDIV ECX -->> eax/ecx , sisa di edx.
:0044D069 85D2 TEST EDX,EDX -->> bersisa ?
:0044D06B 7404 JZ 0044D071
:0044D06D 33DB XOR EBX,EBX -->> EBX = 0
:0044D06F EB02 JMP 0044D073
:0044D071 B301 MOV BL,01 -->> Bl = 1
:0044D073 33C0 XOR EAX,EAX
:0044D075 5A POP EDX
:0044D076 59 POP ECX
:0044D077 59 POP ECX
:0044D078 648910 MOV FS:[EAX],EDX
:0044D07B 6890D04400 PUSH 0044D090
:0044D080 8D45FC LEA EAX,[EBP-04]
:0044D083 E82C67FBFF CALL 004037B4
:0044D088 C3 RET
Setelah kode ini, nilai al ditentukan dari bl, karena akan ada mov al,bl. Sorry kodenya terpotong :) Jadi jelas bahwa BL != 0, dan itu hanya dapat terjadi JIKA DAN HANYA JIKA EAX DIBAGI DENGAN 6Fh TIDAK BERSISA !!!

Dengan mudah kamu dapat menghitung supaya jumlah dia habis dibagi 111d :

0100-0010-0001

0100 + 0010 + 0001 = 0111d Yess :)

Kamu tidak harus mengisikan strip disana, tapi supaya kelihatan keren, maka gua isi strip :)

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