BootStar v7.33 keygen in pure win32asm. (6千字)
很久沒見到這麼簡單的玩意兒了,不容易。
使用,轉載請保持完整性。
;======================================================================
;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
相關文章
- EbookMaker 1.21 inc c++ source keygen
(4千字)2002-04-18C++
- Api32 keygen: learn how to use RSA
(4千字)2015-11-15API
- Hero Video Convert v2.0 KeyGen(MASM32) (7千字)2015-11-15IDEASM
- 比較早的一個keygen練習, 參考hambo教程。 (1千字)2001-10-19
- 找出BootStar V6.02的註冊碼2015-11-15boot
- CentOS 搭建 Pure-FTP2019-12-26CentOSFTP
- 翻譯(1) (6千字)2000-07-22
- KeyGen of KeyGenMeRSA, 無法用完全的C插入了一點asm, 憾甚 (5千字)2001-10-11ASM
- 優軟精靈畫筆之大天使3.0註冊演算法分析及KeyGen (3千字)2001-11-10演算法
- 暴力破解3 (6千字)2001-02-18
- TRW短篇教學 (6千字)2001-09-29
- Registry Crawler 4.0.0.3破解 (6千字)2002-02-28
- 初學者作品(6) (1千字)2000-05-04
- Pure-FTPd的應用2017-11-12FTP
- 安裝Pure-FTPD(轉)2007-08-10FTP
- duelist crackme 2 破解(上) (6千字)2000-10-17
- 我的破解心得(6) (3千字)2001-03-13
- flashsoft得簡單破解 (6千字)2001-05-26
- django-pure-pagination2019-01-15Django
- pure-ftpd 530錯誤2017-11-08FTP
- 1.6正式版本PJ方法
(6千字)2002-06-27
- MFC 程式的跟蹤 (一) (6千字)2001-05-01
- 萬能五筆的破解 (6千字)2001-07-09
- 第二個CrackMe的破解 (6千字)2001-08-17
- Teleport Pro破解實戰錄 (6千字)2000-05-28
- CentOS6.8搭建Pure-FTPd1.0.462018-09-01CentOSFTP
- Pure : 來自雅虎的純 CSS 框架2015-03-29CSS框架
- Git上傳採坑之ssh-keygen2018-01-15Git
- 最新啟用Navicat 15教程,附Keygen Patch2024-10-21
- diy pe的教學文章1 (6千字)2002-08-08
- Txt2Html V2.7.2 (6千字)2015-11-15HTML
- 註冊你的Windows Commander 4.51 (6千字)2000-09-11Windows
- DISKdata v3.2.0之暴力破解 (6千字)2000-10-01
- CPUCOOL 5.1000註冊碼分析 (6千字)2001-01-19
- 註冊你的Windows Commander 4.52(6千字)2001-03-22Windows
- 使用loader方式破解 arm 1.01 (6千字)2001-04-16
- 破解OICQ的密碼演算法 (6千字)2001-06-25密碼演算法
- 浮點運算簡介(part I)... (6千字)2002-03-31