Tải bản đầy đủ (.pdf) (5 trang)

Cracker Handbook 1.0 part 121 potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (80.6 KB, 5 trang )

Posted by: dqtln

Jan 1 2004, 04:44 AM

Victim : Syllogism CrackMe #1
Tools : OllyDbg v1.09d
Crack file : Syllogism-crackme1.exe
Cracked by : dqtln

trang biw.rult.at còn một số crackme chưa có solution , chắc dễ quá
dùng OllyDbg tìm đến thông báo , set breakpoint , ta thấy như sau



CODE

004011CF |. E8 56770000 CALL
<JMP.&USER32.GetDlgItemTextA>; \GetDlgItemTextA =>đặt
breakpoint
004011D4 |. 6A 19 PUSH 19; /Count = 19 (25.)
ở đây có một số dòng
004011DF |. E8 46770000 CALL
<JMP.&USER32.GetDlgItemTextA>; \GetDlgItemTextA
004011E4 |. 8D55 C8 LEA EDX,DWORD PTR SS:[EBP-38]
004011E7 |. 52 PUSH EDX; /Arg2 =>đẩy serial lên stack
004011E8 |. 8D4D E4 LEA ECX,DWORD PTR SS:[EBP-1C]; |
004011EB |. 51 PUSH ECX; |Arg1 =>đẩy name lên stack
004011EC |. E8 77010000 CALL Syllogis.00401368;
\Syllogis.00401368 =>trace into
ở đây có một số dòng
004011FA |. 68 45914000 PUSH Syllogis.00409145; |Title =


"HOEBAG"
004011FF |. 68 36914000 PUSH Syllogis.00409136; |Text = "Try
again, HOE"


bi giờ hãy đến 00401368 xem hàm kiểm tra serial



CODE

00401368 /$ 55 PUSH EBP =>bạn đang ở đây
00401369 |. 8BEC MOV EBP,ESP
0040136B |. 83C4 E4 ADD ESP,-1C
0040136E |. 53 PUSH EBX
0040136F |. 56 PUSH ESI
00401370 |. 57 PUSH EDI
00401371 |. 8B7D 0C MOV EDI,DWORD PTR SS:[EBP+C] =>đưa
serial vào edi
00401374 |. 8B75 08 MOV ESI,DWORD PTR SS:[EBP+8] =>đưa
name vài esi
00401377 |. 33DB XOR EBX,EBX =>ebx=0
00401379 |. 56 PUSH ESI; /Arg2 =>đẩy name lên stack
0040137A |. 8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C]; |
0040137D |. 50 PUSH EAX; |Arg1
0040137E |. E8 29110000 CALL Syllogis.004024AC;
\Syllogis.004024AC =>trace into nếu thích
00401383 |. 83C4 08 ADD ESP,8
00401386 |. 6A 01 PUSH 1; /Arg3 = 00000001 =>đẩy 1 lên stack
00401388 |. 6A 20 PUSH 20; |Arg2 = 00000020 =>đẩy 20 lên stack

(20h có mã ASCII là khoảng trắng)
0040138A |. 8D55 E4 LEA EDX,DWORD PTR SS:[EBP-1C]; |
0040138D |. 52 PUSH EDX; |Arg1 =>đẩy name lên stack
0040138E |. E8 29100000 CALL Syllogis.004023BC;
\Syllogis.004023BC =>trace into nếu thích , đơn giản nó đổi ký tự
đầu của chuỗi name thành khoảng trắng vd name là dqtln , thì
name sau khi mã hóa là " qtln"
00401393 |. 83C4 0C ADD ESP,0C
00401396 |. 8D4D E4 LEA ECX,DWORD PTR SS:[EBP-1C]
00401399 |. 51 PUSH ECX =>đẩy chuỗi name mã hóa lên stack
0040139A |. 57 PUSH EDI =>đẩy serial lên stack
0040139B |. E8 C0100000 CALL Syllogis.00402460 =>trace into
004013A0 |. 83C4 08 ADD ESP,8
ở đây có một số dòng
004013EC |. 5D POP EBP
004013ED \. C3 RETN


tiếp tục đến 00402460 , ta thấy như sau



CODE

00402460 /$ 8B4C24 04 MOV ECX,DWORD PTR SS:[ESP+4]
=>đưa serial vào ecx
00402464 |. 8B5424 08 MOV EDX,DWORD PTR SS:[ESP+8]
=>đưa name mã hóa vào edx
00402468 |. 53 PUSH EBX
00402469 |. 33C0 XOR EAX,EAX

0040246B |. 33DB XOR EBX,EBX
0040246D |> 8A01 /MOV AL,BYTE PTR DS:[ECX] =>đưa ký tự
đầu tiên của serial vào al
0040246F |. 8A1A |MOV BL,BYTE PTR DS:[EDX] =>đưa ký tự
đầu tiên của name mã hóa vào bl (ở đây là 20h tức khoảng trắng á
00402471 |. 2BC3 |SUB EAX,EBX =>kiểm tra xem có giống nhau
không
00402473 |. 75 34 |JNZ SHORT Syllogis.004024A9 =>nếu không thì
kết thúc hàm , đồng nghĩa với bắn nag Bad Boy
00402475 |. 84DB |TEST BL,BL
00402477 |. 74 30 |JE SHORT Syllogis.004024A9
00402479 |. 8A41 01 |MOV AL,BYTE PTR DS:[ECX+1] =>đưa ký
tự thứ hai của serial vào al
0040247C |. 8A5A 01 |MOV BL,BYTE PTR DS:[EDX+1] =>đưa ký
tự thứ hai của name mã hóa vào bl
0040247F |. 2BC3 |SUB EAX,EBX =>kiểm tra xem có giống nhau
không
00402481 |. 75 26 |JNZ SHORT Syllogis.004024A9 =>bắn nag Bad
Boy
00402483 |. 84DB |TEST BL,BL
00402485 |. 74 22 |JE SHORT Syllogis.004024A9
00402487 |. 8A41 02 |MOV AL,BYTE PTR DS:[ECX+2] =>đưa ký
tự thứ ba của serial vào al
0040248A |. 8A5A 02 |MOV BL,BYTE PTR DS:[EDX+2] =>đưa ký
tự thứ ba của name mã hóa vào bl
0040248D |. 2BC3 |SUB EAX,EBX =>kiểm tra xem có giống nhau
không
0040248F |. 75 18 |JNZ SHORT Syllogis.004024A9 =>bắn nag Bad
Boy
00402491 |. 84DB |TEST BL,BL

00402493 |. 74 14 |JE SHORT Syllogis.004024A9
00402495 |. 8A41 03 |MOV AL,BYTE PTR DS:[ECX+3] =>đưa ký
tự thứ tư của serial vào al
00402498 |. 8A5A 03 |MOV BL,BYTE PTR DS:[EDX+3] =>đưa ký
tự thứ tư của name mã hóa vào bl
0040249B |. 2BC3 |SUB EAX,EBX
0040249D |. 75 0A |JNZ SHORT Syllogis.004024A9 =>bắn nag Bad
Boy
0040249F |. 83C1 04 |ADD ECX,4 =>ecx=ecx+4
004024A2 |. 83C2 04 |ADD EDX,4 =>edx=edx+4
004024A5 |. 84DB |TEST BL,BL
004024A7 |.^75 C4 \JNZ SHORT Syllogis.0040246D =>trở lại vòng
lặp để kiểm tra 4 ký tự tiếp theo
004024A9 |> 5B POP EBX
004024AA \. C3 RETN


ban đầu chương trình mã hóa chuỗi name của bạn rồi kiểm tra chuỗi serial
nhập vào có giống với chuỗi name mã hóa không chuỗi name được mã
hóa bằng cách thay ký tự đầu tiên thành khoảng trắng , các ký tự sau giữ
nguyên
name : "dqtln"
serial : " qtln"

×