1. Trang chủ
  2. » Công Nghệ Thông Tin

Cracker Handbook 1.0 part 283 pps

7 107 1

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

THÔNG TIN TÀI LIỆU

004826CD |. E8 2223F8FF CALL unpack.004049F4 ; <== Cutting : SecII - Quá trình mã hoá được tiến hành như sau : 004826E9 |. 8B4D F4 MOV ECX,[LOCAL.3] ; <== SecII 004826EC |. 8B55 F8 MOV EDX,[LOCAL.2] ; <== SecI 004826EF |. 8BC7 MOV EAX,EDI 004826F1 |. E8 1EF0FFFF CALL unpack.00481714 ; <== Encrypt === Encrypt === 00481769 |. BB 00010000 MOV EBX,100 ; <== Default String : dStr 0048176E |. 8D45 F0 LEA EAX,[LOCAL.4] 00481771 |. 50 PUSH EAX ; /Arg1 00481772 |. C745 E4 00010>MOV [LOCAL.7],100 ; | 00481779 |. C645 E8 00 MOV BYTE PTR SS:[EBP-18],0 ; | 0048177D |. 8D55 E4 LEA EDX,[LOCAL.7] ; | 00481780 |. 33C9 XOR ECX,ECX ; | 00481782 |. B8 5C184800 MOV EAX,unpack.0048185C ; |ASCII "%1.2x" 00481787 |. E8 C87FF8FF CALL unpack.00409754 ; \unpack.00409754 0048178C |. 8B45 FC MOV EAX,[LOCAL.1] 0048178F |. E8 0830F8FF CALL unpack.0040479C ; <== Get length of SecI 00481794 |. 8BF8 MOV EDI,EAX ; <== NumberLoop = LenSecI : nL 00481796 |. 85FF TEST EDI,EDI 00481798 |. 7E 60 JLE SHORT unpack.004817FA 0048179A |. C745 EC 01000>MOV [LOCAL.5],1 ; <== i = 1 004817A1 |> 8B45 FC /MOV EAX,[LOCAL.1] ; <== SecI 004817A4 |. 8B55 EC |MOV EDX,[LOCAL.5] ; <== i 004817A7 |. 0FB64410 FF |MOVZX EAX,BYTE PTR DS:[EAX+EDX-1] ; <== SecI[i-1] 004817AC |. 03C3 |ADD EAX,EBX ; <== Temp = Temp + SecI[i-1] 004817AE |. B9 FF000000 |MOV ECX,0FF ; <== dV 004817B3 |. 99 |CDQ 004817B4 |. F7F9 |IDIV ECX ; <== Temp = Temp % dV 004817B6 |. 8BDA |MOV EBX,EDX ; <== Temp 004817B8 |. 3B75 F4 |CMP ESI,[LOCAL.3] ; <== while ( j < LenSecII ) 004817BB |. 7D 03 |JGE SHORT unpack.004817C0 ; <== then 004817BD |. 46 |INC ESI ; <== j++ 004817BE |. EB 05 |JMP SHORT unpack.004817C5 ; <== else 004817C0 |> BE 01000000 |MOV ESI,1 ; <== j = 0x1 004817C5 |> 8B45 F8 |MOV EAX,[LOCAL.2] ; <== SecII 004817C8 |. 0FB64430 FF |MOVZX EAX,BYTE PTR DS:[EAX+ESI-1] ; <== SecII[i-1] 004817CD |. 33D8 |XOR EBX,EAX ; <== Temp = Temp xor SecII[i-1] 004817CF |. 8D45 E0 |LEA EAX,[LOCAL.8] ; <== Convert Value to String : tStr 004817D2 |. 50 |PUSH EAX ; /Arg1 004817D3 |. 895D E4 |MOV [LOCAL.7],EBX ; | 004817D6 |. C645 E8 00 |MOV BYTE PTR SS:[EBP-18],0 ; | 004817DA |. 8D55 E4 |LEA EDX,[LOCAL.7] ; | 004817DD |. 33C9 |XOR ECX,ECX ; | 004817DF |. B8 5C184800 |MOV EAX,unpack.0048185C ; |ASCII "%1.2x" 004817E4 |. E8 6B7FF8FF |CALL unpack.00409754 ; \unpack.00409754 004817E9 |. 8B55 E0 |MOV EDX,[LOCAL.8] ; <== tStr 004817EC |. 8D45 F0 |LEA EAX,[LOCAL.4] ; <== dStr 004817EF |. E8 B02FF8FF |CALL unpack.004047A4 ; <== Concat(dStr,tStr) 004817F4 |. FF45 EC |INC [LOCAL.5] ; <== i++ 004817F7 |. 4F |DEC EDI ; <== while (nL > 0) 004817F8 |.^ 75 A7 \JNZ SHORT unpack.004817A1 ; <== Continue loop === Encrypt === /*/*/*/ - SERIAL tương ứng : User : REA-cRaCkErTeAm Serial : 10074-93E47-8D569 Serial : N/A III – KeyGen : /Section I /- Kết hợp với chuỗi mặc định và đảo ngược chuỗi này . /Section II /- Chia chuỗi làm hai phần và tiến hành mã hoá . IV – End of Tut : - Finished – August 24, 2004 - Thank to my family, Computer_Angel, Zombie_Deathman, Littleboy all REA‘s members, HacNho, RongChauA, Deux, Infinity, all my friend, and YOU. REVERSE ENGINEERING ASSOCIATION http://www.reaonline.net Reverse Engineering Association SoftWare Homepage : http://www.rimarts.co.jp/becky.htm Production : RimArts, Inc. SoftWare : Becky! Internet Mail 2.10.03 Copyright by : Copyright © 1996-2004 RimArts, Inc. All Rights Reserved. Type : Name / Serial / Email Packed : N / A Language : Microsoft Visual C++ 6.0 Crack Tool : OllyDbg 1.09d, PEiD 0.92, kWdsm 10 Unpack : N / A Request : Correct Serial / KeyGen Becky! Internet Mail 2.10.03 - You can create multiple mailboxes, of course. Moreover, you can create multiple "profiles" for each mailbox. This feature is especially useful if you use laptop computer. You can switch between several different settings, like "LAN" and dialup, for the same mailbox. - New protocols are supported IMAP4rev1 for e-mail and LDAP for the address book. - Fast! You can manage thousands of e-mail at your fingertip. - You can write HTML e-mail with Becky!. If you have Microsoft Internet Explorer ver5 or higher installed, Becky! is a complete HTML enabled e-mail client. - Flexible template capability You can prepare standardized e-mail format for business and personal e-mail. You can also create HTML template, of course. ….etc. I – Information : - Dùng PEiD kiểm tra biết CrackMe không bị PACK được viết bằng Microsoft Visual C++ 6.0. - Nhập thử User, Email và Fake Serial, ta nhận được thông báo "Wrong Reg code". Ta không tìm thấy thông báo này trong Olly, nhưng ta tìm được đoạn CODE sau : 005315ED . 68 D0695B00 PUSH B2.005B69D0 ; |Arg2 = 005B69D0 ASCII "User" 005315F2 . 68 EC6A5B00 PUSH B2.005B6AEC ; |Arg1 = 005B6AEC ASCII "License" 0053160B . 68 C8695B00 PUSH B2.005B69C8 ; |Arg2 = 005B69C8 ASCII "Code" 00531610 . 68 EC6A5B00 PUSH B2.005B6AEC ; |Arg1 = 005B6AEC ASCII "License" 00531627 . 68 C0695B00 PUSH B2.005B69C0 ; |Arg2 = 005B69C0 ASCII "EMail" 0053162C . 68 EC6A5B00 PUSH B2.005B6AEC ; |Arg1 = 005B6AEC ASCII "License" - Dò ngược lên trên ta đặt BreakPoint tại lệnh CALL đầu tiên của FuncTion này : 005314FF . E8 69640300 CALL B2.0056796D ; <== Set BreakPoint here II – Cracking : - Load và chạy chương trình, chương trình dừng lại tại điểm đặt BreakPoint . Trace tiếp ta sẽ thấy chương trình nối chuỗi Serial nhập vào sau chuỗi mặc định “RBK” tạo thành chuỗi “RBK-XXXX-YYYY-ZZZZ”. Trace tiếp và ta đến đây : 005315D5 . E8 A644EEFF CALL B2.00415A80 ; \B2.00415A80 - Dùng F7 trace into ta đến đoạn mã hoá . Đầu tiên chương trình kiểm tra chiều dài của chuỗi sau khi đã được gắn thêm chuỗi mặc định : 00415A8D |. 83F9 12 CMP ECX,12 ; <== New Len.S must be 18 charts 00415A90 |. 0F85 AC010000 JNZ B2.00415C42 - Như vậy ta tính được chiều dài của chuỗi S nhập phải là 14 ký tự . Kế đến chương trình kiểm tra các ký tự đặc biệt : 00415A96 |. 8A50 03 MOV DL,BYTE PTR DS:[EAX+3] ; <== NewS[3] 00415A99 |. B1 2D MOV CL,2D ; <== Default char : "-" 00415A9B |. 3AD1 CMP DL,CL ; <== NewS[3] == "-" 00415A9D |. 0F85 9F010000 JNZ B2.00415C42 00415AA3 |. 3848 08 CMP BYTE PTR DS:[EAX+8],CL ; <== NewS[8] == "-" 00415AA6 |. 0F85 96010000 JNZ B2.00415C42 00415AAC |. 3848 0D CMP BYTE PTR DS:[EAX+D],CL ; <== NewS[13] == "-" 00415AAF |. 0F85 8D010000 JNZ B2.00415C42 - Từ đây ta xác định được dạng của số Serial : XXXX-YYYY-ZZZZ . Tiếp đó chương trình sẽ phân tách số Serial mới thành 4 đoạn . Trong đó đoạn đầu tiên chính là đoạn mặc định “RBK” . Từng đoạn sẽ được kiểm tra . Đoạn đầu tiên luôn đúng vì đó là đoạn mặc định . - Kế đó chương trình chuyển hai ký tự cuối cùng của đoạn thứ hai sang giá trị HEX tương ứng ( ví dụ : 13 được chuyển thành D ) và tiến hành so sánh : 00415B76 |. 83FE 01 CMP ESI,1 ; <== Value must be greater than 1 00415B79 |. 0F8C 96000000 JL B2.00415C15 ; <== but 00415B7F |. 83FE 0C CMP ESI,0C ; <== must be less than 12 00415B82 |. 0F8F 8D000000 JG B2.00415C15 - Đoạn thứ hai là đoạn mặc định : 00415B88 |. 8B4424 14 MOV EAX,DWORD PTR SS:[ESP+14] ; <== Second Section 00415B8C |. BE D8675B00 MOV ESI,B2.005B67D8 ; ASCII "3437" 00415B91 |> 8A10 /MOV DL,BYTE PTR DS:[EAX] 00415B93 |. 8A1E |MOV BL,BYTE PTR DS:[ESI] 00415B95 |. 8ACA |MOV CL,DL 00415B97 |. 3AD3 |CMP DL,BL 00415B99 |. 75 1E |JNZ SHORT B2.00415BB9 00415B9B |. 84C9 |TEST CL,CL 00415B9D |. 74 16 |JE SHORT B2.00415BB5 00415B9F |. 8A50 01 |MOV DL,BYTE PTR DS:[EAX+1] 00415BA2 |. 8A5E 01 |MOV BL,BYTE PTR DS:[ESI+1] 00415BA5 |. 8ACA |MOV CL,DL 00415BA7 |. 3AD3 |CMP DL,BL 00415BA9 |. 75 0E |JNZ SHORT B2.00415BB9 00415BAB |. 83C0 02 |ADD EAX,2 00415BAE |. 83C6 02 |ADD ESI,2 00415BB1 |. 84C9 |TEST CL,CL 00415BB3 |.^ 75 DC \JNZ SHORT B2.00415B91 - Quá trình so sánh đoạn thứ tư được dựa vào một bảng mặc định . Và đoạn thứ tư này được chia làm hai phần . Ba ký tự cuối được kiểm tra giống nhau, ký tự đầu tiên kiểm tra khác . Ứng với mỗi giá trị của từng ký tự sẽ có một giá trị tương ứng . Theo như bảng này thì 3 ký tự cuối phải là các ký tự trong khoảng (0-9), còn ký tự đầu tiên phải nằm trong khoảng (a-z, A-Z) 00415BC2 |. 8B4424 0C MOV EAX,DWORD PTR SS:[ESP+C] ; <== Section_III 00415BC6 |. 0FBE48 01 MOVSX ECX,BYTE PTR DS:[EAX+1] ; <== Section_III[1] 00415BCA |. 51 PUSH ECX 00415BCB |. E8 46A41300 CALL B2.00550016 ; <== Must be (0-9) 00415BD0 |. 83C4 04 ADD ESP,4 00415BD3 |. 85C0 TEST EAX,EAX ; <== if correct return value = 4 00415BD5 |. 74 3E JE SHORT B2.00415C15 00415BD7 |. 8B5424 0C MOV EDX,DWORD PTR SS:[ESP+C] ; <== Section_III 00415BDB |. 0FBE42 02 MOVSX EAX,BYTE PTR DS:[EDX+2] ; <== Section_III[2] 00415BDF |. 50 PUSH EAX 00415BE0 |. E8 31A41300 CALL B2.00550016 ; <== Must be (0-9) . "-" 00 415 A9D |. 0F85 9F 01 0 00 0 JNZ B2 .00 415 C42 00 415 AA3 |. 3848 08 CMP BYTE PTR DS:[EAX+8],CL ; <== NewS[8] == "-" 00 415 AA6 |. 0F85 96 01 0 00 0 JNZ B2 .00 415 C42 00 415 AAC |. 3848 0D. ) 00 4 817 BB |. 7D 03 |JGE SHORT unpack .00 4 817 C0 ; <== then 00 4 817 BD |. 46 |INC ESI ; <== j++ 00 4 817 BE |. EB 05 |JMP SHORT unpack .00 4 817 C5 ; <== else 00 4 817 C0 |> BE 01 0 00 000 |MOV. SecI 00 4826EF |. 8BC7 MOV EAX,EDI 00 4826F1 |. E8 1EF0FFFF CALL unpack .00 4 817 14 ; <== Encrypt === Encrypt === 00 4 817 69 |. BB 00 01 0 00 0 MOV EBX , 10 0 ; <== Default String : dStr 00 4 817 6E

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

Xem thêm: Cracker Handbook 1.0 part 283 pps

TỪ KHÓA LIÊN QUAN