Founder: Computer_Angel, LVH, hacnho, hhphong. Super Mod: Infinite, deux. Moderator: anh_surprise, rongchaua, Zombie, tdlan83, Bluebird. Greets : Cracker Group : _ vncracking: NVH(c), Softcracker_vn, luucorp, tomcrack, tnHuan. _ vicki: DT. _ vietcrack: Pham Thai. _ Others: CVN_cracker, FunnyCracker Hacker : _HVA : LeonHart, tykhung, mudres, Leon, TTL, JAL, homethieugia, Viper _VHF: lieumang, CL, bmksc. _WhatVN: CuongLong, White_hat. _HKC: LPTV. _PTV5online: trunghau How to crack WinZip(R) Version 9.0 PRE-RELEASE BETA TEST VERSION (5480) Ph ầ n m ề m: WinZip 9.0 beta B ả o v ệ : Unregistered Version Công c ụ : -W32DASM ver 893 - Các công cụ Hex Editor (Hiews 660) Phương pháp crack: patch M ứ c đ ộ ()D ễ (x)V ừ a ()Hơi khó ()R ấ t khó File c ầ n crack WINZIP32.EXE Cracker: hacnho Website: http:// kickme.to/VCT I. Giới thiệu _WinZip(R) Version 9.0 PRE-RELEASE BETA TEST VERSION (5480) là phiên bản mới nhất của hãng WinZip Computing, Inc. Cũng giống như các phiên bản trước, Winzip 9.0 beta đều cho người sử dụng được quyền dùng thử 30 day, sau đó phải mua với giá 29$ tương đương 500000 ngàn VND. Theo như quảng cáo của hãng này thì phiên bản này tính năng vượt trội hơn các phiên bản trước như 7.0, 8.0, 8.1 Nhưng sau khi test tôi thấy cũng vậy, có hơn chăng là cái nag screen bắt reg được làm đẹp hơn với giao diện đồ họa :D. Cái dỡ hơn nữa của phiên bản này là quá trình tạo key vẫn không thay đổi và lại không được pack lại. Do đó chúng ta crack nó quá dễ dàng he he. Okie chúng ta bắt đầu crack. II. Bắt tay vào crack Winzip 9.0 beta _Lưu ý : Nhớ sao lưu một bản dự phòng :D. _Đầu tiên bạn chạy Winzip. Một cái nag màu mè hiện ra bắt bạn đăng ký. Ở đây tôi nhấn vào command button "Enter Registration Code ". Một cái nag khác hiện ra. Tôi nhập vào ô Name : hacnho Registration # : 15101983 _Một nag văng ra "Incomplete or incorrect information". Okie bạn nhớ lấy nó. _Dùng WinDasm 893 để Disassembly file WINZIP32.EXE. Chờ WinDasm Disassembly xong, bạn vào menu String Data Ref tìm dòng "Incomplete or incorrect information". Double click vào nó. Đóng menu String Data Ref lại. Bây giờ bạn đang ở đây * Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:0040CDC8(C), :0040CDD1(C), :0040CDDA(C) | :0040CE23 E8BDF7FFFF call 0040C5E5 * Possible Reference to String Resource ID=00654: "Incomplete or incorrect information" | :0040CE28 688E020000 push 0000028E << Bạn đang ở đây :0040CE2D E80AAA0500 call 0046783C :0040CE32 50 push eax :0040CE33 53 push ebx :0040CE34 6A3D push 0000003D :0040CE36 E857890400 call 00455792 :0040CE3B 83C410 add esp, 00000010 :0040CE3E FF0520604D00 inc dword ptr [004D6020] :0040CE44 833D20604D0003 cmp dword ptr [004D6020], 00000003 :0040CE4B 0F85F8000000 jne 0040CF49 :0040CE51 6A00 push 00000000 _Bây giờ bạn hãy di chuyển chuột lên trên vài dòng bạn sẽ thấy như sau : * Reference To: USER32.GetDlgItemTextA, Ord:0113h | :0040CDAD FF1598754B00 Call dword ptr [004B7598] :0040CDB3 56 push esi :0040CDB4 E811A90500 call 004676CA :0040CDB9 56 push esi :0040CDBA E834A90500 call 004676F3 :0040CDBF 803DE0814D0000 cmp byte ptr [004D81E0], 00 :0040CDC6 59 pop ecx :0040CDC7 59 pop ecx :0040CDC8 7459 je 0040CE23 < Nhận vào Name do ta nhập vào (ở đây là hacnho) :0040CDCA 803D0C824D0000 cmp byte ptr [004D820C], 00 :0040CDD1 7450 je 0040CE23 < Nhận vào Registration Code do ta nhập vào (ở đây là 15101983) :0040CDD3 E864FCFFFF call 0040CA3C << Gọi hàm tính ra serial thật so với Name vừa nhập :0040CDD8 84C0 test al, al << Kiểm tra :0040CDDA 7447 je 0040CE23 << Chú ý (nhảy nếu sai Bắn ra nag) :0040CDDC 57 push edi :0040CDDD 6804774B00 push 004B7704 :0040CDE2 BFE8764B00 mov edi, 004B76E8 :0040CDE7 57 push edi :0040CDE8 E8715A0500 call 0046285E :0040CDED 56 push esi :0040CDEE 68D8854B00 push 004B85D8 :0040CDF3 57 push edi :0040CDF4 E8655A0500 call 0046285E :0040CDF9 68F0764B00 push 004B76F0 :0040CDFE 6A00 push 00000000 :0040CE00 6A00 push 00000000 :0040CE02 6810774B00 push 004B7710 :0040CE07 E8495A0500 call 00462855 :0040CE0C A124604D00 mov eax, dword ptr [004D6024] :0040CE11 83C428 add esp, 00000028 :0040CE14 85C0 test eax, eax :0040CE16 7407 je 0040CE1F :0040CE18 50 push eax _Okie chỗ cần crack ở đây là chúng ta "thịt" hàm Call 0040CA3C vì đây là hàm có nhiệm vụ kiểm tra Name và Reg Code nhập vào và trả về kết quả AL=1 nếu hợp lệ, còn nếu sai thì AL=0. Như vậy chúng ta cần patch ở chỗ là dù nhập đúng hay nhập sai thì vẫn trả về giá trị AL=1. Bạn có hiểu được không vậy ? Nếu hiểu thì ta tiếp tục. Bây giờ bạn di chuyển vệt sáng tới chỗ :0040CDD3 E864FCFFFF call 0040CA3C _Nhìn lên thanh công cụ của WinDasm bạn thấy ô có chữ CALL sáng lên, bạn click vào đó. Bạn đang ở tại đây khi click xong. * Referenced by a CALL at Addresses: |:00401063 , :00404578 , :00404AC2 , :0040CDD3 , :00459245 | :0040CA3C 55 push ebp << Bạn đang ở đây :0040CA3D 8BEC mov ebp, esp :0040CA3F 81EC40030000 sub esp, 00000340 :0040CA45 A1204B4D00 mov eax, dword ptr [004D4B20] :0040CA4A 334504 xor eax, dword ptr [ebp+04] :0040CA4D 803DE0814D0000 cmp byte ptr [004D81E0], 00 :0040CA54 8945FC mov dword ptr [ebp-04], eax :0040CA57 7507 jne 0040CA60 :0040CA59 32C0 xor al, al :0040CA5B E945020000 jmp 0040CCA5 _Ý nghĩa của nguyên đọan này là tính ra Reg Code ứng với Name nhập vào. Do vì ta chọn phương pháp patch nên ta cần phải "chơi đểu" một tí là cho nó đẩy cho nó giá trị AL=1 (đúng) và đẩy ngược nó về :D. Vậy ta làm như sau: :0040CA3C 55 push ebp > đổi thành B0 :0040CA3D 8BEC mov ebp, esp > đổi thành 01C3 _Nó sẽ ra là : mov eax,1 (B001) ret (C3) _Với cách làm này đọan hàm này sẽ không còn tính đến đọan code phía sau nữa mà vội vàng gán cho AL=1 và quay về liền. _Ngay tại dòng :0040CA3C 55 push ebp bạn sẽ thấy được offset là 0000CA3C và tương tự cho dòng :0040CA3D ta sẽ có offset là 0000CA3D. Dùng Hiews 660 để đổi 55 B0 và 8BEC thành 01C3. Nhấn F9 để lưu, F10 thóat. Sau đó đăng ký lại xem. Phiên bản Winzip 9.0 mới nhất sẽ là của bạn, nó chấp nhận mọi serial mà bạn nhập vào, Xin chúc mừng. ************ _Lưu Ý: tôi giải thích một số thuật ngữ Assembly dùng trong bài AX là thanh ghi tích lũy (Accumulator register) 16 bit thuộc nhóm thanh ghi đa dụng (General Register), thanh ghi này có thể là một thanh 16 bit hoặc là hai thanh ghi 8 bit: AX= AH + AL. Trong tut này thì các bạn đã gặp thanh ghi AL. Thanh ghi AL là thanh ghi bytes thấp (0 đến 7). Đối với CPU 80386 thì thanh AX có thể kéo dài đến 32 bit tạo thành thanh ghi EAX. Thanh ghi AX là thanh ghi thường dùng để lưu kết quả các phép tóan nhân, chia, các phép tóan số học, logic và chuyển data. . :00 40CE3B 83C 4 10 add esp, 00 000 01 0 :00 40CE3E FF05 206 04D 00 inc dword ptr [00 4D 602 0] :00 40CE44 833D 206 04D 000 3 cmp dword ptr [00 4D 602 0], 00 000 003 :00 40CE4B 0F85F 800 000 0 jne 00 40CF49 :00 40CE 51. 68D8854B 00 push 00 4B85D8 :00 40CDF3 57 push edi :00 40CDF4 E8655A0 500 call 00 46285E :00 40CDF9 68F0764B 00 push 00 4B76F0 :00 40CDFE 6A 00 push 00 000 000 :00 40CE 00 6A 00 push 00 000 000 :00 40CE02 6 8 10 774B 00. 6 8 10 774B 00 push 00 4B7 7 10 :00 40CE07 E8495A0 500 call 00 462855 :00 40CE0C A124 604 D 00 mov eax, dword ptr [00 4D 602 4] :00 40CE 11 83C428 add esp, 00 000 028 :00 40CE14 85C0 test eax, eax :00 40CE16 7 407 je 00 40CE1F