很久没见到这么简单的玩意儿了,不容易。
使用,转载请保持完整性。
;======================================================================
;BootStar v7.33 keygen by arbiter. Feb.2002.
;Assemble:
;tasm32 /mx /m4 /z keygen.asm
;tlink32 -x -V4.0 -Tpe -aa -c keygen.obj,keygen,,,keygen.def,keygen.res
;======================================================================
.386
.MODEL FLAT, STDCALL
LOCALS
UNICODE = 0
include E:\TASM5Plus\TASM5Plus\INCLUDE\w32.inc
includelib E:\TASM5Plus\TASM5Plus\LIB\imp32i.lib
IDD_DIALOG equ 101
EDIT_NAME equ 1001
EDIT_CODE equ 1002
BT_ABOUT equ 1003
BT_EXIT equ 1004
extrn wsprintfA : PROC
extrn CharUpperA : PROC
extrn memset : PROC
minl = 10
maxl = 60
.DATA
defName db "arbiter[CCG]", 0
cap db "BootStar v7.33 KeyGen by arbiter[CCG]", 0
format db "BM1-%s-%s-%s", 0
abouttxt db "$^) ", 13, 10
db "Key Generator for BootStar v7.33 ", 13, 10
db "@@@ Made by arbiter[CCG] @@@ ", 13, 10, 13, 10
db "Hope you'll be satisfied! with ", 13, 10
db "this release from arbiter. ", 13, 10
db "to be continue... ", 0
aboutcap db "uh-huh!", 0
insuLen db "Name length must equal or greater 10!", 0
.DATA?
hdlg dd ?
_hInst dd ?
nlen dd ?
uName db 60 dup( ? )
uCode db 30 dup( ? )
temp db 30 dup( ? )
part1 db 10 dup( ? )
part2 db 10 dup( ? )
part3 db 10 dup( ? )
.CODE
Start: pushad
call GetModuleHandle, 0
test eax, eax
je @out
mov _hInst, eax
call DialogBoxParamA, _hInst, IDD_DIALOG, 0, offset DlgProc, 0
@out:
popad
call ExitProcess, 0
RET
;----------------------------------------------------------------------
DlgProc PROC __hWnd : DWORD, wmsg : UINT, _wParam : WPARAM, _lParam : LPARAM
uses ebx, esi, edi
mov eax, wmsg
cmp eax, WM_CLOSE
jz _wmDes
cmp eax, WM_COMMAND
jz _wmCmd
cmp eax, WM_INITDIALOG
jz _wmInit
xor eax, eax
RET
;----------------------------------------------------------------------
_wmDes:
call EndDialog, hdlg, 0
RET
;----------------------------------------------------------------------
_wmCmd:
mov eax, _wParam
cmp ax, EDIT_NAME
jnz nochange
shr eax, 16
cmp ax, EN_CHANGE
jnz nochange
call Generate
xor eax, eax
RET
nochange:
cmp ax, BT_ABOUT
jnz noAbout
call MessageBoxA, hdlg, offset abouttxt, offset aboutcap, \
MB_ICONINFORMATION OR MB_OK OR MB_APPLMODAL
jmp cout
noAbout:
cmp ax, BT_EXIT
jz _wmDes
cout:
xor eax, eax
RET
;-----------------------------------------------------------------------
_wmInit:
mov eax, __hWnd
mov hdlg, eax
call GetDlgItem, __hWnd, EDIT_NAME
call SendMessageA, eax, EM_SETLIMITTEXT, maxl, 0
call SetWindowTextA, __hWnd, offset cap
call SetDlgItemTextA, __hWnd, EDIT_NAME, offset defName
push 1
pop eax
RET
DlgProc ENDP
;-----------------------------------------------------------------------
Generate PROC
call GetDlgItemtextA, __hWnd, EDIT_NAME, offset uName, maxl + 1
cmp eax, minl
jl @CharsInsufficient
mov nlen, eax
push offset uName
call CharUpperA
mov ecx, nlen
xor eax, eax
xor edx, edx
lea esi, uName
@conti:
mov al, byte ptr[esi]
add edx, eax
inc esi
dec ecx
jnz @conti
xchg dh, dl
push dx
call memset, offset part1, 0, 10
add esp, 12
pop dx
lea edi, part1
mov byte ptr[edi], 2
mov word ptr[edi+1], dx
push edi
push offset temp
call Computel
mov eax, dword ptr[temp]
mov dword ptr[part2], eax
mov al, byte ptr[uName]
mov byte ptr[part2+4], al ;finish constructing the 2nd part.
mov dx, word ptr[uName]
push dx
call memset, offset part1, 0, 10
add esp, 12
pop dx
lea edi, part1
mov byte ptr[edi], 2
mov word ptr[edi+1], dx
push edi
push offset temp
call Computel
mov eax, dword ptr[temp]
mov dword ptr[part3], eax ;finish constructing the 3rd part.
call memset, offset part1, 0, 10
add esp, 12
lea edi, part1
mov byte ptr[edi], 1
mov eax, nlen
mov byte ptr[edi+1], al
push edi
push offset temp
call Computel
mov ax, word ptr[temp]
push ax
push ax
call memset, offset part1, 0, 10
add esp, 12
pop ax
lea edi, part1
lea esi, uName
mov word ptr[edi], ax
mov al, byte ptr[esi+1]
inc edi
inc edi
stosb ;be preparing the 1st part...
call memset, offset temp, 0, 30
add esp, 12
push offset part3
push offset part2
push offset part1
call wsprintfA, offset temp, offset format
add esp, 20
;now checking out the mid-age buffer length.
or ecx, 0FFFFFFFFH
lea edi, temp
xor al, al
repnz scasb
neg ecx
dec ecx
xor edx, edx
lea esi, [temp] ;sum up the temp buf for finalizing the part1.
sum2: xor eax, eax
mov al, byte ptr[esi]
add dx, ax
inc esi
dec cl
jnz sum2
push dx
call memset, offset temp, 0, 30
add esp, 12
pop dx
lea edi, [part1]
mov byte ptr[edi], 1
mov byte ptr[edi+1], dl
push edi
push offset temp
call Computel
call memset, offset part1, 0, 10
add esp, 12
pop ax
lea edi, [part1]
mov word ptr[edi], ax
mov ax, word ptr[temp]
mov word ptr[edi+2], ax
mov al, byte ptr[uName+1]
mov byte ptr[edi+4], al ;finishing constructing 1st part.
call memset, offset uCode, 0, 30
add esp, 12
push offset part3
push offset part2
push offset part1
call wsprintfA, offset uCode, offset format
add esp, 20
call SetDlgItemTextA, hdlg, EDIT_CODE, offset uCode
GenOk: xor eax, eax
RET
@CharsInsufficient:
call SetDlgItemTextA, hdlg, EDIT_CODE, offset insuLen
jmp GenOk
Generate ENDP
;-----------------------------------------------------------------------
Computel PROC
push ebp
mov ebp, esp
push ebx
push edi
push esi
xor eax, eax
xor ebx, ebx
xor edx, edx
mov esi, [ebp+12]
mov edi, [ebp+8]
mov bh, byte ptr[esi]
xor ecx, ecx
goon:
inc esi
mov bl, byte ptr[esi]
inc cl
mov eax, 0A5H
shl eax, cl
xor bl, cl
xor bl, 0A5H
xor al, bl
mov dl, al
and edx, 15
shr al, 4
movzx eax, al
mov al, cctab[eax]
mov ah, cctab[edx]
stosw
dec bh
jnz goon
pop esi
pop edi
pop ebx
pop ebp
RET 8
cctab db "0123456789ABCDEF"
Computel ENDP
;----------------------------------------------------------------------
END Start
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 去除winrar注册框方法
最新文章
比特币病毒怎么破解 比去除winrar注册框方法
华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据
人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程
查看所有0条评论>>