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

Cracker Handbook 1.0 part 150 pps

6 123 1

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

THÔNG TIN TÀI LIỆU

Nội dung

máy của short jump là EBxx. May mắn là kích thước của short jump này là 2 byte, đúng bằng kích thước của câu lệnh PUSH 00000024 tại địa chỉ 4033A5 (6A24)! Áp dụng công thức tính offset ở trên, xx = 4033C0(địa chỉ đến) - [4033C5(địa chỉ jump) + 2 (kích thước của short jump EBxx)] = 19. Okay, mã máy sẽ là EB19! 6A24 PUSH 00000024 EB19 JMP 004033C0 2/ Chạy Hiew và mở file notepad.exe. Nhấn F4, F5 và nhập vào ".4033A5". Nhấn F3 và thay đổi 6A24 thành EB19, sau đó bấm F9 và F10. Xong, thử chạy lại Notepad và mở một file có kíck thước lớn hơn 64KB xem sao! Copyright (c) by Vicki ĐT (http://www.nhomvicki.net) dòng String Resource ID=00056: "wordpad.exe" và double click lên nó. Để xem chúng ta có gì nào?! * Possible Reference to String Resource ID=00036: "&f" | :004033A5 6A24 push 00000024 ; rất quan trọng :004033A7 A1B4504000 mov eax, dword ptr [004050B4] :004033AC 56 push esi :004033AD 50 push eax :004033AE FF7508 push [ebp+08] * Reference To: USER32.MessageBoxA, Ord:01ACh | :004033B1 FF15A8644000 Call dword ptr [004064A8] ; hiện messagebox :004033B7 83F806 cmp eax, 00000006 ; đã chọn YES hay NO? (IDYES=6) :004033BA 0F85A7000000 jne 00403467 ; NO -> thoát :004033C0 6804010000 push 00000104 ; YES -> mở file bằng WordPad :004033C5 8D858CFDFFFF lea eax, dword ptr [ebp+FFFFFD8C] :004033CB 837D1001 cmp dword ptr [ebp+10], 00000001 :004033CF 1BFF sbb edi, edi :004033D1 50 push eax :004033D2 83C737 add edi, 00000037 * Possible Reference to String Resource ID=00056: "wordpad.exe" | :004033D5 6A38 push 00000038 :004033D7 FF3540554000 push dword ptr [00405540] Chúng ta chỉ cần thay PUSH 00000024 tại địa chỉ 4033A5 thành lệnh nhảy ngắn đến địa chỉ 4033C5. Mã máy của short jump là EBxx. May mắn là kích thước của short jump này là 2 byte, đúng bằng kích thước của câu lệnh PUSH 00000024 tại địa chỉ 4033A5 (6A24)! Áp dụng công thức tính offset ở trên, xx = 4033C0(địa chỉ đến) - [4033C5(địa chỉ jump) + 2 (kích thước của short jump EBxx)] = 19. Okay, mã máy sẽ là EB19! 6A24 PUSH 00000024 EB19 JMP 004033C0 2/ Chạy Hiew và mở file notepad.exe. Nhấn F4, F5 và nhập vào ".4033A5". Nhấn F3 và thay đổi 6A24 thành EB19, sau đó bấm F9 và F10. Xong, thử chạy lại Notepad và mở một file có kíck thước lớn hơn 64KB xem sao! Copyright (c) by Vicki ĐT (http://www.nhomvicki.net) How to crack POPCAP Games : 1. TypeSHARK ver 1.00 Ph ầ n m ề m: TypeSHARK ver 1.00 http://www.popc ap.com B ả o v ệ : Trial version Công cụ : -Softice 4.xx (công cụ để debug chương trình) -IDA hay W32DASM -Các công cụ Hex Editor (HexWorkshop) Phương pháp crack: patch M ứ c đ ộ ()D ễ (x)V ừ a ()Hơi khó ()R ấ t khó File c ầ n crack WinTS.exe Cracker: Computer_Angel Website: http:// kickme.to/VCT 1. Kiểm tra đối tượng: a) Chạy thử WinTS.exe, bạn sẽ thấy những vấn đề sau: + Màn hình intro có dòng chữ “REGISTER TYPESHARK”, “FREETRIAL VERSION” + Khi nhấn vào “REGISTER TYPESHARK”, một hộp thoại nhập Username+Serial hiện lên. Nhập thử bất kì username+pass thì nhận được thông báo “The registration code you have entered is incorrect ” + Sau khi chơi, không ghi tên vào bảng HALL FAME được. + Khi thoát ra, có hiện hộp thoại quảng cáo. b) Dùng bất cứ một hex editor nào đó, load tập tin WinTS.exe vào, tìm thử một vài chuỗi mà bạn đã ghi nhận được ở các bước trên(Ở đây tôi dùng công cụ thông dụng là HexWorkshop 4.00). Ta tìm thử chuỗi “registration code you”, ta tìm được ở vị trí 00111B24 của tập tin. 2. Nhận xét: + WinTS.exe có khả năng Register (vì có hộp thoại đăng ký) + Không bị unpack Lý do là vì bạn có thể tìm được các chuỗi mà bạn thấy trong game. 3. Bắt đầu công việc: a) Dùng IDA để dịch ngược WinTS.exe sang mã máy. Sau khi dịch xong, ta tìm tới Tab “Strings”, nhấn Alt-T để gõ vào chuỗi cần tìm kiếm. Gõ vào chuỗi “The registration code you have”. IDA sẽ nhảy tới vị trí chuỗi cần tìm trong Tab “Strings”. b) Double click vào chuỗi vừa tìm ra đó, bạn sẽ được chuyển tới cửa sổ chứa thông tin sau: aTheRegistratio db 'The registration code you have entered',0Ah .rdata:00511B20 ; DATA XREF: .text:0043EE54 .rdata:00511B20 db 'is incorrect. Please try again.',0 .rdata:00511B67 db 0 ; Như vậy, ta biết được WinTS.exe đọc chuỗi “The registration ” chỉ một lần ở vị trí mã lệnh là 0043EE54. c) Chuyển sang Tab IDA-View (Chứa mã asm của WinTS vừa dịch ngược), nhảy tới vị trí mã lệnh 0043EE54 bằng cách gõ phím “G”, rồi nhập vào 0043EE54 và nhấn Enter, ta được đoạn mã sau: text:0043EE54 push offset aTheRegistratio ; "The registration code you have entered\n" .text:0043EE59 mov byte ptr [ebp-4], 3 .text:0043EE5D call sub_407250 Nhìn lên phía trên 1 xíu, ta thấy có đoạn so sánh .text:0043EE30 push eax .text:0043EE31 call dword ptr [edx+54h] < Lưu ý .text:0043EE34 test al, al .text:0043EE36 jnz short loc_43EE8C < Lưu ý .text:0043EE38 push 1 .text:0043EE3A sub esp, 1Ch .text:0043EE3D mov ecx, esp .text:0043EE3F mov [ebp+8], esp .text:0043EE42 push offset aOk ; "OK" .text:0043EE47 call sub_407250 .text:0043EE4C sub esp, 1Ch .text:0043EE4F mov ecx, esp .text:0043EE51 mov [ebp-14h], esp .text:0043EE54 push offset aTheRegistratio ; "The registration code you have entered\n" d) Vậy chúng ta có 2 vị trí cần lưu ý. Ta phải kiểm tra xem chức năng của 2 vị trí đó là gì bằng cách dùng Softice. Ta kích hoạt Softice, dùng SymBol Loader để load tập tin WinTS.exe vào, và nhấn vào “Load Symbols” trên toolbar để chạy tập tin > Cửa sổ softice debug sẽ hiện lên. Ta đặt break point tại vị trí lệnh cần lưu ý ở trên bằng cách gõ vào BPX 0043EE31 và nhấn F5. Chương trình WinTS sẽ chạy bình thường, chọn “REGISTER TYPESHARK”, nhập username+mã bất kì vào và nhấn OK. Khi đó cửa sổ Softice debug sẽ bật lên ngay tại vị trí 0043EE31, nhấn F10 để chạy lệnh tại ví trí đó, tiếp tục nhấn F10 tới khi vệt sáng dừng lại tại vị trí 0043EE36. Đây là lệnh nhảy khi AL không bằng 0, mà ta thấy AL=0, vậy ta đổi cờ Z bằng cách gõ vào R, và dùng Tab di chuyển con nháy tới hàng ở phía trên cao dưới hàng ESI=xxxxxxxxx . Dùng mũi tên di chuyển con nháy tới chữ Z và nhấn Insert. Để ý, sau khi nhấn xong, ở vị trí lệnh 43EE36 có mũi tên chỉ xuống, đó là biểu thị câu lệnh này sẽ nhảy đến vị trí chỉ định. Ta nhấn F5 và xem kết quả, ta thấy chương trình WinTS có hiển thị như sau: + Dòng chữ “FREE TRIAL version” > “REGISTER VERSION” + Dòng “REGISTER TYPESHARK” o còn nữa. Như vậy, ta có nhận xét: + Hàm call ở vị trí 43EE31 có nhiệm vụ kiểm tra username+password nhập vào và trả về kết quả AL=1 nếu hợp lệ. e) Thoát khỏi WinTS, nhấn vào nút “Load Symbols” để chạy lại 1 lần nữa, cũng nhập lại số serial+user tùy ý.Cửa sổ Softice debug lại hiện ra, lần này bạn nhấn F8 để debug vào trong hàm kiểm tra. Vệt sáng sẽ chuyển sang địa chỉ là 4A3D20, nhấn F9 để đặt break point tại địa chỉ này, sau đó nhấn F5 để chạy chương trình bình thường. f) Thoát khỏi WinTS, nhấn vào nút “Load Symbols” để chạy lại 1 lần nữa, lần này ta thấy màn Softice Debug hiện ra, vệt sáng nằm tại vị trí 4A3D20. > Nhận xét WinTS gọi hàm này khi: + Bắt đầu chạy để kiểm tra, kết quả trả về AL=1 thì có nghĩa đã đăng ký rồi. + Khi chọn mục đăng ký và nhập số serial+username. g) Nhấn F10 để thi hành từng câu lệnh, cho tới khi vệt sáng nằm ngay lệnh RET: .text:004A406F pop esi .text:004A4070 mov al, bl < Lưu ý .text:004A4072 pop ebx .text:004A4073 call loc_4EE297 .text:004A4078 mov esp, ebp .text:004A407A pop ebp .text:004A407B retn 8 < vệt sáng nằm ngay đây. . :00 403 3C0 6 804 01 0 00 0 push 00 00 0 10 4 ; YES -> mở file bằng WordPad :00 403 3C5 8D858CFDFFFF lea eax, dword ptr [ebp+FFFFFD8C] :00 403 3CB 837D 10 01 cmp dword ptr [ebp + 10 ], 00 000 0 01 :00 403 3CF 1BFF sbb. FF15A864 400 0 Call dword ptr [00 406 4A8] ; hiện messagebox :00 403 3B7 83F 806 cmp eax, 00 000 006 ; đã chọn YES hay NO? (IDYES=6) :00 403 3BA 0F85A 700 000 0 jne 00 403 467 ; NO -> thoát :00 403 3C0 6 804 01 0 00 0. :00 403 3D1 50 push eax :00 403 3D2 83C737 add edi, 00 000 037 * Possible Reference to String Resource ID =00 056: "wordpad.exe" | :00 403 3D5 6A38 push 00 000 038 :00 403 3D7 FF35 405 5 400 0

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

TỪ KHÓA LIÊN QUAN