Cracker Handbook 1.0 part 128 pps

9 98 1
Cracker Handbook 1.0 part 128 pps

Đang tải... (xem toàn văn)

Thông tin tài liệu

Posted by: moonbaby Jan 7 2004, 03:27 AM QUOTE Homepage : http://crackme.de CrackMe : orion_crackme4.zip (CrackMe4.exe) Coder : Diablo (Borland C++) Type : Name / Serial Packed : N / A Crack Tool : OllyDbg 1.09d Unpack Tool : N / A Request : Correct Serial Rule : N/A Note : N/A >>>>>>>> Chương trình này mã hoá chuỗi rất đơn giản, nhưng đoạn mã xử lý thì rất dài : QUOTE >>>> Câu lệnh này là nạp từng ký tự của chuỗi U nhập vào ECX 00401675 . 0FBE08 MOVSX ECX,BYTE PTR DS:[EAX] >>>> Trace tiếp một đoạn khá dài ta đến đây. Câu lệnh này là chèn giá trị tại địa chỉ DS:[EDX] vào trước ký tự của chuỗi được lưu ở ECX bên trên. ( ký tự ở đại chỉ này luôn là 00h ) 004016CB . 8B12 MOV EDX,DWORD PTR DS:[EDX] >>>> Lặp lại quá trình cho đến hết chuỗi. 00401777 .^\0F85 C6FEFFFF JNZ CRACKME4.00401643 >>>> Trace tiếp ta đến : 0040189C . E8 07A30600 CALL CRACKME4.0046BBA8 >>>> Trace vào trong lệnh này ta thấy 0046BBAC |. 8B00 MOV EAX,DWORD PTR DS:[EAX] < === Chuỗi S nhập 0046BBAE |. 8B12 MOV EDX,DWORD PTR DS:[EDX] < === Chuỗi S thực >>>> Trace thẳng vào trong lệnh này ta đến quá trình so sánh chuỗi. 0046BBB0 |. E8 FF52FFFF CALL CRACKME4.00460EB4 >>>>>>>> Vậy : QUOTE 1- Quá trình xử ý chuỗi này là chuyển ký tự thành mã ASCII và chèn trước mỗi ký tự số 00 2- Quá trình xử lý này cực ký đơn giản nhưng cái khó là tìm ra đoạn mã và đặt BreakPoint. >>>>>>>> Chuỗi mã hóa và chuỗi S nhập được lưu ở QUOTE 006BF2AC 00BE530C ASCII "004D006F006F006E0062006100620079" 006BF2B0 00BE533C ASCII "412456" Có thể nhì thấy ở của sổ thứ 5 >>>>>>>> Vậy : QUOTE User : Moonbaby Serial : 004D006F006F006E0062006100620079 User : HVA-CrAcKeRtEaM Serial : 004800560041002D0043007200410063004B00650052007400450061004D Ba file crackme của Diablo sau khi crack xong sẽ cho ta một hình rất đẹp Posted by: NVCT.com Jan 9 2004, 03:26 AM QUOTE Victim : mankind Tools : OllyDbg v1.09d Crack file : mankind-soarp1.exe Cracked by : NVCT.com URL : http://crackme.de Cracked by : NCVT.com Set BreakPoint here : QUOTE 004010C3 |. E8 C2020000 CALL <JMP.&USER32.GetDlgItemTextA> ; \GetDlgItemTextA 00401123 |. E8 62020000 CALL <JMP.&USER32.GetDlgItemTextA> ; \GetDlgItemTextA The first MagicString : QUOTE 00401128 |. 8D05 36304000 LEA EAX,DWORD PTR DS:[403036] < === Save here 0040112E |. C600 43 MOV BYTE PTR DS:[EAX],43 < ======== C 00401131 |. C640 01 72 MOV BYTE PTR DS:[EAX+1],72 < ====== r 00401135 |. C640 02 61 MOV BYTE PTR DS:[EAX+2],61 < ====== a 00401139 |. C640 03 63 MOV BYTE PTR DS:[EAX+3],63 < ====== c 0040113D |. C640 04 6B MOV BYTE PTR DS:[EAX+4],6B < ====== k 00401141 |. C640 05 54 MOV BYTE PTR DS:[EAX+5],54 < ====== T 00401145 |. C640 06 68 MOV BYTE PTR DS:[EAX+6],68 < ====== h 00401149 |. C640 07 69 MOV BYTE PTR DS:[EAX+7],69 < ====== i 0040114D |. C640 08 73 MOV BYTE PTR DS:[EAX+8],73 < ====== s 00401151 |. C640 09 31 MOV BYTE PTR DS:[EAX+9],31 < ====== 1 ================> MagicString1 = CrackThis1 The second MagicString : QUOTE 00401155 |. 8D05 41304000 LEA EAX,DWORD PTR DS:[403041] < === Save here 0040115B |. C600 4B MOV BYTE PTR DS:[EAX],4B < ======== K 0040115E |. C640 01 61 MOV BYTE PTR DS:[EAX+1],61 < ====== a 00401162 |. C640 02 6E MOV BYTE PTR DS:[EAX+2],6E < ====== n 00401166 |. C640 03 61 MOV BYTE PTR DS:[EAX+3],61 < ====== a 0040116A |. C640 04 6C MOV BYTE PTR DS:[EAX+4],6C < ====== l 0040116E |. C640 05 32 MOV BYTE PTR DS:[EAX+5],32 < ====== 2 00401172 |. C640 06 33 MOV BYTE PTR DS:[EAX+6],33 < ====== 3 ================> MagicString2 = Kalan23 The first Process : QUOTE 004011A9 |. 8D05 8B314000 LEA EAX,DWORD PTR DS:[40318B] < ==== MagicString1 004011AF |. 8D1D 41304000 LEA EBX,DWORD PTR DS:[403041] < ==== MagicString2 004011B5 |. 8D15 26314000 LEA EDX,DWORD PTR DS:[403126] < ==== input U 004011BB |> 8A0C30 /MOV CL,BYTE PTR DS:[EAX+ESI] < ==== Chart. of MagicString1 004011BE |. 8A5415 00 |MOV DL,BYTE PTR SS:[EBP+EDX] < ==== Chart. of U input 004011C2 |. 8A043B |MOV AL,BYTE PTR DS:[EBX+EDI] < ==== Chart. of MagicString2 004011C5 |. 02C2 |ADD AL,DL 004011C7 |. 02C1 |ADD AL,CL 004011C9 |. 2C 02 |SUB AL,2 004011CB |. 34 09 |XOR AL,9 004011CD |. 33C9 |XOR ECX,ECX 004011CF |. 8AC8 |MOV CL,AL 004011D1 |. 8D86 8B314000 |LEA EAX,DWORD PTR DS:[ESI+40318B] 004011D7 |. 8808 |MOV BYTE PTR DS:[EAX],CL 004011D9 |. 8D05 8B314000 |LEA EAX,DWORD PTR DS:[40318B] 004011DF |. 46 |INC ESI 004011E0 |. 83FE 0A |CMP ESI,0A 004011E3 |. 75 02 |JNZ SHORT SOARP1.004011E7 004011E5 |. 33F6 |XOR ESI,ESI 004011E7 |> 8D1D 41304000 |LEA EBX,DWORD PTR DS:[403041] 004011ED |. 47 |INC EDI 004011EE |. 83FF 07 |CMP EDI,7 004011F1 |. 75 02 |JNZ SHORT SOARP1.004011F5 004011F3 |. 33FF |XOR EDI,EDI 004011F5 |> 8D15 26314000 |LEA EDX,DWORD PTR DS:[403126] 004011FB |. 45 |INC EBP ======================== counter 004011FC |. 3B2D 1E314000 |CMP EBP,DWORD PTR DS:[40311E] 00401202 |.^ 7C B7 \JL SHORT SOARP1.004011BB After this process the value ( MagicString3 ) is saved at DS:[40318B] The second Process : QUOTE 00401204 |. C705 22314000>MOV DWORD PTR DS:[403122],0A 0040120E |. 8B0D 22314000 MOV ECX,DWORD PTR DS:[403122] < ====== ECX = 0Ah 00401214 |. 33F6 XOR ESI,ESI 00401216 |. 85C9 TEST ECX,ECX 00401218 |. 7E 3B JLE SHORT SOARP1.00401255 0040121A |> 8A8E 8B314000 /MOV CL,BYTE PTR DS:[ESI+40318B] < === Chart. of MagicString3 00401220 |. 80F9 30 |CMP CL,30 00401223 |. 7C 1A |JL SHORT SOARP1.0040123F 00401225 |. 80F9 2F |CMP CL,2F 00401228 |. 76 09 |JBE SHORT SOARP1.00401233 0040122A |. 80F9 3A |CMP CL,3A 0040122D |. 73 04 |JNB SHORT SOARP1.00401233 0040122F |. 7E 19 |JLE SHORT SOARP1.0040124A 00401231 |. EB 0C |JMP SHORT SOARP1.0040123F 00401233 |> 80F9 40 |CMP CL,40 00401236 |. 76 07 |JBE SHORT SOARP1.0040123F 00401238 |. 80F9 5B |CMP CL,5B 0040123B |. 73 02 |JNB SHORT SOARP1.0040123F 0040123D |. 7E 0B |JLE SHORT SOARP1.0040124A 0040123F |> 80C1 13 |ADD CL,13 00401242 |. 888E 8B314000 |MOV BYTE PTR DS:[ESI+40318B],CL 00401248 |.^ EB D0 |JMP SHORT SOARP1.0040121A 0040124A |> 8B0D 22314000 |MOV ECX,DWORD PTR DS:[403122] 00401250 |. 46 |INC ESI 00401251 |. 3BF1 |CMP ESI,ECX 00401253 |.^ 7C C5 \JL SHORT SOARP1.0040121A After the second Process, we here : QUOTE 00401255 |> \68 8B314000 PUSH SOARP1.0040318B ; /String2 = "2AR20MMO11" < == Real Serial 0040125A |. 68 B9304000 PUSH SOARP1.004030B9 ; |String1 = "1" < ======== input S So : QUOTE User : NVCT.com Serial : 2AR20MMO11 . QUOTE User : Moonbaby Serial : 00 4D 006 F 006 F 006 E 006 200 6 10 06 200 79 User : HVA-CrAcKeRtEaM Serial : 00 4 800 5 600 4 10 02D 004 300 7 200 4 10 06 300 4B 006 500 5 200 7 400 4 500 6 10 04D Ba file crackme của. SOARP1 .00 4 01 2 4A 00 4 01 2 3F |> 80C1 13 |ADD CL ,13 00 4 01 2 42 |. 888E 8B 314 00 0 |MOV BYTE PTR DS:[ESI+ 40 318 B],CL 00 4 01 2 48 |.^ EB D0 |JMP SHORT SOARP1 .00 4 01 2 1A 00 4 01 2 4A |> 8B0D 22 314 00 0 |MOV. 8D1D 413 04 000 |LEA EBX,DWORD PTR DS:[ 403 0 41] 00 4 01 1 ED |. 47 |INC EDI 00 4 01 1 EE |. 83FF 07 |CMP EDI,7 00 4 01 1 F1 |. 75 02 |JNZ SHORT SOARP1 .00 4 01 1 F5 00 4 01 1 F3 |. 33FF |XOR EDI,EDI 00 4 01 1 F5 |>

Ngày đăng: 03/07/2014, 17:20

Tài liệu cùng người dùng

Tài liệu liên quan