Hôm nay tui sẽ hướng dẫn các bạn cách làm một template Keygen cơ bản trong RadASM.
Nói sơ qua về Keygen cho ai chưa biết về nó: Keygen chính là một chương trình nhỏ có tác dụng cho người dùng nhập vào một name user, từ đó nó sẽ tính tóan ra một số serial để đăng ký sử dụng 1 soft nào đó. Các cracker trên thế giới hay sử dụng lọai chương trình này để cung cấp cho người sử dụng. Vậy giao diện của 1 Keygen về căn bản như sau :
-Thanh tiêu đề là “Keygen- NameSoft” : để xác định chức năng của chương trình là tạo key đăng ký cho soft có tên là NameSoft.
-Add một Icon cho chương trình (các nhóm cracker thường add Icon của nhóm crack của mình).
-Để chương trình đẹp mắt đồng thời các nhóm cracker thường thực hiện bản quyền của keygen bằng cách add vào Dialog một hình bimap là biểu tượng của nhóm crack.
-Một Static là “User:” để báo chức năng của hộp Edit Text theo sau đó cho phép người dùng nhập vào tên user. Một Static là “Serial :” để báo chức năng của hộp Edit Text theo sau là hiển thị Serial đã tính tóan được.
-Hai hộp Edit Text , một cho phép người dùng nhập vào một tên user, hộp thứ hai hiển thị serial đã tính tóan
-Hai nút Button là Generate khi nhấn nó sẽ thực hiện tính tóan serial và nút button còn lại là Exit để thóat chương trình.
14 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 2086 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Basic template Keygen, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Benina’s TutASM #1
Basic template Keygen
Author: Benina
Tòan bộ code của tut này các bạn download tại link:
Hôm nay tui sẽ hướng dẫn các bạn cách làm một template Keygen cơ bản trong RadASM.
Nói sơ qua về Keygen cho ai chưa biết về nó: Keygen chính là một chương trình nhỏ có tác dụng cho người dùng nhập vào một name user, từ đó nó sẽ tính tóan ra một số serial để đăng ký sử dụng 1 soft nào đó. Các cracker trên thế giới hay sử dụng lọai chương trình này để cung cấp cho người sử dụng. Vậy giao diện của 1 Keygen về căn bản như sau :
-Thanh tiêu đề là “Keygen- NameSoft” : để xác định chức năng của chương trình là tạo key đăng ký cho soft có tên là NameSoft.
-Add một Icon cho chương trình (các nhóm cracker thường add Icon của nhóm crack của mình).
-Để chương trình đẹp mắt đồng thời các nhóm cracker thường thực hiện bản quyền của keygen bằng cách add vào Dialog một hình bimap là biểu tượng của nhóm crack.
-Một Static là “User:” để báo chức năng của hộp Edit Text theo sau đó cho phép người dùng nhập vào tên user. Một Static là “Serial :” để báo chức năng của hộp Edit Text theo sau là hiển thị Serial đã tính tóan được.
-Hai hộp Edit Text , một cho phép người dùng nhập vào một tên user, hộp thứ hai hiển thị serial đã tính tóan
-Hai nút Button là Generate khi nhấn nó sẽ thực hiện tính tóan serial và nút button còn lại là Exit để thóat chương trình.
Các bạn xem hình:
Bây giờ chúng ta sẽ thực hiện từng bước từng bước một.
Trước khi đọc tut này bạn nên xem qua tut : “Using RadASM tut #1” có trên Site Benina’s
-Trước tiên bạn tạo 1 DialogApp như tut tui vừa đề cập , tui sẽ ko nhắc lại ở đây. Project của ta có tên là Keygen1. Kế đến ta chuẩn bị 2 file bitmap và icon , copy nó vào thư mục /res của project chúng ta vừa tạo.
Trong cửa sổ Project ta Dclick vào file Keygen1.dlg để bắt đầu tạo giao diện cho Keygen. Bây giờ màn hình chương trình của ta như sau:
1.Thay đổi thanh tiêu đề của program:
Trong cửa sổ Properties ta chon Caption và đánh vào tên thanh tiêu đề : “Keygen-NameSoft”
2.Add Icon cho chương trình.
Các bạn làm theo tut “Using RadASM tut #1”.
-Add resource icon:
-Khai báo biến cho Icon trong file Keygen1.Inc tại section .data ?
hIcon dd ?
-Trong file Keygen1.Asm ta add thêm lệnh trong section .code tại DlgProc phần xử lý thông điệp WM_INITDIALOG:
invoke LoadIcon,hInstance,500
mov hIcon,eax
invoke SendMessage,hWin,WM_SETICON,NULL,hIcon
giống như hình sau:
Bây giờ chúng ta nên kiểm tra bước này xem có lỗi gì xảy ra ko bằng cách nhấn nút “GO”. Ok rồi nhé:
3.Add 1 hình biểu tượng cho Keygen:
Dclick vào file Keygen1.dlg để sọan thảo giao diện. Bây giờ ta click vào button Image trên thanh toolbar như hình :
Trong giao diện sọan thảo ta click và drap một hình chử nhật như sau:
Trong cửa sổ Properties ta thay đổi các mục:
-Mục Type ta đổi thành Bitmap
-Mục Image ta chọn file bmp đã copy vào thư mục /res lúc đầu
Chương trình của ta bây giờ sẽ có dạng sau :
Ta thay đổi chỉnh sửa để image có vị trí như sau:
Bây giờ nếu bạn hit vào nút “GO” thì hình ảnh của chúng ta sẽ ko xuất hiện trong chương trình như mong muốn. Vì trong resource của chương trình ko có hình bmp này. Do đó ta vào menu Project/Resource để add bitmap.Trước hết ta click vào hình Image trong cửa sổ sọan thảo để kick nó và nhìn vào của sổ Properties để lấy thông tin về ID và Name của Image
Vậy ID=1001 và Name=IDC_IMG1
Trên menu chọn Project/Resource ta thực hiện như hình sau:
Sau khi thực hiện xong ta vào file Keygen1.Inc để khai báo biến định nghĩa resource để ta sử dụng sau này nếu cần. Đây là một thói quen các bạn nên làm:
Trong section .CONST ta khai báo:
IDC_IMG1 equ 1001
Như hình sau:
Bây giờ ta hit GO thử xem . Nếu hình bmp chưa xuất hiện trong chương trình thì ta dời hình sang trái cho nó out ra ngòai cửa sổ chương trình của ta 1 chút như sau:
Sau đó ta hit nút “GO” lại xem sao. OK rồi nhé. Bây giờ cho dời hình lại như cũ đi bạn và cứ hit GO thử coi. Nó OK đúng ko?.
4. Cài đặt 2 Static:
Click vào button Static trên thanh toolbar để tạo 2 Static
Chọn lần lược các Static và thay đổi Caption thành “User” và “Serial”
Như tui đã nói, chúng ta nên có thói quen khai báo biến định nghĩa các item của chương trình trong file Keygen1.Inc để tiện sử dụng sau này. Thực hiện các bước tương tự như khai báo Image ở bước trên.
Khai báo thêm 2 biến như sau trong file Keygen1.Inc:
IDC_STC1 equ 1002
IDC_STC2 equ 1003
5. Cài đặt 2 EditText và 2 Button :
Làm tương tự như trên . Trên thanh Toolbar ,button cài đặt các đối tượng EditText và Button là:
Bây giờ chương trình của ta là :
Trong file Keygen1.Inc ta khai báo các biến định nghĩa các item vừa add:
IDC_EDT1 equ 1004
IDC_EDT2 equ 1005
IDC_BTN1 equ 1006
IDC_BTN2 equ 1007
Giống hình sau:
Bây giờ ta hit “GO” xem sao. OH, tốt rồi!.
6. Một số chỉnh sửa thêm:
-Bây giờ ta chọn Dialog của chương trình , vào cửa sổ Properties thay đổi :
-MiniButton thành FALSE
-MaxButton thành FALSE
để làm mất hiệu lực 2 button này trên thanh tiêu đề chương trình.
-Kế đến ta chọn Edit Text dùng để chứa Serial là IDC_EDT2 và thay đổi Properties của nó tại mục Locked thành TRUE, mục đích ko cho người dùng sọan thảo Edit Text này.
7.Viết code cho các Button:
* Code cho Button &Exit:
Trong phần xử lý thông điệp WM_COMMAND của thủ tục DlgProc ta đánh vào các lệnh sau:
;--------------------------------
;My code
;--------------------------------
mov eax,wParam
.if eax==IDC_BTN2
invoke EndDialog,hWin,0
.endif
;-----------------------------------
Như hình sau:
Như vậy , khi ta nhấn button &Exit, code trên sẽ thực hiện hàm EndDialog để kết thúc Dialog.
* Code cho Button &Generate:
Trước tiên trong file Keygen1.Inc ta khai báo 2 biến tòan cục để chứa Name và Serial tạo ra: Đó là 2 biến sName và sSerial:
sSerial TCHAR 32h dup(?)
sName TCHAR 32h dup(?)
Các bạn xem hình sau:
Trong file Keygen1.ASM trong phần xử lý thông điệp WM_COMMAND ta thêm phần code sau đây:
.elseif eax==IDC_BTN1
INVOKE GetDlgItemText, hWin,IDC_EDT1, ADDR sName, SIZEOF sName
invoke KeyProc
INVOKE SetDlgItemText, hWin,IDC_EDT2, ADDR sSerial
.endif
Hình minh họa:
Theo code trên, đầu tiên ta lấy chuổi Name người dùng đánh vào trong IDC_EDT1 rồi lưu vào biến sName bằng hàm GetDlgItemText
Kế đến thực hiện hàm tạo key là KeyProc , hàm này tính tóan key dựa trên sName nhập vào. Giá trị trả về của hàm luôn được lưu trong biến sSerial được xử lý trong thủ tục hàm của nó.
Ta cần khai báo prototye của hàm KeyProc trong file Keygen1.Inc như sau:
KeyProc PROTO
Xem hình sau:
Bây giờ ta viết thủ tục KeyProc trong file Keygen1.ASM tại vị trí sau cùng của .code (nhưng trước lệnh end start):
KeyProc proc
invoke lstrcpy,ADDR sSerial,ADDR sName
ret
KeyProc endp
Thủ tục này chỉ có chức năng copy string trong biến sName , và gán vào biến sSerial.
Và cuối cùng ta dùng hàm SetDlgItemText để gán sSerial cho Edit Text hiển thị Serial.
Đây là tòan bộ code ta vừa sọan thảo
Bây giờ bạn hảy hit nút GO và thử lại mọi thứ xem sao.
Ổn chứ các bạn!.
Sau khi biên dịch xong chương trình của ta cực nhỏ , chỉ có 96KB mà thôi.
Tòan bộ code của tut này các bạn download tại link:
Tut đến đây xin hết. Chắc chắn sẽ ko khỏi sai sót. Mong các bạn thông cảm và chỉ điểm.
Hẹn gặp lại trong các tuts sau.
Benina 26/12/2005
Update 26/12/2005
Mail: benina@walla.com
(Không đồng ý bất kỳ ai sử dụng tài liệu này cho mục đích thương mại nếu ko được phép của người dịch)
Các file đính kèm theo tài liệu này:
- Basic template Keygen.doc