Hướng dẫn crack winrar bằng 1 số tool

Bạn hiểu biết về ASM bạn muốn dùng kiến thức ASM để crack các phần mềm, bạn hãy tham khảo qua bài viết này nhé:
Bài viết được sưu tầm từ blog của bạn Việt Hải tại địa chỉ:

http://vn.myblog.yahoo.com/viethai0803/

I. TÓM TẮT CHIẾN LƯỢC
WinRAR là phần mềm nén file nỗi tiếng do Alexander Rohal sáng lập. Để có được bản WinRAR hoàn hảo, bạn phải tìm cách crack chúng sao cho:

1. Hộp thoại please purchase WinRAR license không còn hiển thị (hình 1, phần II.1)
2. Dòng chữ “evaluation copy” và phần “help>about – 40 days trial copy ” không còn xuất hiện (hình 2, phần II.2).
3. Xử lý phần About, làm cho phần này xuất hiện tên người crack (hình 4.c, phần IV).

1. Công cụ:

a. W32Dasm (Click here to download W32Dasm): Tìm địa chỉ offset (address offset) để patch dựa trên chuỗi thông tin – chuỗi được xem như chìa khoá .

b. WinHex (Click here to download WinHex): Chỉnh sửa byte và phần cho hiển thị tên cracker trong phần About.

  • Nên dùng W32Dasm Version 8.93 đã được fix rồi (trong menu “Edit” có thêm tab patch), nếu bạn có trong tay bản chưa được fix, bạn phải cần thêm phần mềm WinHex để sửa byte.
  • Download: W32Dasm Version 8.93 đã được fix, WinHex.
  • File sẽ crack: File WinRAR.exe. Bạn hãy sao 1 bản WinRAR.exe để dự phòng trường hợp làm hư file.

2. Tìm address cần crack WinRAR. Ở phần này ta có 2 công việc:

  • Tìm address offset chứa thông tin về hộp thoại “please purchase WinRAR license”.
  • Tìm address offset chứa thông tin về “about” và “evaluation copy”.

3. Chỉnh sửa byte, hiển thị tên cracker trong phần about:

  • Dùng WinHex để chỉnh sửa.

Ta sẽ lần lượt xử lý 3 phần trên. Chú ý, các con số dưới đây đều sử dụng dạng HEXA (ví dụ mã của JNE là hex=75, byte=117)

II. TÌM ADDRESS CODE DATA VÀ OFFSET ĐỂ CRACK

Ở phần này ta có 2 công việc:

  • Tìm address code data & offset chứa thông tin về hộp thoại “please purchase WinRAR license”.
  • Tìm address code data & offset chứa thông tin về “about” và “evaluation copy”.

Còn việc hiển thị tên cracker trong phần about ta sẽ tính sau.

1. Tìm address code data & offset chứa thông tin về hộp thoại “please purchase WinRAR license”.

WinRAR cho phép bạn sử dụng thử sản phẩm trong vòng 40 ngày sau khi cài đặt, nếu vượt quá giới hạn thời gian này thì mỗi lần sử dụng, WinRAR sẽ hiển thị hộp thoại “please purchase WinRAR license” gây cảm giác rất khó chịu. Công việc của ta là phải tìm patch tại address offset chứa thông tin về hộp thoại này để nó không còn xuất hiện nữa.

Bây giờ, bạn hãy cài đặt WinRAR. Sau khi cài đặt xong, bạn khởi động WinRAR rồi tắt nó đi. Kế tiếp là tăng đồng hồ hệ thống lên khoảng 2 tháng xong lại khởi động WinRAR lần nữa xem sao ? Nó sẽ xuất hiện hộp thoại “please purchase WinRAR license” như hình 1 thế này.

1p1

Mở W32Dasm lên, vào menu “File > Open file disassemble…” Trong hộp thoại open, bạn cho load file WinRAR.exe. Khi W32Dasm hoàn tất việc load file, bạn vào menu “PE Information” (đối với W32Dasm đã được fix), hoặc menu “Refs” (nếu bản W32Dasm chưa fix), chọn tab “String data references”. Bạn sẽ được hộp thoại search như hình 1.1.

Nhập vào ô Search chuỗi “REMINDER”, xong ấn nút search để tiến hành dò tìm. Nếu trong box search có chứa chuỗi này thì nó sẽ hiển thị với thanh màu xanh sáng trong hình 1.1.

1p2

Xong dùng chuột nhấp kép vào dòng chữ xanh sáng đó để W32Dasm nhảy đến vị trí chứa chuỗi REMINDER (hình 1_2. Nhớ nhấp kép 1 lần thôi bởi có 2 address offset chứa chuỗi REMINDER).

1p3

Tắt box search, trong nền W32Dasm bạn dịch chuyển vệt sáng lên phía trên vài chục dòng (tôi patch WinRAR 3.70 beta 2 là khoảng 35 dòng). Bạn sẽ thấy như hình 1_3 sau:

1p4

Referenced by a (U)nconditional or © onditional Jump at Address:
|:0043F117 ©
|
0043F797 833D F0764C00 CMP DWORD PTR [004C76F0],00000000043F0A4
0043F79E 757D JNE 0043F81D
0043F7A0 8D95A4FAFFFF LEA EDX, DWORD PTR [EBP+FFFFFAA4]
0043F7A6 B8A85A4C00 MOV EAX, 004C5AA8
0043F7AB 33C9 XOR ECX, ECX
0043F7AD E82E7A0100 CALL 004571E0

Hãy để ý đến dòng: “0043F79E 757D JNE 0043F81D”. Bạn hãy đưa vệt sáng về dòng này. JNE chính là mã kiểm tra xem WinRAR có được đăng kí chưa đấy (nếu chưa đăng ký, nó sẽ bật hộp thoại “please purchase WinRAR license” khó chịu như hình 1).

Bây giờ, đơn giản là bạn thay đổi JNE thành JE là xong (ý nghĩa của je và jne tôi sẽ giải thích thêm trong phần dưới III). Bạn hãy nhìn xuống phía dưới taskbar xem address offset của nó là bao nhiêu (chú ý: phải để vệt sáng tại Jne).

Trong hình 1_4, bạn thấy 2 địa chỉ:

  • CodeData: 43F79E —> Address1a_Jne
  • Offset: 3ED9E —> Address1b_Jne

Tôi tạm gọi CodeData là Address1a_Jne và Offset là Address1b_Jne. Bạn hãy lấy giấy ra ghi lại 1 trong 2 địa chỉ này kẻo quên, ghi luôn mã của nó là Jne hay Je để khỏi lẫn lộn.

2. Tìm address code data & offset chứa thông tin về “about” và “evaluation copy”

Phần II.2.a/ trên bạn chỉ mới tìm được address offset làm hiển thị hộp thoại “please purchase WinRAR license”, hộp thoại này sẽ xuất hiện sau 40 ngày sử dụng nếu sản phẩm chưa được đăng kí (bạn thử tăng đồng hồ hệ thống lên khoảng 2 tháng xem, nó xuất hiện liền đấy).

Bạn cũng có thể ngưng ngay tại thời điểm này để tiến hành crack, dĩ nhiên sau khi crack xong thì hộp thoại “please purchase WinRAR license” sẽ không còn xuất hiện sau 40 ngày sử dụng. Nhưng cái dòng chữ “evaluation copy” vẫn còn hiện diện trên title của nó, và cái dòng chữ “40 days trial copy” vẫn luôn ngự trị trong phần Help\About. Rất là khó chịu. Bây giờ, công việc của ta là làm sao tắt 2 cái này đi.

1p5

Bạn hãy vào menu PE information\String data references để trở lại hộp thoại search string, nhập vào ô search string: “70c2441db366d92ea7be1342b3bf629026ba92bb675f06”

1p6

Sau đó bấm nút search để tiến hành dò tìm. Khi đã tìm được chuỗi này rồi. Bạn bấm kép vào nó, W32Dasm sẽ đưa bạn đến vị trí có chứa chuỗi này.

Một điều cũng nên nói luôn, trong address của W32Dasm có tới khoảng 4-5 vị trí chứa chuỗi “70c2441db366d92ea7be1342b3bf629026ba92bb675f06”. Cho nên, mỗi lần bấm đúp vào vệt sáng trong box search, bạn sẽ được W32Dasm đưa đến 1 vị trí mới. Tại vị trí mới này bạn nên đánh dấu để không bị nhầm lẫn, bạn đánh dấu bằng cách click chuột phải vào dòng có vệt sáng, chọn tab “Add Comment”, sau đó ghi nội dung muốn làm dấu.

Bạn hãy cố gắn tìm các dòng có chứa đoạn code sau đây (nguyên tắc dò tìm: đưa vệt sáng dịch chuyển về phía trên).

1p8

Về cơ bản, đoạn code này như sau:

0040E9EE| 8D85D0EFFFFF LEA EAX, DWORD PTR SS:[EBP-1030]
0040E9F4| 8B95D0F3FFFF MOV EDX, DWORD PTR SS:[EBP-C30]
0040E9FA| E835D9FFFF CALL 0040C334
0040E9FF| 84C0 TEST AL, AL
0040EA01|0F85DFFEFFFF JNE 0040E8E6
0040EA07| 33C0 XOR EAX, EAX
0040EA09| 8B95D4F3FFFF MOV EDX, DWORD PTR SS:[EBP-C2C]
0040EA0F| 648915 000000 MOV DWORD PTR FS:[0],EDX

Tôi patch WinRAR 3.70 beta 2, chỉ bấm đúp 1 lần (beta 4, bấm đúp 3 lần) và đưa vệt sáng lên trên khoảng chục dòng là thấy ngay đoạn code đó. Còn bạn, nếu không tìm được thì bạn lập lại bước trên, bấm đúp vào dòng chữ “70c2441db366d92ea7be1342b3bf629026ba92bb675f06”. Nếu gặp vị trí có chứa nội dung làm dấu rồi thì cho qua, còn không thì chuột phải mở Add comment, ghi nội dung làm dấu, xong tiến hành tìm đoạn code… Cứ thế tiếp tục, làm cho đến khi nào tìm được đoạn code trên.

Bạn hãy chú ý address 0040EA01. Nó chứa mã 0F85DFFEFFFF JNE 0040E8E6. Nhưng tại sao mã JNE lại là 0F85DFFEFFFF mà không phải là 75.x.x? Bạn hãy tự đi tìm câu trả lời, mã này sẽ làm cho việc patch “hơi trái khoáy” một chút. Bây giờ, bạn hãy lấy bút ra ghi lại Code Data và Offset phía dưới thanh tasbar nhé. Làm giống như phần II.2.a vậy. Đưa vệt sáng về dòng address 0040EA01 chứa mã JNE, sau đó xem và ghi lại address.

1p9

Trong hình 2.4 – Bạn thấy 2 địa chỉ, lấy giấy ra ghi lại 2 địa chỉ này nhé:

  • Code Data: 40EA01 —> Address2a_Jne
  • Offset: E001 —> Address2b_Jne

Tôi tạm gọi CodeData của phần này là Address2a_Jne, và Offset là Address2b_Jne.

III. CRACK WINRAR VỚI CÁC ĐỊA CHỈ TÌM ĐƯỢC Ở PHẦN II

Bạn hãy chú ý, bạn đã có trong tay 4 địa chỉ. Tôi tạm chia ra làm 2 cặp như sau:

  • Cặp 1 (Address1a_Jne + Address2a_Jne): Cặp này chứa địa chỉ của “Code Data”
  • Cặp 2 (Address1b_Jne + Address2b_Jne): Cặp này chứa địa chỉ của “Offset”

Tôi cũng chia ra 2 trường hợp để tiến hành crack:

  • Trường hợp 1: W32Dasm trong tay bạn là bản đã được fix (có phần patch). Trường hợp này bạn sử dụng cặp 1 trên để crack.
  • Trường hợp 2: W32Dasm chưa được fix. Trừơng hợp này bạn sử dụng cặp 2 để crack.

Trong ngôn ngữ Assembler, mã của JNE ứng với kí tự ascii là ‘u’ (hex =75, byte = 117), còn mã của JE ứng với kí tự ‘t’ (hex=74, byte=116). Và ý nghĩa của nó như sau:

  • JE [xxxx]: Jump equal (nhảy đến vị trí [xxxx] nếu bằng).
  • JNE [xxxx]: Jump not equal (nhảy đến vị trí [xxxx] nếu không bằng).

2 lệnh này thường đi chung với lệnh:

TEST [A], —-> so sánh A và B xem có thoả điều kiện không
JE [Address1] —-> nếu thoả thì nhảy đến address 1
JNE [Address2] —-> nếu không thoả thì nhảy đến address 2

Để tiện cho việc theo dõi, tôi sẽ lần lượt giới thiệu bạn crack cả 2 trường hợp này.

1. Tiến hành crack khi trong tay bạn có bản fix W32Dasm

Một chút hướng dẫn về patch: Bản W32Dasm đựơc xem là fix rồi khi trong menu Edit của nó có tab “patch” ( xem hình 3).

1p10

Khi tiến hành patch, bạn đặt thanh sáng tại address muốn patch, sau đó chuột phải rồi chọn tab patch hoặc cách khác là vào menu Edit, rồi chọn patch. Ví dụ sau tôi muốn patch tại vị trí 40EA01, tôi đưa thanh sáng về đó, chuột phải và chọn patch (hình 3.1).

1p11

Xong phần hướng dẫn sử dụng bản W32Dasm đã được fix phần patch. Bây giờ ta tiến hành crack.

a. Vô hiệu hóa phần I.1 của “tóm tắt chiến lược” trên – Crack file Winrar.exe với address code data chứa thông tin về hộp thoại “please purchase WinRAR license”.

Bạn hãy chỉnh lại đồng hồ hệ thống tăng thêm khoảng 2 tháng, sau đó mở WinRAR để hộp thoại “please purchase WinRAR license” xuất hiện (bước kiểm tra). Xong tắt WinRAR. Ta patch tại địa chỉ Address1a_Jne để làm tắt hộp thoại này cho dù đã sử dụng quá giới hạn.

Bạn bấm vào menu “Go to” của W32Dasm, chọn “Go to code location”, nhập vào phần “code offset” địa chỉ Address1a_Jne (theo như phần II.2.a thì tôi nhập vào là 43F79E), xong ấn OK. W32Dasm sẽ đưa bạn đến địa chỉ Address1a_Jne trong edit của nó (vệt sáng nằm trên dòng chứa mã JNE).

Tại đây, bạn chuột phải rồi chọn patch. Bạn sẽ được hộp thoại patch, trong hộp thoại này, bạn để thanh nháy ở cột đầu tiên (cột có chứa Hex = 75, JNE), sau đó sửa nó lại thành 74 (mã của JE, Hex =74 – như hình 3.2).

1p12

Ấn nút “Apply” để tiến hành patch, xong ấn nút “Run” để chạy thử. Nếu address1a_Jne là đúng thì hộp thoại “please purchase WinRAR license” sẽ không còn xuất hiện (ha ha… Alexander Roshal pó tay). Còn nếu sai thì bạn nên tìm lại địa chỉ này.

Bạn hãy chú ý, nếu thao tác tìm địa chỉ sai thì nên ấn nút “Reset”, sau đó ấn “Apply” để file patch được trả lại nguyên vẹn. File được patch có tên là “WinRAR_BAK.exe”.

b. Vô hiệu hóa phần I.2 của “tóm tắt chiến lược” trên – Crack file Winrar.exe với address code data chứa thông tin về “about” và “evaluation copy”

Làm tương tự như phần a.1 trên, nhưng tại address2a_Jne này lại có sự đổi khác về mã (của tôi, tại 0040EA01 là 0F85DFFEFFFF, JNE). Vì thế, thay vì đổi mã JNE thành 74 là của JE, tôi lại chuyển thành 75, của chính mã JNE ! (hình 3.3)

1p13

Vậy là ok rùi.

Một phản hồi

  1. 😀 không ngờ bài viết của mình vẫn còn có người giữ

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: