Hero Video Convert v2.0 KeyGen(MASM32) (7千字)
SoftWare:Hero Video Convert v2.0 KeyGen(MASM32)
Tools:MASM32 v8.0
Cracker:lq7972[bruceyu13@sina.com]
Notes:可以用來從光碟Copy電影;它同豪傑的主流產品註冊演算法及其跟蹤相差不大。第一組註冊碼完全相同,其它的也只是加了些計算--請參考我前面寫的序號產生器
(這個序號產生器也只是演示了註冊演算法)
;KeyGen.asm
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; The KeyGen by lq7972,with MASM32 V8
; E-mail:bruceyu13@sina.com
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386
.model flat,stdcall
option casemap:none
;Include檔案定義
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
include gdi32.inc
includelib gdi32.lib
include comdlg32.inc
includelib comdlg32.lib
include masm32.inc
includelib masm32.lib
;Equ等值定義
ICO_MAIN equ 1000H
DLG_MAIN equ 1
EditName equ 10
EditSN equ 11
;*************************************************************************************
.data?
szName db 512 dup (?)
szSN db 20 dup (?)
Reg1 dd 4 dup (?)
Reg2 dd 4 dup (?)
Reg3 dd 4 dup (?)
Reg4 dd 4 dup (?)
Temp dd 512 dup (?)
Temp1 db 512 dup (?)
Temp2 db 512 dup (?)
.data
hInstance dd 0
szErr db '請輸入使用者名稱!',0
szErr1 db '對不起,使用者名稱長了',0dh,0ah,\
'請更換使用者名稱!',0
szCaption db '錯誤!',0
RegFmt db '%4s-%4s-%4s-%4s',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
;***************************************************************************************
_Calc proc
push ebx
mov al,byte ptr [Temp1]
mov bl,byte ptr [Temp2]
d10:
test bl,0C3H
jpe @F
stc
@@:
rcr bl,01
dec al
jnz d10
mov byte ptr [Temp2],bl
mov al,byte ptr [Temp2]
pop ebx
ret
_Calc endp
;***************************************************************************************
_NameRor proc
mov eax,DWORD ptr [Temp1]
mov ecx,DWORD ptr [Temp2]
ror eax,cl
mov DWORD ptr Temp,eax
mov eax,DWORD ptr Temp
ret
_NameRor endp
;***************************************************************************************
_NameCalc proc uses ebp edi esi ebx
xor ebx,ebx
invoke lstrlen,offset szName
.if eax > 200H
invoke MessageBox,NULL,offset szErr1,offset szCaption,MB_OK
mov eax,FALSE
ret
.endif
mov ebp,eax
cdq
and edx,3
add eax,edx
sar eax,2
test ebp,3
mov esi,eax
jz @F
inc esi
@@:
xor edi,edi
test ebp,ebp
jle c10
invoke lstrcpy,addr Temp,addr szName
@@:
mov eax,dword ptr [Temp+edi]
mov dword ptr [Temp2],eax
invoke _Calc
mov byte ptr [Temp+edi],al
inc edi
mov dword ptr [Temp1],edi
cmp edi,ebp
jl @B
c10:
xor edi,edi
test esi,esi
jle c20
@@:
mov dword ptr [Temp2],edi
add ebx,DWORD ptr [Temp+edi*4]
mov dword ptr [Temp1],ebx
mov eax,edi
and eax,01FH
inc edi
invoke _NameRor
mov ebx,eax
cmp edi,esi
jl @B
c20:
mov eax,ebx
ret
_NameCalc endp
;***************************************************************************************
_RgeCodCalc_1 proc
b10:
and eax,07FH
cmp al,041H
jb @F
cmp eax,05AH
jg @F
or eax,020H
@@:
cmp eax,06FH
jnz @F
xor eax,0FFH
@@:
cmp eax,030H
jnz @F
xor eax,0FFH
@@:
cmp eax,061H
jl @F
cmp eax,07AH
jle b20
@@:
cmp eax,031H
jl @F
cmp eax,039H
jle b20
@@:
xor eax,03FH
or eax,031H
jmp b10
b20:
ret
_RgeCodCalc_1 endp
;***************************************************************************************
_RegCodCalc proc
pushad
xor edi,edi
invoke _NameCalc
mov dword ptr Temp,eax
a10:
lea esi,[Temp+edi]
movsx eax,byte ptr [esi]
cmp eax,041H
jl @F
cmp eax,020H
jg @F
add eax,020H
@@:
inc edi
invoke _RgeCodCalc_1
mov byte ptr [Reg1+edg-1],al
cmp edi,04H
jl a10
mov eax,Reg1
xor edi,edi
lea ecx,dword ptr [eax+eax*4]
lea eax,dword ptr [ecx+ecx*4]
mov ecx,Reg1
mov edx,ecx
shl ecx,5
add ecx,edx
xor eax,ecx
mov Temp,eax
a20:
lea ebx,dword ptr [Temp+edi]
mov al,byte ptr [ebx]
mov dword ptr Temp1,edi
mov Temp2,al
inc edi
invoke _Calc
xor ecx,ecx
mov cl,al
movsx eax,al
invoke _RgeCodCalc_1
mov byte ptr [Reg2+edg-1],al
cmp edi,04H
jl a20
mov eax,Reg2
mov ecx,Reg1
xor eax,Reg1
xor edi,edi
mov edx,ecx
imul eax,Reg1
add eax,Reg2
lea ecx,dword ptr [ecx+ecx*2]
shl ecx,3
sub ecx,edx
xor eax,ecx
mov Temp,eax
a30:
lea ebx,[Temp+edi]
inc edi
movsx eax,byte ptr [ebx]
invoke _RgeCodCalc_1
mov byte ptr [Reg3+edg-1],al
cmp edi,4
jl a30
mov ecx,Reg2
mov eax,Reg3
inc ecx
imul ecx,Reg1
xor edi,edi
lea edx,dword ptr [ecx+ecx*4]
lea ecx,dword ptr [ecx+edx*4]
lea edx,dword ptr [eax+eax*2]
lea ebx,dword ptr [edx+edx*8]
add ecx,ebx
mov Temp,ecx
a40:
lea ebx,[Temp+edi]
inc edi
movsx eax,byte ptr [ebx]
invoke _RgeCodCalc_1
mov byte ptr [Reg4+edg-1],al
cmp edi,04H
jl a40
invoke wsprintf,addr szSN,addr RegFmt,addr Reg1,addr Reg2,addr Reg3,addr Reg4
popad
ret
_RegCodCalc endp
;**************************************************************************************
_ProcDlgMain proc uses ebx edi esi ebp hWnd,wMsg,wParam,lParam
mov eax,wMsg
.if eax == WM_CLOSE
invoke EndDialog,hWnd,NULL
.elseif eax == WM_COMMAND
mov eax,wParam
.if eax == IDOK
invoke RtlZeroMemory,offset szName,512
invoke GetDlgItemText,hWnd,EditName,offset szName,512
.if eax != NULL
invoke _RegCodCalc
invoke SetDlgItemText,hWnd,EditSN,offset szSN
mov eax,FALSE
ret
.else
invoke MessageBox,NULL,offset szErr,offset szCaption,MB_OK
mov eax,FALSE
ret
.endif
.elseif eax == IDCANCEL
invoke EndDialog,hWnd,NULL
.endif
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
_ProcDlgMain endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlgMain,NULL
invoke ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start
//KeyGen.rc
#include
#define ICO_MAIN 0x1000
#define DLG_MAIN 1
#define EDITName 10
#define EDITSN 11
//ICO_MAIN ICON "01.ico"
DLG_MAIN DIALOG 100,150,250,60
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
CAPTION "序號產生器 by lq7972"
FONT 9,"宋體"
{
CONTROL "Name:" ,-1,"Static",SS_LEFT,10,13,40,17
CONTROL "SN:" ,-2,"Static",SS_CENTER,10,40,20,17
CONTROL "" ,10,"Edit",ES_LEFT,30,13,150,10
CONTROL "" ,11,"Edit",ES_LEFT,30,40,150,10
DEFPUSHBUTTON "GENERATE",IDOK,200,11,40,15
PUSHBUTTON "EXIT",IDCANCEL,200,36,41,14
}
#makefile
NAME = KeyGen
OBJS = $(NAME).obj
RES = $(NAME).res
LINK_FLAG = /subsystem:windows
ML_FLAG = /c /coff
$(NAME).exe: $(OBJS) $(RES)
Link $(LINK_FLAG) $(OBJS) $(RES)
.asm.obj:
ml $(ML_FLAG) $<
.rc.res:
rc $<
clean:
del *.obj
del *.res
相關文章
- EbookMaker 1.21 inc c++ source keygen
(4千字)2002-04-18C++
- Api32 keygen: learn how to use RSA
(4千字)2015-11-15API
- Mouse Odometer v2.0破解(入門) (5千字)2000-10-01
- BootStar v7.33 keygen in pure win32asm. (6千字)2002-02-08bootWin32ASM
- HexDiff V2.51和它的序號產生器(MASM32) (6千字)2015-11-15ASM
- 脫Remote Administrator v2.0的殼 (8千字)2001-06-24REM
- 7 月 2 日邀你來TD Hero 線上釋出會2022-06-30
- 比較早的一個keygen練習, 參考hambo教程。 (1千字)2001-10-19
- Lambda Pro v2.0安裝序列號破解(1) (16千字)2001-12-08
- EasyBoot(7千字)2015-11-15boot
- 10、Flutter Widget - Hero;2019-03-05Flutter
- BZOJ3864 : Hero meet devil2015-09-10dev
- KeyGen of KeyGenMeRSA, 無法用完全的C插入了一點asm, 憾甚 (5千字)2001-10-11ASM
- 優軟精靈畫筆之大天使3.0註冊演算法分析及KeyGen (3千字)2001-11-10演算法
- 破解ClockWise 3.03 (7千字)2001-06-06
- 初學者(7) (4千字)2000-05-05
- 初學者(22) (7千字)2000-08-09
- 初學者(23) (7千字)2000-08-13
- MASM32單詞跑馬燈免輸ID序號產生器:超級簡單 (6千字)2001-11-12ASM
- Flutter 手勢處理 & Hero 動畫2019-05-26Flutter動畫
- SEH in ASM 研究(一) (7千字)2001-12-29ASM
- java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy7 implem2010-12-26JavaException
- 貼個用VC++在原始碼級下除錯MASM32彙編程式的方法。。。大家交流。。
(1千字)2002-11-25C++原始碼除錯ASM
- Gif2Swf Ver 2.1 TC20序號產生器 && MASM32序號產生器 (4千字)2001-12-10ASM
- 豪傑超級解霸3000英雄版序號產生器(MASM32),比較老 (6千字)2015-11-15ASM
- SitMan v2.0 beta版的序號產生器(TC2.0編譯) (3千字)2001-10-28編譯
- bzoj 3864: Hero meet devil [dp套dp]2017-05-14dev
- 快速破解CCProxy 4.30(7千字)2002-01-26
- 一點脫殼經驗。(7千字)2001-04-20
- 暴力破解Security setup II (7千字)2001-10-24
- 用Ollydbg破解SWFBrowser 2.93 (7千字)2002-01-11
- 一篇破解入門 (7千字)2000-09-04
- Git上傳採坑之ssh-keygen2018-01-15Git
- 最新啟用Navicat 15教程,附Keygen Patch2024-10-21
- 談一談Flutter中的共享元素動畫Hero2018-10-22Flutter動畫
- 從 Zero 到 Hero ,一文掌握 Python2017-11-28Python
- Convert object/bean to map2015-04-14ObjectBean
- sql server convert用法2009-05-25SQLServer