You are on page 1of 9

Làm thế nào để crack một chương trình :

trang này đã được đọc


lần
Cách dễ nhất để crack là dùng 2 công cụ chính :
Win32Dasm, HView... bộ óc, Coca Cola và âm nhạc 8-).
Giải thích công dụng :
W32Dasm : Công cụ dùng để disassembler một file ra mã máy. Nó còn được dùng
để hiểu xem
chương trình này làm cái "quái" gì trong đó.
HView : Khi đã biết được nơi cần patch trong file, bạn có thể dùng công cụ hữu
ích này.
Vì đây là cách đơn giản nhất để crack chương trình nên không phải tất cả các
chương trình đều
có thể crack được mà khoảng 40% chương trình sẽ được patch bằng cách này :-).
Đầu tiên, bạn phải xem coi chương trình có được nén(pack) lại hay không. Nén ở
đây không có
nghĩa là được nén bằng WinZip hay WinRAR mà file .EXE được nén nhỏ lại mà
vẫn có thể chạy
được bình thường không cần giải nén. Để biết file có bị nén hay không, bạn phải
xem mở file
.EXE đó ra để xem đoạn mã của nó. Ở đây tôi dùng WinNC, chọn file cần xem và
nhấn F3.
Thông thường, nếu file đã bị nén thì nó sẽ có 1 dòng đặc trưng trong file bị nén ở
đầu file.
Chẳng hạn như được nén bằng ASPack thì (thường) trong file sẽ có chuỗi
"aspack". Nén bằng
UPX thì sẽ có dòng "UPX...". Còn đối với shrink thì có chữ "shrink". Tuy nhiên,
cũng có một vài
công cụ giúp ta giải nén (unpack) mà không cần biết file được nén theo dạng nào,
đó là nó tự
động nhận dạng. Tuy nhiên, nếu dạng được nén không được hỗ trợ thì nó cũng
đành bó tay.
Tiêu biểu cho loại này là ProcDump32, nó hỗ trợ khá nhiều dạng phổ biến như
ASPack, Code
Safe 3.X, PC Guard 2.10, PE Compact, PKLITE... bạn có thể chọn "*unknown*"
để chương trình
tự động nhận dạng.
Ngoài ra, có thể chương trình còn được bảo vệ bởi 1 đoạn mã bảo vệ (Security
Code). Đây là
một đoạn mã dùng để bảo vệ chương trình tránh bị debug (anti-debug) hay thay
đổi kích
thước. Đối với loại này, chúng ta cũng có một số chương trình để bỏ phần Security
Code đó, có
thể kể ra là : Anti Crypt, UnCode Crypt, tEunlock...
Giả sử như bạn đã bỏ Security Code và giải nén được chương trình, lúc này, nó sẽ
phình ra lớn
hơn so với lúc bình thường (giải nén mà), đã đến lúc bắt tay vào crack nó.
* Bước 1:
_ Chạy chương trình cần Crack
_ Thông thường nó sẽ bắt bạn đăng ký, hoặc sẽ để trên một Menu nào đó để bạn
đăng ký
chương trình, đại loại là Registration, Register, Purchase...
_ Nhấn vào nó, điền đầy đủ thông tin và nhập đại một số Serial/Unlock
Code/Registration Code
bất kỳ. Chương trình sẽ hiện lên một bảng thông báo tương tự như "Incorrect
Password...",
"Wrong Serial...", "Re-enter password..." (hầu hết các chương trình đều có bảng
thông báo này
cho người dùng biết ngoại trừ những crackme . Okie, hãy nhớ lấy cái thông báo
này.
* Bước 2:
_ Chạy W32Dasm, chọn "Open file to Disassembler..." hay nhấn trên thanh công
cụ cũng được.
_ Chọn file cần Crack.
_ Trên menu Refs, chọn String Data References. Tại sao ta phải làm như vậy, bạn
hãy xem đoạn

Cách Crack All Phần mềm


Đây là bài viết hướng dẫn newbie về cách “làm thế nào để crack một chương

trình”. Vì vậy, nội dung rất đơn giản, nếu có “cao thủ” nào “bức xúc” về nội dung bài

viết thì xin vui lòng bỏ quá cho

Cách dễ nhất để crack là dùng 2 công cụ chính :


Win32Dasm, HView… bộ óc, Coca Cola và âm nhạc 8-).

Giải thích công dụng :

W32Dasm : Công cụ dùng để disassembler một file ra mã máy. Nó còn được dùng

để hiểu xem chương trình này làm cái “quái” gì trong đó.

HView : Khi đã biết được nơi cần patch trong file, bạn có thể dùng công cụ hữu ích

này.

Vì đây là cách đơn giản nhất để crack chương trình nên không phải tất cả các chương

trình đều có thể crack được mà khoảng 40% chương trình sẽ được patch bằng cách

này 8-).

Đầu tiên, bạn phải xem coi chương trình có được nén(pack) lại hay không. Nén ở

đây không có nghĩa là được nén bằng WinZip hay WinRAR mà file .EXE được nén nhỏ

lại mà vẫn có thể chạy được bình thường không cần giải nén. Để biết file có bị nén

hay không, bạn phải xem mở file .EXE đó ra để xem đoạn mã của nó. Ở đây tôi dùng

WinNC, chọn file cần xem và nhấn F3. Thông thường, nếu file đã bị nén thì nó sẽ có

1 dòng đặc trưng trong file bị nén ở đầu file. Chẳng hạn như được nén bằng ASPack

thì (thường) trong file sẽ có chuỗi “aspack”. Nén bằng UPX thì sẽ có dòng “UPX…”.

Còn đối với shrink thì có chữ “shrink”. Tuy nhiên, cũng có một vài công cụ giúp ta

giải nén (unpack) mà không cần biết file được nén theo dạng nào, đó là nó tự động

nhận dạng. Tuy nhiên, nếu dạng được nén không được hỗ trợ thì nó cũng đành bó

tay. Tiêu biểu cho loại này là ProcDump32, nó hỗ trợ khá nhiều dạng phổ biến như

ASPack, Code Safe 3.X, PC Guard 2.10, PE Compact, PKLITE… bạn có thể chọn

“*unknown*” để chương trình tự động nhận dạng.

Ngoài ra, có thể chương trình còn được bảo vệ bởi 1 đoạn mã bảo vệ (Security

Code). Đây là một đoạn mã dùng để bảo vệ chương trình tránh bị debug (anti-

debug) hay thay đổi kích thước. Đối với loại này, chúng ta cũng có một số chương

trình để bỏ phần Security Code đó, có thể kể ra là : Anti Crypt, UnCode Crypt,

tEunlock…
Giả sử như bạn đã bỏ Security Code và giải nén được chương trình, lúc này, nó sẽ

phình ra lớn hơn so với lúc bình thường (giải nén mà), đã đến lúc bắt tay vào crack

nó.

* Bước 1:

_ Chạy chương trình cần Crack

_ Thông thường nó sẽ bắt bạn đăng ký, hoặc sẽ để trên một Menu nào đó để bạn

đăng ký chương trình, đại loại là Registration, Register, Purchase…

_ Nhấn vào nó, điền đầy đủ thông tin và nhập đại một số Serial/Unlock

Code/Registration Code bất kỳ. Chương trình sẽ hiện lên một bảng thông báo tương

tự như “Incorrect Password…”, “Wrong Serial…”, “Re-enter password…” (hầu hết các

chương trình đều có bảng thông báo này cho người dùng biết ngoại trừ những

crackme . Okie, hãy nhớ lấy cái thông báo này.

* Bước 2:

_ Chạy W32Dasm, chọn “Open file to Disassembler…” hay nhấn trên thanh công cụ

cũng được.

_ Chọn file cần Crack.

_ Trên menu Refs, chọn String Data References. Tại sao ta phải làm như vậy, bạn

hãy xem đoạn mã sau :

Nếu “Serial bạn gõ vào” = “Serial chương trình” thì <—- Ta sẽ Patch chỗ này

Nhảy đến đăng ký bản quyền

Còn không

Nhảy đến bảng thông báo “Incorrect password…” <——- Bạn cần ở đây trong

W32Dasm

Bây giờ, nếu nó kêu là sai thì mình cho nó thành đúng :

Nếu “Serial bạn gõ vào” <> “Serial chương trình” thì <—– Chỗ đã được patch

Nhảy đến đăng ký bản quyền


Còn không

Nhảy đến bảng thông báo “Incorrect password…” <——– Bạn cần ở đây trong

W32Dasm

Còn bây giờ bạn cần biết một chút về assembler (vì chương trình sẽ được W32Dasm

dịch ra assembler mà

Viết lại trong assembler đoạn code trên sẽ tương tự như :

cmp eax, eax <—– So sánh số serial/unlock code…

jne [Địa chỉ 1] <—– Nhảy đến thông báo số đăng ký đúng hoặc sai

call [Địa chỉ 2] <—– Nhảy đến thông báo ngược lại

Bây giờ, giả sử [Địa chỉ 1] là nhảy đến thông báo đã được đăng ký và [Địa chỉ 2]

nhảy đến thông báo “Incorrect password…” thì ta sẽ phải sửa lại đoạn code như sau :

cmp eax, eax

je [Địa chỉ 1] <—— Chỗ đã được Patch

call [Địa chỉ 2]

Trong assembler, câu lệnh nhảy được biết đến là :

je = Jump if equal : Nhảy nếu bằng

jne = Jump if not equal : Nhảy nếu không bằng

Vì vậy, thông thường “je” được đổi thành “jne” và ngược lại.

Trở lại với chương trình của chúng ta, đi tìm chuỗi “Incorrect password…” là chúng ta

đã đến bảng thông báo “Incorrect password…”. Kiếm bằng cách vào menu

Refs/String data references của W32Dasm, tìm chuỗi “Incorrect password…” và nhấn

kép vào nó (hy vọng là có 8-). Lúc này, W32Dasm đưa chúng ta đến bảng thông báo

chưa đăng ký rồi, nhiệm vụ của chúng ta là phải kiếm được nơi có chứa lệnh nhảy
đến bảng thông báo này. Hãy dời con trỏ lên cho tới khi nào kiếm thấy dòng “je …”

hay “jne…” thì dừng lại ở đó. Còn nếu thấy dòng :

* Reference ….

:000… <—- để ý địa chỉ này

thì hãy dừng lại đó vì bảng thông báo đã được gọi từ 1 địa chỉ khác, nhấn Shift-F12

(hay vào menu Goto/Goto Code Location), nhập vào dãy số000… sau dòng “*

Reference…” rồi Enter.

Lặp lại các bước dò như trên cho đến khi nào thấy được dòng “je…” hay “jne…“

Cuối cùng, khi đã kiếm được rồi thì hãy nhìn xuống thanh status bar, bạn sẽ thấy 1

chuỗi số ngay sau “@Offset …00…“. Nhớ lấy chuỗi số đó, và đừng quên là bỏ chữ “h”

cuối cùng đi, vì đây là chữ biểu hiện cho số HEX.

* Bước 3 :

_ Đóng W32Dasm lại. Mở HView ra, nhấn F4, chọn Decode, nhấn F5, đánh vào giá

trị00… bạn thu được ở “@Offset…00…” lúc nãy và Enter, HView đưa bạn đến ngay

đúng dòng bạn nhìn thấy trong W32Dasm và còn chờ gì nữa, patch nó đi. Nhấn F3,

rồi F2 (tôi chọn cách này để giúp Newbie dễ hiểu hơn vì đôi lúc không phải lúc nào

giá trị cũng là 74 và 75). Sửa “jne...” thành “je…” và “je…” thành “jne…“

_ Cuối cùng, nhấn F9 để Save chương trình và F10 để thoát, bạn chạy lại chương

trình và nhập số đăng ký bất kỳ thử xem sao, nếu may mắn, bạn sẽ nhận được

thông báo “Thanks for …” 8-), hehe, và đừng quên lưu 1 bản .EXE để đề phòng sự cố

trước khi Patch .

Mẹo : Nếu không tìm thấy dòng “Incorrect password…” thì bạn thử đi ngược lại là đi

từ dòng “Thanks for…” hay “Registered…” xem .

Đây là cách đơn giản nhất để Patch chương trình, ngoài ra còn có thể dùng SoftICE,

VBDe, DeDe, SmartCheck… cái đó để hỗ trợ crack soft là tùy ở bạn . Bạn có thể
nâng cao “tay nghề” bằng cách viết keygen hoặc bằng 1 số thủ thuật khác như “spy

memory” .

Đây là bài viết hướng dẫn newbie về cách “làm thế nào để crack một chương
trình”. Vì vậy, nội dung rất đơn giản, nếu có “cao thủ” nào “bức xúc” về nội
dung bài viết thì xin vui lòng bỏ quá cho
Cách dễ nhất để crack là dùng 2 công cụ chính :
Win32Dasm, HView… bộ óc, Coca Cola và âm nhạc 8-).
Giải thích công dụng :
W32Dasm : Công cụ dùng để disassembler một file ra mã máy. Nó còn được
dùng để hiểu xem chương trình này làm cái “quái” gì trong đó.
HView : Khi đã biết được nơi cần patch trong file, bạn có thể dùng công cụ
hữu ích này.
Vì đây là cách đơn giản nhất để crack chương trình nên không phải tất cả các
chương trình đều có thể crack được mà khoảng 40% chương trình sẽ được
patch bằng cách này 8-).
Đầu tiên, bạn phải xem coi chương trình có được nén(pack) lại hay không.
Nén ở đây không có nghĩa là được nén bằng WinZip hay WinRAR mà file .EXE
được nén nhỏ lại mà vẫn có thể chạy được bình thường không cần giải nén.
Để biết file có bị nén hay không, bạn phải xem mở file .EXE đó ra để xem
đoạn mã của nó. Ở đây tôi dùng WinNC, chọn file cần xem và nhấn F3.
Thông thường, nếu file đã bị nén thì nó sẽ có 1 dòng đặc trưng trong file bị
nén ở đầu file. Chẳng hạn như được nén bằng ASPack thì (thường) trong file
sẽ có chuỗi “aspack”. Nén bằng UPX thì sẽ có dòng “UPX…”. Còn đối với
shrink thì có chữ “shrink”. Tuy nhiên, cũng có một vài công cụ giúp ta giải
nén (unpack) mà không cần biết file được nén theo dạng nào, đó là nó tự
động nhận dạng. Tuy nhiên, nếu dạng được nén không được hỗ trợ thì nó
cũng đành bó tay. Tiêu biểu cho loại này là ProcDump32, nó hỗ trợ khá
nhiều dạng phổ biến như ASPack, Code Safe 3.X, PC Guard 2.10, PE
Compact, PKLITE… bạn có thể chọn “*unknown*” để chương trình tự động
nhận dạng.
Ngoài ra, có thể chương trình còn được bảo vệ bởi 1 đoạn mã bảo vệ
(Security Code). Đây là một đoạn mã dùng để bảo vệ chương trình tránh bị
debug (anti-debug) hay thay đổi kích thước. Đối với loại này, chúng ta cũng
có một số chương trình để bỏ phần Security Code đó, có thể kể ra là : Anti
Crypt, UnCode Crypt, tEunlock…
Giả sử như bạn đã bỏ Security Code và giải nén được chương trình, lúc này,
nó sẽ phình ra lớn hơn so với lúc bình thường (giải nén mà), đã đến lúc bắt
tay vào crack nó.
* Bước 1:
_ Chạy chương trình cần Crack
_ Thông thường nó sẽ bắt bạn đăng ký, hoặc sẽ để trên một Menu nào đó để
bạn đăng ký chương trình, đại loại là Registration, Register, Purchase…
_ Nhấn vào nó, điền đầy đủ thông tin và nhập đại một số Serial/Unlock
Code/Registration Code bất kỳ. Chương trình sẽ hiện lên một bảng thông
báo tương tự như “Incorrect Password…”, “Wrong Serial…”, “Re-enter
password…” (hầu hết các chương trình đều có bảng thông báo này cho
người dùng biết ngoại trừ những crackme . Okie, hãy nhớ lấy cái thông
báo này.
* Bước 2:
_ Chạy W32Dasm, chọn “Open file to Disassembler…” hay nhấn trên thanh
công cụ cũng được.
_ Chọn file cần Crack.
_ Trên menu Refs, chọn String Data References. Tại sao ta phải làm như vậy,
bạn hãy xem đoạn mã sau :
Nếu “Serial bạn gõ vào” = “Serial chương trình” thì <—- Ta sẽ Patch chỗ này
Nhảy đến đăng ký bản quyền
Còn không
Nhảy đến bảng thông báo “Incorrect password…” <——- Bạn cần ở đây
trong W32Dasm
Bây giờ, nếu nó kêu là sai thì mình cho nó thành đúng :
Nếu “Serial bạn gõ vào” <> “Serial chương trình” thì <—– Chỗ đã được
patch
Nhảy đến đăng ký bản quyền
Còn không
Nhảy đến bảng thông báo “Incorrect password…” <——– Bạn cần ở đây
trong W32Dasm
Còn bây giờ bạn cần biết một chút về assembler (vì chương trình sẽ được
W32Dasm dịch ra assembler mà
Viết lại trong assembler đoạn code trên sẽ tương tự như :
cmp eax, eax <—– So sánh số serial/unlock code…
jne [Địa chỉ 1] <—– Nhảy đến thông báo số đăng ký đúng hoặc sai
call [Địa chỉ 2] <—– Nhảy đến thông báo ngược lại
Bây giờ, giả sử [Địa chỉ 1] là nhảy đến thông báo đã được đăng ký và [Địa
chỉ 2] nhảy đến thông báo “Incorrect password…” thì ta sẽ phải sửa lại đoạn
code như sau :
cmp eax, eax
je [Địa chỉ 1] <—— Chỗ đã được Patch
call [Địa chỉ 2]
Trong assembler, câu lệnh nhảy được biết đến là :
je = Jump if equal : Nhảy nếu bằng
jne = Jump if not equal : Nhảy nếu không bằng
Vì vậy, thông thường “je” được đổi thành “jne” và ngược lại.
Trở lại với chương trình của chúng ta, đi tìm chuỗi “Incorrect password…” là
chúng ta đã đến bảng thông báo “Incorrect password…”. Kiếm bằng cách
vào menu Refs/String data references của W32Dasm, tìm chuỗi “Incorrect
password…” và nhấn kép vào nó (hy vọng là có 8-). Lúc này, W32Dasm đưa
chúng ta đến bảng thông báo chưa đăng ký rồi, nhiệm vụ của chúng ta là
phải kiếm được nơi có chứa lệnh nhảy đến bảng thông báo này. Hãy dời con
trỏ lên cho tới khi nào kiếm thấy dòng “je …” hay “jne…” thì dừng lại ở đó.
Còn nếu thấy dòng :
* Reference ….
:000… <—- để ý địa chỉ này
thì hãy dừng lại đó vì bảng thông báo đã được gọi từ 1 địa chỉ khác, nhấn
Shift-F12 (hay vào menu Goto/Goto Code Location), nhập vào dãy số000…
sau dòng “* Reference…” rồi Enter.
Lặp lại các bước dò như trên cho đến khi nào thấy được dòng “je…” hay
“jne…“
Cuối cùng, khi đã kiếm được rồi thì hãy nhìn xuống thanh status bar, bạn sẽ
thấy 1 chuỗi số ngay sau “@Offset …00…“. Nhớ lấy chuỗi số đó, và đừng
quên là bỏ chữ “h” cuối cùng đi, vì đây là chữ biểu hiện cho số HEX.
* Bước 3 :
_ Đóng W32Dasm lại. Mở HView ra, nhấn F4, chọn Decode, nhấn F5, đánh
vào giá trị00… bạn thu được ở “@Offset…00…” lúc nãy và Enter, HView đưa
bạn đến ngay đúng dòng bạn nhìn thấy trong W32Dasm và còn chờ gì nữa,
patch nó đi. Nhấn F3, rồi F2 (tôi chọn cách này để giúp Newbie dễ hiểu hơn
vì đôi lúc không phải lúc nào giá trị cũng là 74 và 75). Sửa “jne...” thành
“je…” và “je…” thành “jne…“
_ Cuối cùng, nhấn F9 để Save chương trình và F10 để thoát, bạn chạy lại
chương trình và nhập số đăng ký bất kỳ thử xem sao, nếu may mắn, bạn sẽ
nhận được thông báo “Thanks for …” 8-), hehe, và đừng quên lưu 1 bản .EXE
để đề phòng sự cố trước khi Patch .
Mẹo : Nếu không tìm thấy dòng “Incorrect password…” thì bạn thử đi ngược
lại là đi từ dòng “Thanks for…” hay “Registered…” xem ;-).
Đây là cách đơn giản nhất để Patch chương trình, ngoài ra còn có thể dùng
SoftICE, VBDe, DeDe, SmartCheck… cái đó để hỗ trợ crack soft là tùy ở bạn
. Bạn có thể nâng cao “tay nghề” bằng cách viết keygen hoặc bằng 1 số
thủ thuật khác như “spy memory” .

You might also like