BadCopy99V2.0注册机(MASM版) 下载:华军
注册机下载fpxxp.com/bc2-key.exe
作者:风飘雪 http://fpx.yeah.net
; #########################################################################
; KeyGenerator for xxx, coded by fpx 2002(注册机模板)
; #########################################################################
.386
.model flat, stdcall
option casemap :none ; case sensitive 区分大小写
; #########################################################################
include c:\masm32\include\windows.inc
include c:\masm32\include\user32.inc
include
c:\masm32\include\kernel32.inc
include c:\masm32\include\gdi32.inc
include c:\masm32\include\masm32.inc
includelib c:\masm32\lib\user32.lib
includelib
c:\masm32\lib\kernel32.lib
includelib c:\masm32\lib\gdi32.lib
includelib c:\masm32\lib\masm32.lib
; #########################################################################
szText MACRO Name, Text:VARARG
LOCAL lbl
jmp lbl
Name db Text,0
lbl:
ENDM
WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
.data
TheName
dd 0
Button dd 0
hInstance dd 0
hIconImage dd 0
hIcon
dd 0
dlgname db "KEYGEN",0
errorLabel db "Error"
szName db 30 dup(?)
szKey db 10 dup(?)
szWS
db '%d',0
; #########################################################################
.code
start:
invoke
GetModuleHandle, NULL
mov hInstance, eax
; call dialog box stored in resource file
invoke DialogBoxParam,hInstance,ADDR dlgname,0,ADDR WndProc,0
invoke ExitProcess,eax
; #########################################################################
WndProc proc hWin:DWORD, uMsg:DWORD, wParam:DWORD, lParam :DWORD
LOCAL Ps:PAINTSTRUCT
; initialization
.if uMsg == WM_INITDIALOG
szText dlgTitle,"fpx's KeyGenerator for BadCopy99V2.0"
invoke SendMessage,hWin,WM_SETTEXT,0,ADDR dlgTitle
invoke LoadIcon,hInstance,200
mov
hIcon, eax
invoke SendMessage,hWin,WM_SETICON,1,hIcon
invoke GetDlgItem,hWin,100
mov TheName, eax
invoke GetDlgItem,hWin,1000
mov Button, eax
xor eax, eax
ret
.elseif uMsg == WM_COMMAND
.if wParam == 1000
invoke GetDlgItemText,hWin,100,offset
szName,30 ; 获得姓名
cmp
eax,1
jl NoName ; 检查姓名输入情况
push eax ; 姓名长度
push offset szName ; 姓名=dlgitemtext入栈
call generateKey ;
调用算码程序
invoke wsprintf,offset szKey,offset
szWS,eax ; 写序列号
invoke SetDlgItemText,hWin,22,offset
szKey ; 将序列号显示出来
jmp NoError
NoName: ; 如果没输姓名
szText errorMsg,"I Need Characters :)"
invoke MessageBox,hWin,ADDR errorMsg,ADDR errorLabel,MB_OK
NoError:
.endif
.elseif
uMsg == WM_CLOSE
invoke EndDialog,hWin,0
.elseif uMsg == WM_PAINT
invoke BeginPaint,hWin,ADDR Ps
invoke FrameWindow,hWin,0,1,1
invoke
FrameWindow,hWin,1,1,0
invoke EndPaint,hWin,ADDR
Ps
xor eax, eax
ret
.endif
ret
WndProc
endp
; ########################################################################
; 算码过程,基本上参考反汇编代码,可见学好32位汇编真的很重要 :)
; ########################################################################
generateKey:
push ebp
mov ebp,esp
push ebx
push ecx
push
edx
push edi
push esi
push ebp
xor esi,esi ; esi清零
mov ecx,eax
; 姓名长度传入ecx
mov eax,1
addr_1:
mov edx,[offset szName]
mov dl,[eax+szName-1] ; 依次取姓名
and edx,255 ; FF即255
mov ebx,edx
; 注册码最后储存在esi
imul ebx,eax
add esi,ebx
mov ebx,edx
inc eax
dec
ecx
jnz addr_1
mov eax, 6695bh
sub eax,esi ; 结果存入eax
pop ebp
pop esi
pop edi
pop edx
pop ecx
pop ebx
leave
retn 00008h
; ########################################################################
end start
- 标 题:BadCopy99V2.0注册机(MASM版) --by fpx (4千字)
- 作 者:8989
- 时 间:2002-7-22 11:08:42
- 链 接:http://bbs.pediy.com