Tải bản đầy đủ (.doc) (2 trang)

giới thiệu về crack

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (79.5 KB, 2 trang )

Lời nói đầu
Requirement: Cracking theo Zombie thực chất cũng là một hình thức nghiên cứu
Applipcation biến hóa đi nhằm mục đích có được license một cách .... không chính
thức. Do đó các kiến thức lập trình là điều tối thiểu các bạn cần có...tuy không quá nhất
thiết phải biết nhiều ngôn ngữ hay phải nắm thật quá rõ Assembly như các bạn thường
nói. Các chính là một số vốn kiến thức lập trình về một ngôn ngữ nào đó, phần
Assembly có thể chỉ cần nắm sơ khái niệm cũng như ...bảng tra ý nghĩa một số lệnh
thông dụng (còn mã máy thì có thể chẳng cần biết vì ta hoàn toàn có công cụ làm việc
này) Ngoài ra các toolz Debuger, DeComplier v..v. Zombie sẽ lần lượt giới thiệu và đưa
link down.
Khái niệm về việc Protect License của Softwarez
A. Định nghĩa việc protect của softwarez:
Quote:
- Một Software sau khi được đưa vào mục đích thương mại thì luôn được xử lý nhằm
tránh việc ăn cắp bản quyền ( license ) gây thiệt hại cho nhà sản xuất.
Thế nhưng việc xử lý này được tiến hành như thế nào ?... Nó là 1 module nhỏ trong
nhằm xác định tính chủ quyền những ai đã mua Software. Có thể gọi nó là module
Protect License.
- Module này có rất nhiều hình thức biến hóa nhằm ngăn chặn đến mức tối đa việc xâm
phạm bản quyền ( bao gồm việc sử dụng softwares ở mức độ không được sự đồng ý của
nhà sản xuất, hoặc ăn cắp các giải thuật để code lại một Software khác cạnh tranh, v...v)
B. Loại Protect bằng Registration Number
Registration−Number (Serial−Number) Protection: Đây là hình thức sử dụng phổ
biến nhất. Chương trình sự dụng registration−number yêu cầu user nhập
registration number để đăng kí. The registration number phụ thuộc vào các tiêu
chuẩn riêng biệt theo sự sắp đặt của nhà sản xuất. Và trong chính bản thân loại
protect này có nhiều hình thức phân loại như sau (ở đây tạm thời chỉ đưa ra một
số dạng cơ bản thường gặp nhất)
Quote:
+ Registration number luôn luôn là một hằng số được lưu trữ sẵn: Cách đơn giản nhất
là lưu sẵn trong app một giá trị cố định. Người dùng sau khi đăng kí với nhà sản xuất sẽ


có được giá trị này để nhập vào.
+ Registration number thay đổi phụ thuộc thông tin đăng kí như (company, name, and
so on): Cao hơn chút.. Với cách này ứng với từng user sẽ có thông tin Register khác
nhau.
+ Registration number thay đổi lệ thuộc vào user's computer: Dạng này thì lấy thông tin
đăng kí dựa vào thông tin Computer của customer để tạo ra Registration Number. Với
dạng này App chỉ có thể được sử dụng như là Registered trên 1 máy duy nhất.
+ Registration number được check online: Thực chất cũng tương tự các dạng khác,
nhưng sử dụng hình thức connect với server nhà sản xuất, từ đó sẽ có thông tin trả về
nhằm register chương trình.
Còn rất nhiều loại protect khác...Nhưng tạm thời ta sẽ xoay quanh các loại chính này.
- Oki...Như đã nói trên, Softwares khi được phát hành sẽ có những module protect
license. Vấn đề ở đây ! Làm sao có thể qua được những protect này, để có thể sử dụng
chương trình như là đã registered ? Tuy nhiên muốn làm được như thế ta cần phải hiểu
protect loại gì, và sự protect đó diễn ra như thế nào trong chương trình khi nó thực thi.
Cách duy nhất là phải “đọc” diễn tiến quá trình xử lý để rút ra cách chống lại chính nó.
- Việc “đọc” quá trình protect, tất nhiên sẽ rất dễ dàng làm nếu như có trong tay source
code chương trình -->> Thực tế là không khả thi vì đâu ai cung cấp cho ta. Vậy ta phải
“đọc” dưới dạng một ngôn ngữ khác..Ngôn ngữ assembly. Một ngôn ngữ máy. ( vì một
chương trình khi thực thi luôn được đưa về ngôn ngữ máy để tiến hành, ta sẽ “đọc” ở
quá trình này).
- Khi DeComplie (ASM) ta chỉ có thể đọc được source của nó dưới dạng mã máy hoặc
ngôn ngữ gần mã máy lê assembly. Nhưng cách lêm nêy khá bất lợi vì khi desource ta
phải đọc chay source asm..Mê điều nêy không phải dễ đề tìm ra module cần thiết
(module protect).
Với các bạn học về lẪp trình cũng sẽ biết khái niệm debug...Nghĩa lê ta vẫn cứ cho ứng
dụng chạy bình thường, nhưng trong một chế độ đặc biệt gọi lê Debug nhằm kiểm soát
diễn tiến để có thể fix bugs.-->> Ứng dụng điều nêy vêo việc tìm hiểu diễn tiến của
phần mềm để tìm ra cách xỪ lý protect !
Và phục vụ cho các việc này ta có những công cụ như debugger, decomplier v..v..

C. Think to Crack: Phần này sẽ giúp các bạn có cách nhìn cơ bản vào một
softwares để định hướng Crack sẽ làm
Quote:
- Như đã nói qua, module Protect license có nhiều loại biến hóa khác nhau và ứng với
mỗi cách ta có những hướng giải quyết khác nhau. Vì thế việc làm đầu tiên là xác định
loại protect.
- Sau đó là quá trình cách trace đến module protect license này. �*̉ phần này rất rất đa
dạng, các bạn cần linh động thay đổi hướng giải quyết nhằm phù hợp với các trường
hợp. Tuy nhiên một số cách làm chính như sau:
+ Tìm cách set Breakpoint từ các APIs thông dụng như GetWindowTextA,
GetDlgItemTextA, SendMessages, MessageBoxA: Vì sao ta lại chọn những hàm APIs
này?..
Cũng đơn giản thôi: Trong đa phần trường hợp nhập Registration Infor vào thì luôn có
việc chương trình sẽ lấy thông tin ta nhập vào (GetWindowTextA, GetDlgItemTextA,
SendMessages). Sau đó là trả về thông báo cho biết việc nhập vào Information trên là
valid or not? (MessageBoxA, MeesageBeep).
Với cách làm này là tốt nhất vì cho phép ta đến ngay được trước quá trình xử lý thông
tin Registration (tức là trước khi module Protect license được gọi)
+ Hoặc cách khác đơn giản khác là từ String thông báo trả về (Example: “Your Serials
No entered is not invalid”). Từ vị trí các string này ta cũng có thể lần được ngược về
quá trình xử lý. Tuy nhiên điều này đôi lúc khá phức tạp.
+ Tương tự cách đầu tiên nhưng ta xử lý với các APIs khác như: RegQueryValue,
RegOpenKeyExA, ReadFile v..v.. để xứ lý với trường hợp dùng RegKey hoặc KeyFile.
- Sau khi tìm ra được module Protect license điều cần quan tâm là ta trace into vào nó
để xem đoạn code xử lý của nó và đưa ra cách Crack ( Keygen hoặc Patch ).
Thân

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×