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

Cracker Handbook 1.0 part 301 ppt

6 104 1

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 131,08 KB

Nội dung

Chương trình này ngoài việc dễ bị crack số đăng kí ra ta còn có thể crack cả password, thật vậy: Khi khởi động chương trình yêu cầu ta nhập mật khẩu (chẳng hạn mật khẩu thực của em là 123456789 mà em chỉ nhập 1234) chương trình sẽ báo lỗi -> cách crack cũng như bình thường Ta tìm thấy chuỗi này ở Code: 00408771 . 68 1C174500 PUSH IEWatche.0045171C ; ASCII "Incorrect password, please input again." Code: 00408742 . E8 49AEFFFF CALL IEWatche.00403590 +++++===>> set bp here 00408747 . 8B0D 30754600 MOV ECX,DWORD PTR DS:[467530] +++++===>> Fake password 0040874D 8B5424 18 MOV EDX,DWORD PTR SS:[ESP+18] +++++===>> Real Password 00408751 . 51 PUSH ECX 00408752 . 52 PUSH EDX 00408753 . E8 DA4E0200 CALL IEWatche.0042D632 +++++===>> gọi hàm so sánh 00408758 . 83C4 14 ADD ESP,14 0040875B . 85C0 TEST EAX,EAX +++++===>> Nếu EAX = 0 password entered was OK 0040875D .^0F84 9CFEFFFF JE IEWatche.004085FF +++++===>> Tiếp tục khởi động chương trình 00408763 . 8B87 64020000 MOV EAX,DWORD PTR DS:[EDI+264] 00408769 . 50 PUSH EAX 0040876A . 51 PUSH ECX 0040876B . 8BCC MOV ECX,ESP 0040876D . 896424 1C MOV DWORD PTR SS:[ESP+1C],ESP 00408771 . 68 1C174500 PUSH IEWatche.0045171C ; ASCII "Incorrect password, please input again." 00408776 . E8 959AFFFF CALL IEWatche.00402210 0040877B . E8 00540100 CALL IEWatche.0041DB80 Chương trình này bảo mật kém quá phải không các bác??? Takada(REA) Crack bộ Soft cua trang www.jklnsoft.com REA - Reverse Engineering Associatinon SoftWare Homepage : http://www.jklnsoft.com Production : JKLNSoft , Inc SoftWare : Batch Image Resizer v2.01 Copyright by : Copyright (C) 2004 JKLNSoft.com Packed : N/A Language : Microsoft Visual C++ 6.0 Crack Tools : OllyDbg 1.09d, PEiD v0.92 Unpack tools : N/A Request : Real Serial . Introduction : Batch Image Resizer v2.01 I/ Information : - Đồ nghề các bạn để hết đâu rùi , lôi ra đi nào :w00t: . Now , Let's go ! Như được lập trình sẵn cứ thế ta làm : Dùng PEid v0.92 để Detect , chúng ta biết chương trình ko bị pack & được viết bằng Microsoft Visual C++ 6.0 . Phù thế là ko phải unpack > sướng . hihiiii :) - Vẫn là động tác quen thuộc : Chạy thử chương trình , chúng ta thấy hiện lên một 1 Dialog Box : “Wellcome to Batch Image Resizer ”. Nhìn xuống dưới 1 chút ta thấy dòng : "Try to register " , nhìn thấy mà tức cả mắt :(( . Nó đồng nghĩa với việc họ chỉ cho chúng ta dùng thử nếu chúng ta ko Register (tức là ta phải đưa money cho họ đó bạn :wacko: ) . Đưa money để buy soft , chúng ta đâu có thói quen này . Và lần này cũng vậy thôi , thông cảm nhé hãng Jklnsoft . "no Money, no Register , and Free all " ==> đó là mục tiêu của chúng ta . Hihiiiii ! :D - OK ! típ nhé . Ở đây ta còn thấy 1 button : Continue , click thử vào xem sao . Oh ! Cái đầu tiên chúng ta cần tìm là chỗ họ bắt ta Regiter , nhìn xuống dưới , Oh ! :w00t: đây rùi , button : Enter Code . Click vào đó , chúng ta sẽ điền các thông tin cần thiết xem nó bảo sao . Ở đây mình nhập là : Email :hoa_dong_noi_06@yahoo.com & Code : 0361985 . Nhấn OK , một cái Nag văng ra , nó làm ta mừng hụt : "Thanks for Registratinon. Please restart Batch Image Resizer " :wacko: . Nhấn tiếp OK , mở lại chương trình ta vẫn thấy hiện Dialog box bắt đăng ký . Như vậy ta suy đoán chương trình sẽ lưu thông tin ta Registed vào Reg rồi check nó mỗi khi ta Run chương trình . :) *** Ok ! nghĩ sao làm vậy .Bây giờ chúng ta hãy load chương trình vào trong OllyDbg . Nếu nó hiện ra 1 bảng thông báo thì cứ nhấn OK . Sau đó click chuột phải chọn Search for / All referenced text strings để tìm chuỗi thông báo trên . ah ! nó đây rùi , double click vào String đó ta được đưa trở lại Olly . Ặc ặc :(( nhìn lướt qua mà thấy toàn là hàm Call MFC , ít manh mối quá . Để coi trong mớ bòng bong String có gì đáng giá ko ? ở đây chúng ta tìm thấy 1 loạt String như sau : Code: Text strings referenced in BatchIma:.text Address Disassembly Text string 00405AAB PUSH BatchIma.0041D35C ASCII "Email" 00405AB4 PUSH BatchIma.0041D348 ASCII "Registration Info" 00405AC6 PUSH BatchIma.0041D334 ASCII "Registration Code" 00405ACF PUSH BatchIma.0041D348 ASCII "Registration Info" 00405AEC PUSH BatchIma.0041D494 ASCII "bono@mail.com" 00405B12 PUSH BatchIma.0041D480 ASCII "54QEKKCHERPL6X8Q" 00405C33 PUSH BatchIma.0041D4B8 ASCII "aaaaaaaa" 00405D98 PUSH BatchIma.0041D4A4 ASCII "0000000000000000" - Chúng ta thấy 2 Template String : Code: 00405AEC PUSH BatchIma.0041D494 ASCII "bono@mail.com" 00405B12 PUSH BatchIma.0041D480 ASCII "54QEKKCHERPL6X8Q" một ý nghĩ chạy qua trong đầu : biết đâu 2 Template String này lại là RU & RS thì sao ? nghĩ sao làm vậy , ta chạy chương trình Batch Image , nhập vào 2 Template String trên , hiện nag , restart lại chương trình , chậc chậc nó vẫn bắt ta Register , như vậy 2 String trên là ko đúng rồi . :sick: Trở lại Olly , ta cứ thử Double click vào Temp String trên xem có khai thác được gì từ đây ko ? Ta được đưa đến đoạn Code sau : :w00t: Code: 00405B12 |. 68 80D44100 PUSH BatchIma.0041D480 ; ASCII "54QEKKCHERPL6X8Q" ==> We're here . 00405B17 |. 50 PUSH EAX 00405B18 |. FFD7 CALL NEAR EDI 00405B1A |. 83C4 08 ADD ESP, 8 00405B1D |. 85C0 TEST EAX, EAX 00405B1F |. 75 0E JNZ SHORT BatchIma.00405B2F 00405B21 |. 68 04DB4100 PUSH BatchIma.0041DB04 - Nhìn xuống phía dưới 1 chút chúng ta sẽ Set BreakPoint tại đây : Code: 00405B58 |. 50 PUSH EAX ; |Arg1 00405B59 |. E8 82000000 CALL BatchIma.00405BE0 ; \BatchIma.00405BE0 ==> Set BreakPoint here . II/ Craking : ***OK, sau khi đặt BP tại đó , chúng ta nhấn F9 để Run chương trình , Olly sẽ Ice tiến trình tại điểm mà ta vừa đặt BP . Chúng ta sẽ Trace Into vào trong hàm Call này nếu bạn muốn xem cơ chế tạo Ser của nó . có thể trace over cũng lấy đc RS : :happy: Code: 00405B59 |. E8 82000000 CALL BatchIma.00405BE0 ; \BatchIma.00405BE0 ==> We're here . Trace Into - 00405BE0 /$ 6A FF PUSH -1 00405BE2 |. 68 D74A4100 PUSH BatchIma.00414AD7 ; SE handler installation 00405BE7 |. 64:A1 0000000>MOV EAX, DWORD PTR FS:[0] 00405BED |. 50 PUSH EAX 00405BEE |. 64:8925 00000>MOV DWORD PTR FS:[0], ESP 00405BF5 |. 83EC 2C SUB ESP, 2C 00405BF8 |. 53 PUSH EBX 00405BF9 |. 56 PUSH ESI 00405BFA |. C74424 0C 000>MOV DWORD PTR SS:[ESP+C], 0 00405C02 |. 8D4424 48 LEA EAX, DWORD PTR SS:[ESP+48] 00405C06 |. BB 01000000 MOV EBX, 1 00405C0B |. 50 PUSH EAX 00405C0C |. 8D4C24 0C LEA ECX, DWORD PTR SS:[ESP+C] 00405C10 |. 895C24 40 MOV DWORD PTR SS:[ESP+40], EBX 00405C14 |. E8 25DF0000 CALL <JMP.&MFC42.#535> 00405C19 |. 8B4C24 08 MOV ECX, DWORD PTR SS:[ESP+8] ==> đưa Input vào ECX . 00405C1D |. C64424 3C 02 MOV BYTE PTR SS:[ESP+3C], 2 00405C22 |. 8B41 F8 MOV EAX, DWORD PTR DS:[ECX-8] 00405C25 |. 83F8 0A CMP EAX, 0A 00405C28 |. 0F8E 98010000 JLE BatchIma.00405DC6 00405C2E |. 83F8 10 CMP EAX, 10 00405C31 |. 7D 0E JGE SHORT BatchIma.00405C41 00405C33 |. 68 B8D44100 PUSH BatchIma.0041D4B8 ; ASCII "aaaaaaaa" 00405C38 |. 8D4C24 0C LEA ECX, DWORD PTR SS:[ESP+C] 00405C3C |. E8 91DE0000 CALL <JMP.&MFC42.#941> 00405C41 |> 8B7424 08 MOV ESI, DWORD PTR SS:[ESP+8] ==> đưa Input vào ESI 00405C45 |. 8D4424 20 LEA EAX, DWORD PTR SS:[ESP+20] 00405C49 |. 33D2 XOR EDX, EDX ==> bắt đầu tính toán với EDX=0 00405C4B |. 2BF0 SUB ESI, EAX ======chương trình sẽ thực hiện vòng lặp này để lấy và check từng char FU mà ta nhập vào====== 00405C4D |> 8D4C14 20 /LEA ECX, DWORD PTR SS:[ESP+EDX+20] 00405C51 |. 8A040E |MOV AL, BYTE PTR DS:[ESI+ECX] ==> đưa S[0] vào AL 00405C54 |. 3C 61 |CMP AL, 61 ==> so sánh S[0] với 61 00405C56 |. 8801 |MOV BYTE PTR DS:[ECX], AL 00405C58 |. 7C 08 |JL SHORT BatchIma.00405C62 ==> nhảy nếu nhỏ hơn 00405C5A |. 3C 66 |CMP AL, 66 ==> so sánh S[0] với 66 00405C5C |. 7F 04 |JG SHORT BatchIma.00405C62 ==> nhảy nếu lớn hơn 00405C5E |. 24 CE |AND AL, 0CE ==> nếu nhỏ hơn thì And tiếp AL với 0CE 00405C60 |. 8801 |MOV BYTE PTR DS:[ECX], AL 00405C62 |> 8A01 |MOV AL, BYTE PTR DS:[ECX] ==> đưa S[0] vào AL 00405C64 |. 3C 41 |CMP AL, 41 ==> so sánh S[0] với 41 00405C66 |. 7C 08 |JL SHORT BatchIma.00405C70 ==> nhảy nếu nhỏ hơn 00405C68 |. 3C 46 |CMP AL, 46 ==> so sánh S[0] với 46 00405C6A |. 7F 04 |JG SHORT BatchIma.00405C70 ==> nhảy nếu lớn hơn 00405C6C |. 2C 42 |SUB AL, 42 ==> nếu nhỏ hơn thì tiếp tục trừ AL cho 42 00405C6E |. EB 02 |JMP SHORT BatchIma.00405C72 00405C70 |> 2C 32 |SUB AL, 32 ==> trừ AL cho 32 00405C72 |> 42 |INC EDX ==> tăng EDX lên 1 00405C73 |. 8801 |MOV BYTE PTR DS:[ECX], AL 00405C75 |. 83FA 10 |CMP EDX, 10 ==> so sánh EDX với 10 00405C78 |.^ 7C D3 \JL SHORT BatchIma.00405C4D ==> tiếp tục vòng lặp nếu nhỏ hơn . =======lặp 16 lần thì check xong & hết vòng lặp thứ nhất====== 00405C7A |. 55 PUSH EBP 00405C7B |. 8D6C24 14 LEA EBP, DWORD PTR SS:[ESP+14] 00405C7F |. 57 PUSH EDI 00405C80 |. B8 06000000 MOV EAX, 6 00405C85 |. 83ED 06 SUB EBP, 6 ========bắt đầu vòng lặp thứ 2 để tạo Rel Ser======== 00405C88 |> 8D70 FA /LEA ESI, DWORD PTR DS:[EAX-6] . BatchIma .00 41D4A4 ASCII " ;00 000 000 000 000 00& quot; - Chúng ta thấy 2 Template String : Code: 00 405 AEC PUSH BatchIma .00 41D494 ASCII "bono@mail.com" 00 405 B12 PUSH BatchIma .00 41D4 80 ASCII. EBX 00 405 BF9 |. 56 PUSH ESI 00 405 BFA |. C74424 0C 00 0>MOV DWORD PTR SS:[ESP+C], 0 00 405 C02 |. 8D4424 48 LEA EAX, DWORD PTR SS:[ESP+48] 00 405 C06 |. BB 01 0 00 000 MOV EBX, 1 00 405 C0B |. 50 PUSH. installation 00 405 BE7 |. 64:A1 00 000 00& gt;MOV EAX, DWORD PTR FS: [0] 00 405 BED |. 50 PUSH EAX 00 405 BEE |. 64:8925 00 000 >MOV DWORD PTR FS: [0] , ESP 00 405 BF5 |. 83EC 2C SUB ESP, 2C 00 405 BF8 |.

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

TỪ KHÓA LIÊN QUAN