Hello, Welcome back !
He he xin chào các bạn, xin lỗi vì sự chậm trễ. Do mấy hôm nay bận soạn ra HTML một số tut để upload lên homepage vietcracks nên không kịp up lên cho các bạn phần 8, thành thật xin lỗi.
Phần VIII
Okie nào chúng ta bắt đầu thôi. E hèm hôm nay chúng ta sẽ đi vào phần 8, đây cũng là phần kết thúc của giai đoạn I: NHẬP MÔN CRACKER. Hôm nay chúng ta sẽ học gì nhỉ? Cụ thể như sau:
1. Học crack mIRC 603 (phiên bản mới nhất.)---> Chương trình chat thông dụng.
2. Học crack Getright Version 4.5 ---> Chương trình download cực mạnh
3. Học crack game của hãng PopCap.Com (học một dạng có thể crack hầu hết tất cả các game hiện nay của hãng này như Dynomite 2.00y, 2.01, Big Money Delux 1.11, Bejeweled 1.5, Alchemy, NINGPO MAHJONG DELUXE 1.04, SEVEN SEAS 1.13 vân vân). Vì sao, giống như ES4 hay EV Tran 2.0 tất cả các phiên bản hay chương trình của PopCap Games đều mã hoá serial theo cùng một kiểu….
4.Học viết Patch Gen cho các chương trình mình đã crack (bằng Pascal, C++, VB). Tôi sẽ lần lượt up lên. Trước tiên là bằng Pascal.
5. Các thuật ngữ, thuật toán cracker (Các bạn bổ sung thêm nếu thấy chưa đủ…).
6.Các thuật ngữ cơ bản ASSEMBLY dành cho các bạn muốn crack mà chưa hiểu gì lắm về ngôn ngữ này. (bổ sung sau ...)
PHẦN VIII :
I. Crack mIRC 603
Phần mềm : mIRC ver 603
Download : www.mirc.com
File crack : mirc.exe
Cracker : hacnho (VCT)
Bảo vệ : 30 days times trial
Chúng ta bắt đầu việc đầu tiên là try to crack mIRC version 603. Đây là một chương trình chat script khá phổ biến. Nhưng phiên bản này chỉ cho dùng thử 30 ngày. Điều đó buộc chúng ta phải crack nó . Đơn giản tôi là Maria mà lị he he. Do tôi còn trong Giai Đoạn I. Nên tôi chỉ hướng dẫn các bạn phương pháp cơ bản nhất của cracker là patch nó.(Thật ra phương pháp tạo serial của mIRC 603 rất đơn giản là thực hiện các phép toán nhân chia để tạo key. Giới hạn min của name nhập vào là 5 ký tự. Gồm hai vòng lặp chính. Nhưng thôi mình sẽ bàn đến phương pháp tính toán serial trong GIAI ĐOẠN II: Cracker Anh Là Ai?)
Đầu tiên bạn sao lưu file mirc.exe ra dự phòng. Chạy mIRC. Vào menu About--->Register. Nhập vào Full Name: hacnho, Registration Code: 151083. Enter, oh la la một nag văng ra "The registration name and number you have entered do not match....". Okie bạn hãy nhớ lấy nó. Vào W32DisAsm mở file mirc.exe. Chờ W32DisAsm file mirc xong bạn vào menu String Data Reference, tìm ra dòng có ghi thông báo ở trên, double click vào nó một lần, đóng hộp hội thoại String Ref lại, bạn đang ở đây
* Possible Reference to String Resource ID=01911: "Registration"
|
:004C698E 6877070000 push 00000777
:004C6993 E8D95DF6FF call 0042C771
:004C6998 50 push eax
:004C6999 6A00 push 00000000
* Possible Reference to String Resource ID=01912: "The registration name and number you have entered do not
mat"
|
:004C699B 6878070000 push 00000778 <--- bạn đang ở đây
:004C69A0 E8CC5DF6FF call 0042C771
:004C69A5 50 push eax
:004C69A6 FF7508 push [ebp+08]
Okie hãy di chuyển vệt sáng lên trên, tới khi bạn gặp dòng những dòng sau
------
* Reference To: USER32.SendDlgItemMessageA, Ord:0000h
|
:004C6884 E8E96A0900 Call 0055D372
:004C6889 68DFCD5700 push 0057CDDF
:004C688E 68F8C95700 push 0057C9F8
:004C6893 E821FBFFFF call 004C63B9
:004C6898 85C0 test eax, eax
:004C689A 0F84B7000000 je 004C6957 <--- Cần crack, chú ý (1)
:004C68A0 C60552CA570000 mov byte ptr [0057CA52], 00
:004C68A7 BE28305800 mov esi, 00583028
:004C68AC BFF8C95700 mov edi, 0057C9F8
:004C68B1 33C0 xor eax, eax
---------
* Possible Ref to Menu: MenuID_003C, Item: "Register..."
|
• Possible Reference to String Resource ID=00134: "* Unloaded agent '%s'"
Nếu bạn chỉ dừng ở đây thì chưa xong. Tại sao, nếu chúng ta crack ở đây thì chỉ hiện thông báo "Your registration has been entered successfully.". Nhưng khi khởi động lại thì không được chấp nhận serial. Híc híc…Xem nào chúng ta thử suy nghĩ một chút…Khi chúng ta đăng ký rồi nếu đúng thì thằng Mirc sẽ liên kết với một chỗ nào trong file để xoá menu “ Register…” đi…Suy rộng ra chúng ta sẽ tìm tới chỗ đoạn mã của menu “ Register…” để “hiệu chỉnh” nó lại. Tức là nhập vào giá trị nào nó cũng sẽ xoá menu “ Register…” đi . Okie chúng ta quay trở lại W32DisAsm, vào menu tìm dòng “ Register…” . ủa sao không thấy dòng nào cà??? Đừng lo lắng, hãy vào menu Reference Item, hãy double click cho tới khi nào bạn gặp dòng “ Register…” mà bên dưới có dòng * Reference To: USER32.DeleteMenu, Ord:0000h mới được vì đây là đoạn mã dùng để xoá menu khi nhập đúng serial. Nếu bạn tìm tìm ra dòng “ Register…” mà không có dòng DeleteMenu thì không crack được . Nếu tìm đúng bạn sẽ thấy như sau:
* Possible StringData Ref from Data Obj ->"License"
|
:004C6681 68BFA55600 push 0056A5BF
:004C6686 E890FBFFFF call 004C621B
:004C668B 85C0 test eax, eax
:004C668D 7458 je 004C66E7 <--- Cần crack, Chú ý. (2)
:004C668F 68DFCD5700 push 0057CDDF
:004C6694 68F8C95700 push 0057C9F8
:004C6699 E81BFDFFFF call 004C63B9
:004C669E 85C0 test eax, eax
:004C66A0 7445 je 004C66E7
:004C66A2 6A00 push 00000000
* Possible Ref to Menu: MenuID_003C, Item: "Register..."
|
* Possible Reference to String Resource ID=00134: "* Unloaded agent '%s'"
|
:004C66A4 6886000000 push 00000086
:004C66A9 FF3568AA5600 push dword ptr [0056AA68]
* Reference To: USER32.DeleteMenu, Ord:0000h
|
:004C66AF E8426A0900 Call 0055D0F6
:004C66B4 C60552CA570000 mov byte ptr [0057CA52], 00
:004C66BB BE28305800 mov esi, 00583028
:004C66C0 BFF8C95700 mov edi, 0057C9F8
:004C66C5 33C0 xor eax, eax
----------
Từ (1) và (2) ta sẽ có hai chỗ cần crack đó là:
1. Thay đổi (1) từ 84 thành 85 tức cho nó từ nhập đúng serial thì nhảy thành nhập sai thì nhảy…Bạn dùng Hiews, mở file mirc.exe (lưu ý nên đóng mirc khi chạy hiew). Nhấn F4 chọn decode, nhấn f5 , gõ 000C5E9A , nhấn F3 đổi 84 thành 85 (jz thành jnz)
2.Thay đổi (2) từ 74 thành 75 tức cho nó từ nhập đúng serial thì xoá menu Register” thành nhập sai thì xoá menu “Register” …Bạn dùng Hiews, mở file mirc.exe (lưu ý nên đóng mirc khi chạy hiew). Nhấn F4 chọn decode, nhấn f5 , gõ 000C5C8D , nhấn F3 đổi 74 thành 75 (jz thành jnz).
Okie bây giờ bạn hãy chạy thử Mirc 603 và đăng ký lại xem… try it and get it !!!
Cách crack ở trên chỉ dành cho newbie thôi, vì cách crack đó chỉ cho dùng mIRC miễn phí mà thôi ---> không phải đăng ký, nhưng mà chúng ta thì được voi đòi tiên mà hi` hi` muốn rằng mỗi khi vào menu HELP>About thì thì dòng Licenced to: …. mới được >>>làm như ta đây là mua thật vậy hic hic . Mình có cách chỉ patch duy nhất một byte thôi mà được dùng như mua thật sự vậy . Do thời gian có hạn nên mình chỉ đưa ra địa chỉ cùng các crack thôi, còn phương pháp crack thì phải dùng SI (mà tôi chưa có hướng dẫn dùng SI cho các bạn) tìm ra hàm tạo serial rồi patch nó…Nên bạn nào khá hãy tìm ra phương pháp crack cho mình.
-------
Hướng dẫn: bạn tìm đến địa chỉ RVA 004C6448, đổi 74 thành 75 (jz thành jnz). Okie hãy đăng ký lại xem, wow quá tuyệt phải không??? còn tại sao mà tôi tìm ra được “ vùng cấm địa” đó là công việc của các bạn nhe .Tự tìm hiểu lấy :
-------
Download: http://www.vietcracks.com/download/crackmirc603.rar
II.Now, chúng ta bước qua chương trình crack thứ hai, đó là Getright 4.5.
Phần mềm : Getright ver 4.5
Download : www.getright.com
File crack : getright.exe
Cracker : hacnho (VCT)
Bảo vệ : Trial Version
Getright ver 4.5 là một phần mềm download khá mạnh, nhưng phiên bản trial dùng thử thì bị hạn chế các tính năng, điều đó buộc chúng ta phải crack để sử dụng hết các chức năng của nó .
Đầu tiên bạn nên sao lưu file getright.exe lại thành một bản backup. Chạy GetRight Tray Icon trên thanh Start. Right click tại icon getright. Vào menu about. Wow! Bạn thấy có ba nút lệnh (command button) quan trọng “Buy now!”, “Buy”, và “Enter Code”. Okie bây giờ bạn click vào nút “Enter Code”, nhập một số bất kỳ (không nhập chữ). Ở đây tôi nhập là 151083, nhấn OK, oh la la một nag văng ra "Invalid registration code. Please verify that it is entered". Bạn hãy ghi nhớ lấy nó. Mở Windasm ra, disasm file getright.exe. Chờ nó disasm xong bạn vào menu String ref, kiếm dòng thông báo "Invalid registration code. Please verify that it is entered", double click vào nó. Đóng Ref lại. Bây giờ bạn đang ở đây:
* Referenced by a (U)nconditional or ©onditional Jump at Address:
|:0049F6A8©
|
:0049F6FC 6A00 push 00000000
:0049F6FE 6A00 push 00000000
:0049F700 8D4DF0 lea ecx, dword ptr [ebp-10]
:0049F703 E80FA0FFFF call 00499717
:0049F708 85C0 test eax, eax
:0049F70A 7409 je 0049F715 <--- Chú ý, cần crack (1)
* Referenced by a (U)nconditional or ©onditional Jump at Address:
|:0049F6FA(U)
|
:0049F70C 8BCF mov ecx, edi
:0049F70E E832320600 call 00502945
:0049F713 EB0A jmp 0049F71F
* Referenced by a (U)nconditional or ©onditional Jump at Addresses:
|:0049F685©, :0049F70A©
|
* Possible Reference to String Resource ID=00123: "Invalid registration code. Please verify that it is entered"
|
:0049F715 6A7B push 0000007B
:0049F717 57 push edi
:0049F718 E82B330200 call 004C2A48
:0049F71D 59 pop ecx
:0049F71E 59 pop ecx
* Possible Reference to String Resource ID=00123: "Invalid registration code. Please verify that it is entered"
|
:0049F715 6A7B push 0000007B <--- Bạn đang ở đây
:0049F717 57 push edi
:0049F718 E82B330200 call 004C2A48
:0049F71D 59 pop ecx
:0049F71E 59 pop ecx
Chúng ta biết rằng khi serial nhập vào thì nhập vào ô "RegistrationCode", sau đó nó kiểm tra và liên kết tới nút “OK”. Chúng ta chỉ cần crack ở đoạn mã này. Vào menu String Ref, kiếm ra dòng chữ "RegistrationCode", double click để tìm, đóng ref lại. Chúng ta đang ở đây:
* Possible StringData Ref from Data Obj ->"%s"
|
:0049F690 68444B5700 push 00574B44
:0049F695 50 push eax
:0049F696 E868050600 call 004FFC03
:0049F69B 83C40C add esp, 0000000C
:0049F69E 8D4DF0 lea ecx, dword ptr [ebp-10]
:0049F6A1 E8699BFFFF call 0049920F
:0049F6A6 85C0 test eax, eax
:0049F6A8 7452 je 0049F6FC <--- Chú ý cần crack (2)
:0049F6AA 8B36 mov esi, dword ptr [esi]
:0049F6AC E8FC220700 call 005119AD
:0049F6B1 8B4004 mov eax, dword ptr [eax+04]
:0049F6B4 56 push esi
* Possible StringData Ref from Data Obj ->"RegistrationCode"
|
:0049F6B5 68484B5700 push 00574B48 <<-- bạn đang ở đây !
* Possible StringData Ref from Data Obj ->"Config"
|
:0049F6BA 68184B5700 push 00574B18
:0049F6BF 8BC8 mov ecx, eax
:0049F6C1 E8E5CA0600 call 0050C1AB
:0049F6C6 57 push edi
:0049F6C7 8D8DA0FEFFFF lea ecx, dword ptr [ebp+FFFFFEA0]
:0049F6CD E8DB0B0200 call 004C02AD
:0049F6D2 8D8DA0FEFFFF lea ecx, dword ptr [ebp+FFFFFEA0]
:0049F6D8 C645FC01 mov [ebp-04], 01
:0049F6DC E8732F0600 call 00502654
:0049F6E1 8065FC00 and byte ptr [ebp-04], 00
:0049F6E5 8D8DA0FEFFFF lea ecx, dword ptr [ebp+FFFFFEA0]
* Possible Reference to Menu: MenuID_0001
|
• Possible Ref to Menu: MenuID_00B4, Item: "OK"
-------------------------
Nếu bạn nó tới đây đã crack được rồi. Đúng là như vậy, nhưng đây chỉ mới là điều kiện cần nhưng chưa đủ. Mục đích của chúng ta là disable cái nút “ Enter Code”, xoá nút “Buy now!” và nút “Buy”, he he chi vậy, để cho người ta không biết dòm vô tưởng ta bỏ tiền ra mua thật...Khi bạn crack ở trên thì vẫn chạy vi vu nhưng mấy cái nút đăng ký còn lại rất ngứa mắt, mục đích chúng ta là xoá nó đi ( đừng dùng reshack, chán lắm). Okie ở đây ta suy luận một chút, khi nhập đúng Reg Code thì chương trình có một đoạn mã để kiểm tra, nếu không đúng thì không xoá nút, còn ngược lại thì ..., Được rồi bạn hãy vào ref, tìm dòng “Config”, hoặc bạn có thể chạy hàm call 00499717 tại (1) cũng cho kết quả tương tự . Thoát ref ta đang đứng ở đây:
* Possible StringData Ref from Data Obj ->"Window00"
|
:004997DA 68384B5700 push 00574B38
* Possible StringData Ref from Data Obj ->"Config"
|
:004997DF 68184B5700 push 00574B18
:004997E4 8BC8 mov ecx, eax
:004997E6 E8457C0700 call 00511430
:004997EB 85C0 test eax, eax
:004997ED 7509 jne 004997F8 <---Cần crack, chú ý (3)
:004997EF E8D31A0300 call 004CB2C7
:004997F4 85C0 test eax, eax
:004997F6 740A je 00499802
* Referenced by a (U)nconditional or ©onditional Jump at Address:
|:004997ED©
|
:004997F8 E886190300 call 004CB183
:004997FD E9401D0000 jmp 0049B542
* Referenced by a (U)nconditional or ©onditional Jump at Addresses:
|:004997CF©, :004997F6©
|
Từ (1), (2), (3), ta sẽ có ba chỗ cần crack là :
1. Đổi một byte tại RVA 0049F70A (offset 0009EB0A) từ jz thành jnz (74 thành 75).
2. Đổi một byte tại RVA 0049F6A8 (offset 0009EAA8) từ jz thành jnz (74 thành 75).
3. Đổi một byte tại RVA 004997ED (offset 00098BED) từ jz thành jnz (74 thành 75).
Chú ý : (3) chỉ được patch khi bạn đã thực hiện xong (1) và (2). Sau đó trở lại GetRight đăng ký. Đăng ký xong mới thực hiện (3) để xoá các nút.
Get it and try it, bạn sẽ thích ngay mà he he.
Thật ra còn nhiều chuyện để xử lý nó lắm nhưng tôi chỉ bàn đến vấn đề chính thôi, còn như bạn muốn crack tiếp thì nên disable các nút còn lại (các nút liên quan tới đăng ký)...Hoặc gỡ bỏ dòng Trial Version v v...
III. Crack game PopCap---bài viết của Computer_Angel
How to crack POPCAP Games : 1. TypeSHARK ver 1.00
Phần mềm: TypeSHARK ver 1.00 --- http://www.popcap.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)
File cần crack: WinTS.exe
Cracker: Computer_Angel
+ Tiến hành:
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.
Khi đó, AL=0 (vì chưa đăng ký hay đăng ký sai). Nhìn lên trên 1 xíu, ta thấy tại vị trí 4A4070 chứa mã lệnh mov al,bl.
Như vậy, ta có thể thay đổi lệnh này sau cho giá trị của AL luôn là 1
--> đổi từ mov al,bl sang mov al,01.
-->byte: 8A C3 sang B0 01
4. Crack tập tin WinTS:
Trong IDA, nhảy tới vị trí lệnh 4A4070, nhìn vào thanh status bar nằm ở dưới, ta thấy có 2 số :
+ 4A4070 : là vị trí lệnh trong chương trình
+ A4070 : là vị trí của lệnh trong tập tin.
Mở HexWorkshop lên, nạp tập tin WinTS.exe vào, gõ Ctrl-G, chọn Hex, gõ vào A4070.
HexWorkshop sẽ chuyển tới vị trí này. Nhấn TAB để con nháy nằm bên phần có số Hex và gõ vào B001.
Nhấn Ctrl-S để save lại.
Như vậy bạn đã crack xong game TypeSHARK ver 1.00 của Popcap.
IV. Viết Patch Gen.
Khi bạn crack bằng phương pháp patch, xong không lẽ mỗi lần xài lại phải crack nó...Sao ta không lưu lại bằng một chương trình gì đó mà mỗi khi cài lại ta không cần phải ngồi crack nữa ???. Do đó patch gen ra đời, thật ra có nhiều patch gen được làm sẵn như File patcher 4.0, Fast Patch nhưng tại sao mình không tự viết patch gen nhỉ. Tôi thì thươngf viết Patch Gen bằng VC nhưng chỉ giới thiệu với mội người một patch gen cực kỳ đơn giản bằng Pascal, đây là một ngôn ngữ khá thân thiện với giới tin học VN, nên tôi chọn để giới thiệu cùng các bạn. Patch Gen này do anh NVC © viết...Bạn có thể “ chế lại theo sở thích của mình. Để hiểu được nó bạn phải biết về Kiểu File trong Pascal vì nó thao tác trên file mà...Nó dùng các hàm đơn giản như IOResult, Seek,Assign, Reset vv...Sau đây là một patch gen mình hoạ cho chương trình crack mIRC 603. Các bạn đem về xem thử nhe. Sau đó dịch ra và chạy.
uses crt;
const
offset1=$000C5A48; {Địa chỉ offset cần crack}
var
ch:char;
procedure patch(location:longint);
var
F:file of byte;
x:array[0..1]of byte; {Số byte cần crack}
begin
{$I-}
Assign(F,'mirc.exe'); {gán tên file cần crack}
Reset(F); {Mở file vừa gán để đọc }
{$I+}
If Ioresult<>0 then { Nếu tìm không thấy file}
Begin
clrscr;
textcolor(lightgreen);
Writeln;Writeln;
Writeln('Ban Phai Chay File Crack Trong Thu Muc Co Chua File Can CraCk...!');
Readln;
End Else {nguoc lai}
Seek(F,location);
x[0]:=$75; {Giá trị cần đổi của file crack}
Write(F,x[0]);{Ghi lên file}
Close(F); { Đóng file}
End;
Begin
Clrscr;
textcolor(lightgreen);
Writeln(' by hacnho from VCT ');
Textcolor(white);
Gotoxy(10,9);
Writeln('Ban hay nhan phim P de Patch, Phim bat ky de thoat:');
Ch:=Readkey;
If(ch='p')or(ch='P')then
begin
patch(offset1);
Writeln;Writeln;Writeln;
Gotoxy(17,15);Writeln('mIRC603 PaTcH successful !');
Gotoxy(17,17);Writeln('***** More CRaCk, please contact me at *****');
Gotoxy(20,18); Writeln;
Gotoxy(20,19); Writeln('*************************************');
Gotoxy(20,20); Writeln('* E-Mail : tommy9982@yahoo.com *');
Gotoxy(20,21); Writeln('* YIM : tommy9982 *');
Gotoxy(20,22); Writeln('* http:\\www.vietcracks.com *');
Gotoxy(20,23); Writeln('*************************************');
Readln;
end else Exit
end.
Chương trình đã dịch rồi
http://www.vietcracks.com/download/test.rar
V. Thuật toán, thuật ngữ thường dùng…Bổ sung tiếp
1. Các hệ đếm:
Thông thường ta có các hệ đếm cơ bản như sau:
a. Hệ Decimal (10): dùng các ký tự số 0,1..9
Ví dụ : 2754 = 4+5.10+7.10.10+2.10.10.10
b. Hệ Hexa (16): dùng các ký tự số và chữ 0,1,…9, A,B..F
Ví dụ : 3C5F = 15+5.16+16.16.16+3.16.16.16
c. Hệ Binary(2): dùng các ký số 0,1
Ví dụ : 1001 = 1+0.2+0.2.2+1.2.2.2
(còn tiếp…)
Okie thế là chúng ta đã đi hết Giai Đoạn 1: Nhập môn cracker. Các bạn cảm thấy thế nào? Crack cũng khá dễ dàng ấy nhỉ ??? Thôi tạm biệt chúc các bạn may mắn. Trong một ngày gần đây tôi sẽ up lên Phần 9—GIAI ĐOẠN, các bạn đón theo dõi bài viết của hacnho |
|
0 nhận xét:
Đăng nhận xét