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

Cracker Handbook 1.0 part 94 pot

7 145 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 7
Dung lượng 127,75 KB

Nội dung

Đây chính là nguyên đoạn mã dùng để mã hoá và kiểm tra Name và Reg Code. Như vậy chúng ta biết rằng Name nhập vô phải bằng 44 ký tự (có 4 ký tự "-") có dạng XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX (trong đó X là những ký tự chữ, không được phép là số) Nếu name nhập vô ít hơn thì nó cũng jump đến nag "Wrong Registration Code!". Do chỉ cần tìm số Reg code thôi, nên chúng ta tạm dừng ở đây! Nhắc lại phần SI, sau khi nhấn F11, bạn sẽ ở đây: 001B:73DE6414 0FF1594B5E673 Call [User 32! GetwindowtextA] 001B:73DE641A mov ecx, (ebp+10) 001B:73DE641FD push FF 001B:73DE641F E852C0FEF7 Call 77DD2476 Okie, khi tới đây, các bạn nhấn F8 để trace into, các bạn sẽ thấy như sau: 001B: 73DD2476 56 Push ESI 001B: 73DD2477 8BF1 Mov ESI, ECX 001B: 73DD2489 E820000000 Call 73DD249E Tiếp tục nhấn F10 để trace down nhẹ nhàng tới khi bạn gặp đoạn code tương tự như sau: 001B: 77D48000 6A0C Push 0C 001B: 77D48002 680051D977 Push 77D95100 001B: 77D48007 E89DB9FFFF Call 77D439A9 001B: 77D4800C Mov EDI, [EBP+0C] Hé hé, gần kết thúc rồi bạn ạ Ngay tại dòng Call 77D439A9 bạn nhấn F8 để trace into, xong bạn sẽ ở ngay đây: 001B: 77D439A9 68BFEDD677 Push 77D6EDBF 001B: 77D439AE 64A100000000 Mov EAX, FS:[00000000] 001B: 77D439B4 50 Push EAX 001B: 77D439B5 64892500000000 Mov FS:[00000000], ESP Okie, ngay tại dòng 001B: 77D439AE 64A100000000 Mov EAX, FS:[00000000], bạn hãy đánh lệnh D EAX . Điều gì xảy ra, Wow, hào quang chói lọi. Hãy nhìn sang cột DATA của SI, bạn sẽ thấy một dòng text string có các chữ số dạng XXXXXXXX Hãy dịch chuyển con trỏ cuộn màn hình DATA xuống bạn sẽ thấy được số Registration Code của mình. Ở đây hacnho được một số là : XXXXXXXX-VVVVVVVV-JJJJJJJJ-AAAAAAAA-ZZZZZZZZ Đây chính là số Reg Code của bạn, hãy ghi vào giấy và đăng ký lại thử xem. It's now registered User Name: hacnho Registration Code: XXXXXXXX-VVVVVVVV-JJJJJJJJ-AAAAAAAA- ZZZZZZZZ PS: Một số RegCode tham khảo: GYEBDOGC-NFLIKVNJ-KEQBJOKE-XPVSUFXT-ISMBBOII ABCDEFGH-BCDEFGH-ABEJQZKX-GHIJKLMN-ABIBMVIF III. Kết luận Tut đến đây là END. Hẹn gặp trong tut sau. Xem html ở đây: http://vncracking.host.sk/huongdan/Flash_Keeper%20_ver_3_0_hacnho_tut.htm Posted by: MinhHuyen Dec 1 2003, 09:41 AM Hôm nay cũng rỗi rãi nên thử crack chương trình đã được Hacnho crack một cách thành công mỹ mãn này nhưng dùng cách tiếp cận cổ điển và công cụ cổ điển . Theo quan điểm phương Đông theo tư tưởng chính danh của Khổng tử: vua cho ra vua, tôi cho ra tôi ai cũng tu thân tề gia trị quốc tất có ngày bình được thiên hạ . Đó là cách tiếp cận của Hacnho . Bắt đầu từ GetWindowTextA rồi cứ thế tiếp tục theo các lệnh jne để rồi có ngày bình được thiên hạ nghĩa là đi từ gốc đến ngọn . Cách này tuy chậm nhưng chắc . Tuy vậy, theo quan điểm phương Tây, cách tiếp cận hoàn toàn khác hẳn . Chúng ta xác định mục đích cuối cùng trước và sau đấy sẽ làm đủ mọi cách để có thể đạt được mục tiêu đó . Người anh có câu: The end justifies the means là như vậy . Trong tình huống này, mục tiêu của chúng ta là có được màn hình Xin chúc mừng hay tránh cái hộp thoại: "Số serial bạn nhập vào sai rồi" Áp dụng cách tiếp cận này, chúng ta sẽ sử dụng công cụ kinh điển WinDisassembler . Vào String Resources và search thử chuỗi Wrong Registration Code, chúng ta sẽ rơi vào 2 điểm CODE * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0042140C(C) | :0042142C 83F82C cmp eax, 0000002C :0042142F 7D20 jge 00421451 :00421431 6A00 push 00000000 :00421433 6A00 push 00000000 * Possible StringData Ref from Data Obj ->"Wrong Registration Code!" | :00421435 68C0054600 push 004605C0 Như HacNho đã phân tích, nếu bạn cuộn lên một chút thì cạn bạn sẽ thấy eax chứa độ dài của chuỗi serial mà chúng ta nhập vào . Và độ dài tối thiểu của chuỗi này phải là 42 (2Ch). Tiếp tục tìm chuỗi Wrong Registration Code, chúng ta lại rơi vào địa chỉ sau: CODE * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00421468(C) | :004214A7 6A00 push 00000000 :004214A9 6A00 push 00000000 * Possible StringData Ref from Data Obj ->"Wrong Registration Code!" | :004214AB 68C0054600 push 004605C0 Cũng cuộn lên một chút tới địa chỉ 421468 chúng ta thấy : CODE :0042145E E86D880100 call 00439CD0 :00421463 83C404 add esp, 00000004 :00421466 85C0 test eax, eax :00421468 743D je 004214A7 Như vậy, lệnh call 439CD0 chắc chắn là hàm kiểm tra serial number và giá trị trả eax =0 sẽ là sai còn khác 0 chắc là đúng . Nếu thử trace vào lệnh call này thì nghi ngờ của chúng ta càng được khẳng định vì có 2 reference đến lệnh này . Một cái là để kiểm tra serial chúng ta nhập vào còn một cái là để kiểm tra tình trạng license ở đầu chương trình . Nếu muốn crack thì chúng ta chỉ cần đơn giản sửa các lệnh ở 439CD0 thành mov eax,1 ret là xong . Nhưng chẳng phải hacnho nói với chúng ta là có thể tìm được số serial thật hay sao ? Vậy thì tại sao chúng ta không thử nhỉ . Lần này chúng ta vẫn có hai lựa chọn, một là từ địa chỉ 439CD0 chúng ta cuộn dần xuống để tìm các lệnh jump có điều kiện . Hoặc là cách thứ hai : tìm theo mục đích . Vậy mục đích của chúng ta là gì ? Phải rồi : tìm đoạn mã mov eax,1 ret và xor eax,eax ret . Khi tìm được chúng, chúng ta sẽ dò dần lên để tìm lệnh jump có điều kiện . Và chúng ta nhanh chóng tìm được : CODE :00439F7F 8B44244C mov eax, dword ptr [esp+4C] :00439F83 8B4C2408 mov ecx, dword ptr [esp+08] :00439F87 50 push eax :00439F88 51 push ecx * Reference To: MSVCRT._mbscmp, Ord:0159h | :00439F89 FF15C8DA4400 Call dword ptr [0044DAC8] :00439F8F 83C408 add esp, 00000008 :00439F92 C644244405 mov [esp+44], 05 :00439F97 85C0 test eax, eax :00439F99 8D4C2408 lea ecx, dword ptr [esp+08] :00439F9D 7571 jne 0043A010 Vâng không cần phải đủ giỏi tiếng anh để biết mbs là Multi byte String chúng ta cũng có thể nhận thấy cmp là viết tắt của từ compare. Nếu đúng vậy thì eax và ecx sẽ chứa số serial của chúng ta và số serial đúng . Nhưng cái nào là số đúng ? (Nếu muốn crack thì có thể chúng ta đổi lệnh push ecx thành push eax chắc là được ). Nhưng chúng ta muốn fish serial giống Hacnho cơ mà ? Vậy thì chúng ta chỉ cần đơn giản là Load FlashKeeper trong WinDasm, Goto địa chỉ 439F87 và F2 để đặt break point. Sau đó, khi WinDasm break, chỉ cần xem giá trị ở địa chỉ eax và ecx là sẽ nhận thấy ngay số serial mình cần . Sau khi tôi chạy thử thì thấy ecx có vẻ chứa số serial thật . Hee hê, troong thế mà mất thời gian phết . Định múa rìu qua mắt HacNho một tí nhưng tới lúc xong mới biết mình dại . Thôi lần sau xin chừa . . (C)onditional Jump at Address: | :00 4 214 0C(C) | :00 4 214 2C 83F82C cmp eax, 00 000 02C :00 4 214 2F 7D 20 jge 00 4 214 51 :00 4 214 31 6A 00 push 00 000 000 :00 4 214 33 6A 00 push 00 000 000 * Possible StringData. đây: 00 1B: 77D439A9 68BFEDD677 Push 77D6EDBF 00 1B: 77D439AE 64A 100 000 000 Mov EAX, FS: [00 000 000 ] 00 1B: 77D439B4 50 Push EAX 00 1B: 77D439B5 64892 500 000 000 Mov FS: [00 000 000 ], ESP . | :00 4 214 68(C) | :00 4 214 A7 6A 00 push 00 000 000 :00 4 214 A9 6A 00 push 00 000 000 * Possible StringData Ref from Data Obj ->"Wrong Registration Code!" | :00 4 214 AB 68C 005 4 600 push

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN