Thứ Năm, 23 tháng 12, 2010

How to crack WinZip® Version 9.0 PRE-RELEASE BETA TEST VERSION (5661)

Phần mềm: WinZip 9.0 beta2
Bảo vệ: Unregistered Version/ Name Serial.
Công cụ :
-W32DASM ver 893
-OllyDBG 1.09b
Phương pháp crack: Find real serial
Mức độ ()Dễ (x)Vừa ()Hơi khó ()Rất khó
File cần crack WINZIP32.EXE
Cracker: hacnho (hacnho@hopthu.com)
Website: http://kickme.to/VCT/

I. Giới thiệu

Chào các bạn, lâu lắm rồi hacnho mới viết tut mới, dạo này đang chạy XP nên lười cài SI. Cho nên thích crack các soft nhỏ bằng Olly 1.09b hơn. Hôm nay WinZip đã ra bản 9.0 beta 2 build 5611. Tuy là nó không có gì thay đổi so với bản beta 1 nhưng tâm lý mọi người thích cái mới hơn. Do đó yêu cầu đặt ra là phải crack cho nó nóng sốt . Okie, chúng ta bắt đầu crack thôi. Yêu cầu lần crack này là tìm được real serial ứng với name nhập vào. Từ đó tìm hiểu thêm về đoạn mã để tiện việc code keygen.

II. Bắt tay vào crack Winzip 9.0 beta 2

Đầu tiên, sau khi cài đặt xong, ta chạy Winzip 9.0 beta 2 thì một nag hiện lên bắt nhập số serial. Ở đây hacnho nhập vào : Name = hacnho, Regcode bằng 15101983. Một nag văng ra “Incomplete or incorrect information”. Do chúng ta cầm tìm real serial tương ứng với Name = hacnho nên dùng OllyDBG 1.09b có plugin Command Bar load file WINZIP32.EXE lên. Righ click tại phần main của Olly, chọn Search for --->All referenced text string. Chọn search for text. Gõ vào một chuỗi của câu thông báo mà Winzip cho ta là “Incomplete”. Wow, không có gì xảy ra cả. Hic hic, mất cả 5 phút để kiếm cái string “Incomplete or incorrect information” trong Olly mà chả thấy. Ta đành nhờ chàng WinDASM 8.93 xem sao. Okie, mở WinZip bằng Wdasm, vào Ref menu kiếm dòng “Incomplete or incorrect information”, xong rồi double click vào dòng string để nhảy ra main của WinDasm. Xem địa chỉ của nó là bao nhiêu. Hà hà thì ra hắn nằm ngay tại Code Data : 0040D202. Bây giờ ta đóng Wdasm lại. Vào main của OllyDBG, gõ Ctrl+G, nhập vào 0040D202. Bạn sẽ thấy những dòng tương tự như vầy :

0040D202 |> E8 C6F7FFFF CALL WINZIP32.0040C9CD

0040D207 |. 68 8E020000 PUSH 28E

0040D20C |. E8 97C10500 CALL WINZIP32.004693A8

Bây giờ bạn di chuyển thanh cuộn lên vài hàng cho đến khi gặp những dòng sau:

0040D18C |. FF15 9C954B00 CALL DWORD PTR DS:[<&USER32.GetDlgItemTextA>] ; \GetDlgItemTextA

0040D192 |. 56 PUSH ESI

0040D193 |. E8 9EC00500 CALL WINZIP32.00469236

0040D198 |. 56 PUSH ESI

0040D199 |. E8 C1C00500 CALL WINZIP32.0046925F

0040D19E |. 803D 8CA14D00 >CMP BYTE PTR DS:[4DA18C],0

0040D1A5 |. 59 POP ECX

0040D1A6 |. 59 POP ECX

0040D1A7 |. 74 59 JE SHORT WINZIP32.0040D202 -->Nhận name nhập vào

0040D1A9 |. 803D B8A14D00 >CMP BYTE PTR DS:[4DA1B8],0

0040D1B0 |. 74 50 JE SHORT WINZIP32.0040D202 -->Nhận serial name nhập vào

0040D1B2 |. E8 6DFCFFFF CALL WINZIP32.0040CE24 --> Gọi đoạn mã tạo key

0040D1B7 |. 84C0 TEST AL,AL --> so sánh serial nhập và sinh ra

0040D1B9 |. 74 47 JE SHORT WINZIP32.0040D202 --> bắn nag

0040D1BB |. 57 PUSH EDI



Vậy chúng ta đã xác định được WinZip sử dụng hàm API GetDlgItemTextA để xét serial và name nhập vào. Yeah, chúng ta đã biết được breakpoint cần thiết để trace. Bây giờ bạn hãy nhấn F2 (tương tự F7 trong SoftIce) để toogle breakpoint tại dòng 0040D18C . Bạn nhấn F9 (tương tự F5 trong SoftIce) để chạy. Cái nag bắt đăng ký bật lên. Nhập vào name là hacnho, serial là 15101983. Nhấn OK. Waa, Olly Ice tại đây 0040D18C. Bạn bắt đầu nhấn F8 (tương tự F10 trong SoftIce) để trace downward. Khi trace tới dòng:

0040D1B2 |. E8 6DFCFFFF CALL WINZIP32.0040CE24 --> Gọi đoạn mã tạo key

0040D1B7 |. 84C0 TEST AL,AL --> so sánh serial nhập và sinh ra

Ta nhận thấy rằng Winzip gọi hàm kiểm tra key ngay trước dòng test al, al. He he ta cần xem cái đoạn đó nó tạo key ra sao. Okie bạn nhấn F7 (tương tự F8 trong SoftIce) để nhảy vào trong đoạn call này. Bạn sẽ thấy những dòng này sau đó:

0040CE24 /$ 55 PUSH EBP

0040CE25 |. 8BEC MOV EBP,ESP

0040CE27 |. 81EC 40030000 SUB ESP,340

0040CE2D |. A1 B06A4D00 MOV EAX,DWORD PTR DS:[4D6AB0]

Tiếp tục trace downward, đến đoạn:

0040CE8E |> 0FB603 /MOVZX EAX,BYTE PTR DS:[EBX]

0040CE91 |. 50 |PUSH EAX

0040CE92 |. E8 41270900 |CALL WINZIP32.0049F5D8

0040CE97 |. 85C0 |TEST EAX,EAX

0040CE99 |. 59 |POP ECX

0040CE9A |. 74 05 |JE SHORT WINZIP32.0040CEA1

0040CE9C |. 8A03 |MOV AL,BYTE PTR DS:[EBX]

0040CE9E |. 8807 |MOV BYTE PTR DS:[EDI],AL

0040CEA0 |. 47 |INC EDI

0040CEA1 |> 43 |INC EBX

0040CEA2 |. 803B 00 |CMP BYTE PTR DS:[EBX],0

0040CEA5 |.^75 E7 \JNZ SHORT WINZIP32.0040CE8E

bạn sẽ phải trace nhiều lần. Tại sao, hì...Lý do là đoạn này sẽ xét từng ký tự, để tạo ra số serial tương ứng với mỗi ký tự. Do chỉ cần tìm real serial tôi không đi sâu vào phần phân tích cách tạo key. Tiếp tục chờ Olly trace vòng vòng cái đoạn mã này 6 lần (ứng với sáu ký tự h a c n h o). Bạn tiếp tục trace từ từ cho tới đoạn mã này:

0040CF66 |. 50 PUSH EAX

0040CF67 |. 56 PUSH ESI

0040CF68 |. E8 51F4FFFF CALL WINZIP32.0040C3BE

0040CF6D |. 8D85 C0FCFFFF LEA EAX,DWORD PTR SS:[EBP-340] --> hiện real serial : BCDC063C

0040CF73 |. 50 PUSH EAX

bạn khỏi cần d EBP-340 để thấy real serial làm chi cho cực. Các cửa số của OllyDBG tự động hiện ra chuỗi ASCII có số serial hà :

0012EE5C 004DA18C ASCII "hacnho"

0012EE60 0012EE70 ASCII "BCDC063C"

0012EE64 004DA18C ASCII "hacnho"

0012EE68 004DA1B8 ASCII "15101983"

Okie, Số serial thực ứng với Name= hacnho là BCDC063C. Thế là WinZip9.0 beta2 đã bị crack rồi đó.

Lưu ý: các bạn nếu dùng SoftICe để crack mà không thích Olly thì hacnho có mấy lời khuyên sau đây:

+ WinZip 9.0 beta 2 có 13 đoạn Call sử dụng hàm API Getdlgitemtexta. Do đó nếu bạn chỉ đặt khơi khơi breakpoint Getdlgitemtexta thì nên nhớ chỉ nhấn F5 một lần để nó Ice tại đoạn mã nhập Name và Serial. Nếu tuỳ tiện nhấn F5 vài lần thì SoftIce sẽ dẫn bạn tới Xômali luôn đó.

+Olly có giao diện trực quan, dễ analyze, do đó ta dễ dàng tìm ra breakpoint cần thiết. Còn thằng SI thì không nên rất khó đặt breakpoint. Muốn đặt chính xác bạn phải hiểu rõ cấu trúc của các hàm API.

III. Kết luận

Qua tut này ta học được một điều, cần phải linh động dùng các soft bổ sung cho nhau, sẽ mang lại kết quả hơn cả mong đợi.

--------------------------------------------------------------------------------------------

Không có nhận xét nào:

Đăng nhận xét