好友
阅读权限 10
听众
最后登录 1970-1-1
这个CM分三步
第一步:激活OK按钮
第二步:隐藏cancella按钮
第三步:隐藏OK按钮
分析结果,
根据注册码换算出正确的用户名,用户名需满足三个算法公式。
注册机使用了穷举的方式来计算,如果要算出正确的用户名需要N久的时间
(穷举的排列组合太多,不花上二三天时间估计没办法穷举算出)
所以放弃了,只写了一个激活OK按钮的注册机
以下贴出的原码是激话OK按钮的原码
.386
.model flat, stdcall ;32 bit memory model
option casemap :none ;case sensitive
include 360个CM之Acid b注册机.inc
.code
_count proc
LOCAL @buffer[256]:byte
LOCAL @buffer1[256]:byte
invoke GetDlgItemText,hmain,IDC_NAME,addr @buffer,256
mov edx,eax
mov ebx,eax
.if eax>5
mov eax,1h
@@:
lea ecx,@buffer
movzx ecx,byte ptr [ecx+eax-1h]
lea esi,@buffer
movzx esi,byte ptr [esi+eax]
imul ecx,esi
imul ecx,eax
add ebx,ecx
inc eax
dec edx
jnz @b
mov namehe,ebx
.while TRUE
.while TRUE
invoke GetDlgItemText,hmain,IDC_COUNT,addr @buffer1,256
xor eax,eax
lea esi,@buffer1
mov bl,[esi]
movzx ebx,bl
L004029AA:
sub bl,30h
lea eax,dword ptr [eax + eax * 4h]
add eax,eax
add eax,ebx
inc esi
mov bl,byte ptr [esi]
.break .if !bl
jmp L004029AA
.endw
add eax,29Ah
.break .if eax==namehe
inc dwcount
invoke SetDlgItemInt,hmain,IDC_COUNT,dwcount,TRUE
.endw
invoke SetDlgItemText,hmain,IDC_REG,addr @buffer1
ret
.else
invoke MessageBox,hmain,offset sztishi,offset sztitle,MB_OK
.endif
ret
_count endp
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke InitCommonControls
invoke DialogBoxParam,hInstance,IDD_DIALOG1,NULL,addr DlgProc,NULL
invoke ExitProcess,0
;########################################################################
DlgProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
LOCAL @buffer[256]:byte
LOCAL @buffer1[256]:byte
mov eax,uMsg
.if eax==WM_INITDIALOG
push hWin
pop hmain
invoke LoadIcon,hInstance,APP_ICON
invoke SendMessage,hWin,WM_SETICON,ICON_BIG,eax
.elseif eax==WM_COMMAND
mov eax,wParam
.if ax==IDC_OK
xor eax,eax
invoke SetDlgItemText,hmain,IDC_REG,eax
invoke CreateThread,0,0,offset _count,NULL,NULL,NULL
invoke CloseHandle,eax
.endif
.elseif eax==WM_CLOSE
invoke EndDialog,hWin,0
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
DlgProc endp
end start
aLoNg3x.1原程序 注册机.rar
(144.88 KB, 下载次数: 20)