MỤC LỤC
LỜI MỞ ĐẦU
LỜI CẢM ƠN
LỜI CAM ĐOAN
DANH MỤC HÌNH VẺ
DANH MỤC TỪ VIẾT TẮT
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ BẢO MẬT PHẦN MỀM QUA
PASSWORD...........................................................................................................10
1.1 CÁC VẤN ĐỀ VỀ PASSWORD...................................................................10
1.1.1 Khái niệm password.................................................................................10
1.1.2 Các dạng password...................................................................................10
1.1.2.1 Mật khẩu truyền thống.......................................................................10
1.1.2.2 Mật khẩu dạng hình ảnh....................................................................11
1.1.2.3 Mật khẩu dùng một lần duy nhất.......................................................13
1.1.3 Tầm quan trọng của password..................................................................14
1.2 CÁC LOẠI PROTECTION CƠ BẢN CỦA PHẦN MỀM...........................14
1.2.1 Registration Number (Serial-Number) Protection...................................15
1.2.1.1 Registration Number không đổi.........................................................15
1.2.1.2 Registration Number thay đổi dựa vào thông tin nhập vào...............16
1.2.1.3 Registration Number thay đổi dựa vào máy của người sử dụng.......16
1.2.1.4 Registration Number Protection trong VisualBasic 4.......................17
1.2.1.5 Registration Number được kiểm tra Online......................................19
1.2.2 Time Limited Programs...........................................................................19
1.2.2.1 Time Limit bị gỡ bỏ khi ta nhập đúng Registration-Number.............20
1.2.2.2 Time Limit bị gỡ bỏ khi tìm thấy Registration Key File (.REG)........21
1.2.2.3 Time Limit không thể bị gỡ bỏ, người dùng phải mua bản đầy đủ
không bị giới hạn thời gian............................................................................21
1.2.2.4 Time Limit dựa vào số lần mà ta đã khởi động chương trình...........22
1.2.3 Registration Key File (Key File) Protection............................................22
1.2.3.1 Một vài chức năng của chương trình sẽ bị khóa nếu không có
Registration key file.......................................................................................22
1.2.3.2 Chương trình sẽ giới hạn thời gian sử dụng nếu không có
Registration key file.......................................................................................23
1.2.4 Hardware Key (Dongle) Protection.........................................................23
1.2.4.1 Chương trình sẽ không thể chạy nếu không có Hardware-Key.........23
1.2.4.2 Một vài chức năng của chương trình sẽ bị giới hạn nếu không có
Hardware Key................................................................................................24
CHƯƠNG 2: CÁC PHƯƠNG THỨC BẺ KHÓA PHẦN MỀM...........................25
2.1 GIỚI THIỆU CHUNG VỀ PHẦN MỀM.......................................................25
2.1.1 Phần mềm miễn phí..................................................................................25
2.1.2 Phần mềm thu phí.....................................................................................26
2.2 CÁCH THỨC BẺ KHÓA PHẦN MỀM........................................................26
2.2.1 Serial........................................................................................................27
2.2.1.1 Giới thiệu...........................................................................................27
2.2.1.2 Cách sử dụng.....................................................................................28
2.2.1.3 Lưu ý..................................................................................................29
2.2.2 Keygen (Key Generator-Key Maker).......................................................29
2.2.2.1 Giới thiệu...........................................................................................29
2.2.2.2 Cách sử dụng.....................................................................................29
2.2.2.3 Lưu ý..................................................................................................31
2.2.3 REG File...................................................................................................31
2.2.3.1 Giới thiệu...........................................................................................31
2.2.3.2 Cách sử dụng.....................................................................................31
2.2.3.3 Lưu ý..................................................................................................32
2.2.4 Loader......................................................................................................32
2.2.5 Patch.........................................................................................................33
2.2.5.1 Giới thiệu...........................................................................................33
2.2.5.2 Cách sử dụng.....................................................................................33
2.2.5.3 Lưu ý..................................................................................................34
2.2.6 Crack........................................................................................................34
2.2.6.1 Giới thiệu...........................................................................................34
2.2.6.3 Lưu ý..................................................................................................35
2.2.7 Fixed.........................................................................................................35
2.2.7.1 EXE Fixed..........................................................................................35
2.2.7.2 IMG Fixed..........................................................................................36
2.2.8 Các dạng Fixed khác................................................................................38
2.3 CÁC CÔNG CỤ HỖ TRỢ CHO CRACK PASSWORD..............................38
2.3.1 Ollydb.......................................................................................................38
2.3.1.1 Giới thiệu...........................................................................................38
2.3.1.2 Thành phần của chương trình Ollydbg..............................................39
2.3.2 PeiD..........................................................................................................42
2.3.2.1 Giới thiệu...........................................................................................42
2.3.2.2 Chức năng..........................................................................................42
CHƯƠNG 3: THỬ NGHIỆM CRACK PASSWORD VỚI OLLYDBG...............44
3.1 KỊCH BẢN.....................................................................................................44
3.1.1 Giới thiệu..................................................................................................44
3.1.2 Yêu cầu.....................................................................................................44
3.2 THỰC HIỆN..................................................................................................45
3.2.1 Phân tích...................................................................................................45
3.2.2 Lựa chon giải pháp và công cụ.................................................................45
3.2.3.1 Yêu cầu 1............................................................................................46
3.2.3.2 Yêu cầu 2............................................................................................50
3.2.4 Nhận xét...................................................................................................56
3.3 KẾT QỦA DEMO..........................................................................................57
3.3.1 Yêu cầu 1..................................................................................................57
3.3.2 Yêu cầu 2..................................................................................................57
KẾT LUẬN.............................................................................................................59
TÀI LIỆU THAM KHẢO.......................................................................................60
DANH MỤC HÌNH VẼ
Hình 1.1 Nhập mật khẩu qua hình ảnh....................................................................12
Hình 1.2 Chọn mật khẩu qua hình ảnh....................................................................12
Hình 1.4 Tạo mật khẩu mới trong quá trình đăng nhập..........................................14
Hình 1.5 Registration-Number không đổi...............................................................15
Hình 1.6 Registration Number thay đổi dựa vào thông tin nhập vào......................16
Hình 1.7 Registration-Number thay đổi dựa vào máy của người sử dụng..............17
Hình 1.8 Registration Number trong VB4..............................................................17
Hình 1.9 Registration Number được kiểm tra online..............................................19
Hình 1.10 Thời hạn dùng thử của một phần mềm...................................................20
Hình 1.11 Thời hạn sử dụng của chương trình AVP...............................................20
Hình 1.12 Thông tin của phần mềm được xác nhận qua file Reg...........................21
Hình 1.13 Bản dùng thử của một chương trình.......................................................21
Hình 1.14 Registration key file của một chương trình............................................22
Hình 1.15 Cảnh báo lỗi khi không có Hardware key.............................................23
Hình 1.16 Chương trình bị giới hạn khi có Hardware key......................................24
Hình 2.1 Serial cho một phần mềm.........................................................................28
Hình 2.2 Serial nằm trong những file Text..............................................................28
Hình 2.3 Keygen của chương trình tăng tốc download...........................................29
Hình 2.4 Tiến hành lấy mã của của một số loại keygen..........................................30
Hình 2.5 File đăng ký của chương trình..................................................................31
Hình 2.6 Phần mềm them thông tin vào Regedit.....................................................31
Hình 2.7 Khi đăng ký một chương trình bằng file reg............................................31
Hình 2.8 Đăng ký window bằng Loader.................................................................32
Hình 2.9 Phiên bản Patch của chương trình tăng tốc download..............................33
Hình 2.10 Cách thực thi Patch đối với chương trình...............................................34
Hình 2.11 Cách thực thi của EXE Fixed.................................................................36
Hình 2.12 Các bảng thông báo khi không có đĩa....................................................37
Hình 2.13 Giao diện của chương trình Ollydbg......................................................39
Hình 2.14 Cửa số chính của chương trình...............................................................40
Hình 2.15 Cửa sổ Register.......................................................................................41
Hình 2.16 Giao diện của chương trình Peid............................................................42
Hình 3.1 Giao diện của chương trình Crackme.......................................................46
Hình 3.2 Thông tin không hợp lệ............................................................................46
Hình 3.3 Mở Crackme bằng Ollydbg......................................................................47
Hình 3.4 Các mô đun khi được gọi.........................................................................47
Hình 3.5 Thông báo nhập thông tin và Regcode khi ta chạy từ điểm F2................48
Hình 3.6 Reg code đã xuất hiện...............................................................................48
Hình 3.7 Sao lưu Reg code của User ban đầu.........................................................49
Hình 3.8 Kiểm tra Regcode có hợp lệ không..........................................................49
Hình 3.9 Reg code hợp lệ........................................................................................50
Hình 3.10 Giao diện khới động của Winrar............................................................50
Hình 3.11 Mở Winrar bằng Ollydbg.......................................................................51
Hình 3.12 Chương trình chạy sau khi F9................................................................51
Hình 3.13 Debug chương trình................................................................................52
Hình 3.14 Thông báo Purchase của Winrar.............................................................52
Hình 3.15 Đoạn code về Purchase...........................................................................53
Hình 3.16 NOP để bỏ qua hộp thoại thông báo.......................................................53
Hình 3.17 Sao lưu đoạn code mà ta đã sửa.............................................................54
Hình 3.18 Thông báo copy all đoạn code trên.........................................................54
Hình 3.19 Đoạn code mà ta sao lưu đã xuất hiện....................................................55
Hình 3.20 Thông báo ghi đè tập tin của chương trình.............................................55
Hình 3.21 Giao diện Winrar sau khi Crack.............................................................56
Hình 3.22 Crack me trước khi crack.......................................................................57
Hình 3.23 Crack me sau khi crack...........................................................................57
Hình 3.24 Winrar trước khi crack...........................................................................58
Hình 3.25 Winrar sau khi crack...............................................................................58
DANH MỤC TỪ VIẾT TẮT
Từ viết tắt
API
CTSS
MIT
NOP
OTP
Tên đầy đủ
Application Programming Interface
Compatible Time Sharing System
Massachusetts Institute of Technology
No operation
One time password
LỜI MỞ ĐẦU
Trong thời đại công nghệ thông tin hiện nay ngoài sự phát triển của các công nghệ
mới, các kỹ thuật tiên tiến hiện đại, các sản phẩm phần cứng .v.v. thì sự phát triển của sản
phẩm phần mềm cũng không ngoại lệ nó phát triển sao cho phù hợp với nhu cầu của thời
đại, sự cạnh tranh giữa các sản phẩm phần mềm. Đặc biệt là nhu cầu của người sử dụng
với sự phát triển những tính năng mới, lẫn giao diện thì việc phát triển các mức độ bảo vệ
cho phần mềm cũng rất quan trọng.Các mức độ bảo vệ này đảm bảo cho sự sử dụng hợp
lệ của những sản phẩm phần mềm, lợi ích của người phát triển chúng.
Bên cạnh đó thì có những người có những kỹ năng am hiểu hệ thống, và phát triển
phần mềm thì họ tìm cách vượt qua những mức độ bảo vệ của nhà sản xuất phần mềm.
Nó là một quá trình phát hiện ra các công nghệ cơ bản của một đối tượng hay một hệ
thống thông qua việc phân tích cấu trúc ,chức năng và cách vận hành của chúng và kỹ
thuật đó được gọi là kỹ thuật đảo ngược. Chính vì những lý do trên em đã chọn đề tài
“TÌM HIỂU VỀ CRACK PASSWORD CHO SẢN PHẨM PHẦN MỀM” để nghiên
cứu và thực hiện khóa luận tốt nghiệp lần này.
Nội dung khóa luận tốt nghiệp bao gồm ba chương:
Chương 1: Giới thiệu tổng quan về bảo mật phần mềm qua password.
Chương 2: Giới thiệu khái quát về phần mềm và các phương thức bẻ khóa
phần mềm.
Chương 3: Thử nghiệm Crack password với Ollydbg và demo một số chương
trình đơn giản.
CHƯƠNG 1
GIỚI THIỆU TỔNG QUAN VỀ BẢO MẬT PHẦN MỀM QUA
PASSWORD
1.1 CÁC VẤN ĐỀ VỀ PASSWORD
1.1.1 Khái niệm password
Mật khẩu thường là một xâu, chuỗi, loạt các kí tự mà dịch vụ Internet, phần mềm, hệ
thống máy tính yêu cầu người sử dụng nhập vào bằng bàn phím trước khi có thể tiếp tục
sử dụng một số tính năng nhất định.
Mật khẩu có thể đi cặp với tên truy nhập khi hệ thống cần phân biệt các người sử
dụng khác nhau
1.1.2 Các dạng password
1.1.2.1 Mật khẩu truyền thống
Công nghệ bảo mật bằng mật khẩu (password) đã được áp dụng từ những ngày đầu
tiên khi máy tính xuất hiện.Năm 1961, viện công nghệ MIT cho ra mắt một trong những
hệ thống chia sẻ đầu tiên trên thế giới – CTSS – cùng với hệ thống mật khẩu sơ khai bao
gồm lệnh LOGIN, yêu cầu người dùng nhập vào mật khẩu.Sau khi nhập lệnh
PASSWORD, người dùng sẽ phải nhập tiếp mật khẩu của mình để được hệ thống xác
nhận.
Cũng trong thập niên 1960, công nghệ bảo mật bằng mật khẩu dần được hoàn thiện
thành dạng password được sử dụng phổ biến nhất cho đến ngày nay: alpha – numeric
password, tức mật khẩu dưới dạng một chuỗi các chữ cái và chữ số. Bất kỳ chuỗi ký tự
nào cũng có thể trở thành mật khẩu, nhưng người dùng được khuyến cáo nên đặt mật
khẩu của mình phức tạp đủ để không bị người khác đoán ra.Mật khẩu càng phức tạp, khó
đoán thì độ bảo mật càng cao.Tuy nhiên, độ phức tạp của mật khẩu cũng tỉ lệ nghịch với
việc người dùng có thể nhớ chúng một cách dễ dàng.
Ngoài việc khó có thể tự đặt ra một mật khẩu đủ khó để không bị người khác đoán ra
nhưng cũng phải đủ dễ để chính bản thân người dùng có thể ghi nhớ, alpha – numberic
password còn phải đối mặt với các cuộc tấn công chiếm password và các chương trình
đánh cắp mật khẩu
Dạng tấn công phổ biến nhất là tấn công tra cứu từ điển (dictionary attack) phương
thức này hiểu đơn giản là kiểu đoán mật khẩu với các cụm từ có nghĩa thường được nhiều
người chọn dùng làm mật khẩu (thay vì các chuỗi ký tự ngẫu nhiên như được khuyến
cáo), kẻ tấn công sẽ dùng chương trình tự động thử tất cả các từ có nghĩa trong từ điển để
bẻ khóa password.
Ngoài ra còn có hàng trăm chương trình keylogger được sử dụng để ghi nhận quá
trình nhập password của nạn nhân rồi tự động gửi thông tin về cho kẻ có ý muốn đánh
cắp password đó.Hoặc kiểm tra cứu từng ký tự trong mật khẩu (brute-force attack),
chương trình sẽ tự động dò tìm từng ký tự trong chuỗi mật khẩu. Tuy dạng brute-force
attack có tỉ lệ phá mật khẩu cao nhưng nếu người dùng sử dụng các loại mật khẩu bao
gồm nhiều ký tự chữ và số xen lẫn ký tự đặc biệt thì có thể phải mất nhiều năm mới có
thể tìm ra chuỗi mật khẩu hoàn thiện (Ví dụ: n$W0k1J^57$h@k3R mật khẩu được cho là
có tính bảo mật cao nhưng lại khó nhớ).
Trước sự đe dọa của các chương trình đánh cắp mật khẩu, việc phát minh ra nhiều
dạng password mới thay thế cho kiểu truyền thống là hết sức cần thiết, và mật khẩu hình
ảnh cùng với mật khẩu một lần là 2 trong số những số ấy.
1.1.2.2 Mật khẩu dạng hình ảnh
Về cơ bản, con người có xu hướng ghi nhớ các thông tin dưới dạng hình ảnh dễ dàng
hơn thông tin dưới các dạng khác.Chúng ta có thể gặp khó khăn khi phải nhớ một chuỗi
50 ký tự, nhưng lại dễ dàng nhớ gương mặt của những người ta đã gặp, những nơi ta đã
đến và những thứ ta đã thấy.Dựa vào đặc điểm này, người ta đã tạo ra mật khẩu hình ảnh
(graphical password).
Để đăng nhập vào một website hay hệ thống được bảo mật bằng graphical password,
thay vì phải nhập một chuỗi ký tự như ở alpha – numberic password, người dùng sẽ được
yêu cầu ấn chuột vào 4 điểm trên bức ảnh mà hệ thống đưa ra.Bốn điểm này chính là mật
khẩu mà họ đã xác định và ghi nhớ trong quá trình tạo mật khẩu. Dĩ nhiên người dùng
cũng có thể chọn số lượng điểm bí mật nhiều hơn 4 để tăng độ bảo mật.
Hình 1.1 Nhập mật khẩu qua hình ảnh
Ở một hình thức khác, người dùng sẽ chọn và ghi nhớ 4 hoặc nhiều hơn các biểu
tượng trong quá trình tạo password và chọn lại chúng trong hàng loạt biểu tượng được
sắp xếp ngẫu nhiên và thay đổi trong quá trình đăng nhập.
Hình 1.2 Chọn mật khẩu qua hình ảnh
Một thuật toán khác: khi đăng ký tài khoản, người dùng sẽ tạo password bằng cách
chọn các biểu tượng do máy chủ cung cấp. Khi đăng nhập, những biểu tượng này sẽ được
thu nhỏ và xoay theo các chiều khác nhau, người dùng lúc này sẽ phải nhận ra biểu tượng
mà mình đã chọn, sau đó nhập vào ô password những ký tự hiện bên dưới biểu tượng đó.
Giải pháp này khá mất thời gian nên vẫn còn đang trong giai đoạn thăm dò ý kiến người
dùng.
Hình 1.3 Chọn mật khẩu qua biểu tượng
Điểm mạnh của graphical password là dễ nhớ mà mức độ bảo mật lại cao vì hacker
không thể sự dụng cách tấn công từ điển để đánh cắp mật khẩu và các chương trình
keylogger cũng trở nên vô dụng vì các biểu tượng được xáo trộn ngẫu nhiên mỗi lần đăng
nhập.Tuy nhiên bạn cũng có thể bị lộ password nếu người khác quan sát và ghi nhớ các
biểu tượng cũng như điểm ảnh bạn chọn mỗi lần đăng nhập.
1.1.2.3 Mật khẩu dùng một lần duy nhất
Nguyên lý hoạt động của mật khẩu một lần (One time password - OTP) như sau: sau
khi đã đăng ký dịch vụ, mỗi lần muốn đăng nhập, người dùng sẽ được cung cấp một mật
khẩu tạo ra bởi đầu đọc và thẻ thông minh hay thiết bị tạo mật khẩu cầm tay (token) nhờ
vào kết nối internet với máy chủ của dịch vụ cung cấp OTP hoặc cũng có thể thông qua
thẻ OTP in sẵn hhay điện thoại di động mà không cần đến kết nối internet.
Mật khẩu này sẽ tự mất hiệu lực sau khi người dùng đăng xuất (log out) ra khỏi hệ
thống.Như vậy, nếu bạn bị lộ mật khẩu thì người có được mật khẩu đó cũng không thể
dùng được, và do đó giải pháp OTP có tính bảo mật rất cao.
Hình 1.4 Tạo mật khẩu mới trong quá trình đăng nhập
Quá trình tạo mật khẩu mới sẽ lặp lại mỗi lần người dùng đăng nhập vào hệ thống
được bảo mật bằng OTP.Công nghệ OTP được dùng nhiều trong chứng thực trực tuyến
(thương mại trực tuyến).Hiện nay người dùng các thiết bị cầm tay như iPhone,
Blackberry cũng có thể tự cài đặt cơ chế bảo mật OTP bằng các chương trình như
VeriSign, RSA SecureID hay SafeNet MobilePASS.
1.1.3 Tầm quan trọng của password
Có rất nhiều lý do để sử dụng mật khẩu. Dưới đây là một số lý do phổ biến:
Để ngăn chặn truy cập trái phép đến thông tin quan trọng.
Để đảm bảo an ninh thông tin cá nhân.
Để ngăn chặn nguy cơ trái phép truy cập vào tài khoản người dùng, chẳng hạn như
máy tính và tài khoản email.
Để có thể sử dụng một số dịch vụ Internet khác nhau một cách an toàn.
1.2 CÁC LOẠI PROTECTION CƠ BẢN CỦA PHẦN MỀM
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.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).
1.2.1 Registration Number (Serial-Number) Protection
Những chương trình sử dụng loại này yêu cầu người sử dụng nhập vào một
Registration-Number để đăng ký.Có nhiều loại Registration-Number bao gồm:
Registration-Number luôn luôn giống nhau.
Registration-Number thay đổi dựa vào các thông tin nhập vào như tên công ty,tên
người sử dụng v.v...
Registration-Number thay đổi dựa vào máy người dung.
Registration-Number được bảo vệ trong các chương trình được viết bằng Visual
Basic hoặc Borland Delphi.
Registration-Number được kiểm tra online.
1.2.1.1 Registration Number không đổi
Một chương trình được bảo vệ bằng phương pháp này yêu cầu người dung nhập vào
một số đăng ký như hình trên:
Hình 1.5 Registration-Number không đổi
Tiện lợi của phương pháp bảo vệ này so với các kỹ thuật bảo vệ Registration-Number
khác là correct Registration-Number không cần lưu trong bộ nhớ rồi đem so sánh với
Registration-Number được nhập vào mà cả hai sẽ được XORed hoặc tính toán rồi lấy hai
kết quả đó để so sánh với nhau.Dĩ nhiên là các lập trình viên có thể sử dụng các phép tính
phức tạp hoặc mã hóa nhiều sections của chương trình để làm cho các Crackers khó mà
tìm được một Registration-Number chính xác.
1.2.1.2 Registration Number thay đổi dựa vào thông tin nhập vào
Đây là một protection được sử dụng phổ biến.Với các loại protection này thì trước khi
nhập vào một Registration-Number bạn phải nhập tên,công ty,hoặc các thông tin khác và
một correct Registration-Number sẽ thay đổi dựa vào thông tin bạn nhập vào.
Hình 1.6 Registration Number thay đổi dựa vào thông tin nhập vào
Nếu bạn nhập vào Registration Number mà không đúng với thông tin đã nhập thì sự
đăng ký đó sẽ không thành công.
1.2.1.3 Registration Number thay đổi dựa vào máy của người sử dụng
Đây là một protection rất khó chịu cho các Crackers,bởi vì chương trình được đăng
ký ở máy này nhưng khó có thể đăng ký ở máy khác bởi vì Registration-Number sẽ thay
đổi dựa vào thông tin của ổ cứng …
Hình 1.7 Registration-Number thay đổi dựa vào máy của người sử dụng
Đối với loại protection này thì ta phải tìm ra cho được đoạn code dùng để phát hiện
các thông tin của máy tính như ổ cứng… và đoạn code kiểm tra tính hợp lệ của
Registration-Number nhập vào.
1.2.1.4 Registration Number Protection trong VisualBasic 4
a. Visual Basic 4
Đối với các chương trình viết bằng VB4 thì một cracker có kinh nghiệm chỉ cần chưa
đầy 5 phút là có thể tìm ra được Correct Registration-number bởi vì các chương trình
được viết bằng VB4 đều sử dụng cùng một thư viện VB40016.DLL (VB40032.DLL) để
so sánh Correct Registration-number với Registration-number nhập vào.
Hình 1.8 Registration Number trong VB4
Thậm chí khi một chương trình được viết bằng VB4 dùng phương pháp khác để so
sánh với Registration-number được nhập vào thì ta cũng có thể dễ dàng tìm ra
Correct Registration-number trong bộ nhớ bởi vì một Correct Registration-number luôn
được đặt gần với fake Registration-number,do đó chỉ cần tìm ra fake Registration-number
là ta có thể tìm được Correct Registration-number.
Tiện lợi của các chương trình được viết bằng VB4 là khó trace trong SoftIce bởi vì
code của nó không được compiled ra mã máy (machine code) mà được compiled thành
các mã giả (pseudo-instructions).Các mã giả này chỉ được thực thi khi chương trình bắt
đầu chạy.
b. Cracked trong VB4
Đối với các chương trình VB4 16-bit, thì phải tìm trong memory và trong
VB40016.DLL đoạn sau: 8BF88EC21EC5760E33C0F3A674051BC01DFFFF rồi đặt
breakpoint vào nơi tìm ra đoạn code.
Sau trace tới repz cmpsb (dùng để so sánh giữa Correct Registration-number và fake
Registration-number) rồi nhìn vào địa chỉ es: di và ds: si để tìm ra Correct Registrationnumber.
Hầu hết các chương trình VB4 32-bit sử dụng hàm MultiByteToWideChar trong thư
viện VB40032.DLL để
so sánh hai chuỗi.Việc cần làm là đặt breakpoint tại hàm
hmemcpy trước khi nhấn OK và trace cho tới khi vào VB40032.DLL rối tìm trong
memory các bytes sau: 56578B7C24108B74240C8B4C2414
Đặt breakpoint vào địa chỉ tìm được sau đó nhấn OK
c. VB5 and Higher, VB5 and Higher compiled in P-code (packed code)
Chương trình viết bằng VB5 (or P-code) thì khó crack hơn VB4. Các crackers thường
không muốn crack các chương trình được viết bằng VB (hoặc Delphi) bởi vì code của nó
khó đọc và khó hiểu, hơn nữa lại mất nhiều thời gian để trace
Để crack các chương trình viết bằng VB thì các crackers thường sử dụng các
phương pháp phát sinh ra một Registration-number chỉ để cho một người dùng hoặc
sửa code để chương trình chấp nhập các Registration-number nhập vào. Chỉ có những
crackers xuất sắc mới tạo ra được keygen bởi vì code của nó rất khó hiểu (và công cụ
thường sử dùng là SmartCheck).
1.2.1.5 Registration Number được kiểm tra Online
Một vài phần mềm dùng Internet để kiểm tra các Registration-Number
Hình 1.9 Registration Number được kiểm tra online
Khi mà các Registration-Number được nhập vào thì nó sẽ được gửi tới server thông
qua Internet.Server này sẽ kiểm tra và trả về một giá trị cho biết Registration-Number đó
có đúng không
Chương trình sẽ xử lý giá trị này và quyết định đoạn chương trình có được đăng ký
hay không, phần lớn các protection này rất đơn giản, một cracker có kinh nghiệm có thể
loại bỏ một cách dễ dàng.
1.2.2 Time Limited Programs
Đây là loại chương trình sẽ không cho sử dụng nếu hết hạn dùng thử, nhưng
protection này không hiệu quả lắm bởi vì một khi giới hạn Time Limits mà bị cracked thì
ta có thể sử dụng toàn bộ chức năng của chương trình.
Time Limits được thực thi bằng nhiều cách:
Time Limit bị gỡ bỏ khi ta nhập đúng Registration-Number.
Time Limit bị gỡ bỏ khi tìm thấy Registration File.
Hình 1.10 Thời hạn dùng thử của một phần mềm
Time Limit không thể bị gỡ bỏ, người dùng chỉ còn lựa chọn duy nhất là mua bản
quyền đầy đủ mà không bị giới hạn thời gian.
Time Limit dựa vào số lần mà chương trình đã chạy.Khi đạt tới số lần quy định thì
chương trình sẽ không cho sử dụng nữa.
1.2.2.1 Time Limit bị gỡ bỏ khi ta nhập đúng Registration-Number
Protection này cũng tương tự các protection đã trình bày,có cái khác là nếu correct
Registration-Number không được nhập vào, chương trình sẽ không được đăng ký và nó
sẽ không chạy sau khi hết hạn dùng thử.
Hình 1.11 Thời hạn sử dụng của chương trình AVP
- Xem thêm -