能力值:
( LV9,RANK:156 )
7 楼
;crackme v1 masm32注册机
.386
.model flat, stdcall ;32 bit memory model
option casemap :none ;case sensitive include windows.inc
include kernel32.inc
include user32.inc
include Comctl32.inc
;include shell32.inc
;include masm32.inc
;includelib masm32.lib
includelib kernel32.lib
includelib user32.lib
includelib Comctl32.lib
;includelib shell32.lib
DlgProc PROTO :HWND,:UINT,:WPARAM,:LPARAM
.const
IDD_DIALOG1 equ 101
IDC_EDT1 equ 1001
IDC_EDT2 equ 1002
ID_OK equ 1003
;#########################################################################
.data
szFormat db "%d",0
szErr db '请输入用户名!',0
szCaption db '错误!',0
szText db '请输入字母',0
.data?
hInstance dd ?
szSN db ?
szName db 20 dup (?)
;######################################################################### .code
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
mov eax,uMsg
.if eax==WM_INITDIALOG
; push hWin
;pop hWinMain
.elseif eax==WM_COMMAND
mov eax,wParam
.if ax==ID_OK
invoke RtlZeroMemory,addr szName,80
invoke GetDlgItemText,hWin,IDC_EDT1,addr szName,80
.if !eax
invoke SetDlgItemText,hWin,IDC_EDT2,addr szErr
.else
call Reg
invoke SetDlgItemText,hWin,IDC_EDT2,addr szSN
.endif
.endif
.elseif eax==WM_CLOSE
invoke EndDialog,hWin,0
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
DlgProc endp
Reg Proc hWin:dword
pushad
lea esi,szName
PUSH ESI
XOR EAX,EAX
n2:
mov AL,BYTE PTR [esi]
TEST AL,AL
JE n4
CMP AL,41h
JB n9
CMP AL,5Ah
JNB n1
INC ESI
JMP n2
n1:
SUB AL,20h
MOV BYTE PTR [ESI],AL
INC ESI
JMP n2
n4:
POP ESI
XOR EDI,EDI
XOR ECX,ECX
n8:
MOV CL,BYTE PTR [ESI]
TEST CL,CL
JE n6
ADD EDI,ECX
INC ESI
JMP n8
n6:
XOR EDI,5678h
XOR EDI,1234h
;MOV EAX,EDI
JMP n5
n9:
invoke MessageBox,0,addr szText,addr szCaption,MB_ICONASTERISK
ret
n5:
invoke wsprintf,addr szSN,addr szFormat,edi ; 将注册码转10进制
popad
ret
Reg Endp
end start
;###########################################################################################
;RC
#include "\masm32\include\resource.h"
#define CrackMev1 101
#define IDC_EDT1 1001
#define IDC_EDT2 1002
#define ID_OK 1003
CrackMev1 DIALOGEX 6,6,185,97
CAPTION "CrackMe v1.0"
FONT 8,"MS Sans Serif",0,0
STYLE 0x10CE0800
EXSTYLE 0x00000000
BEGIN
CONTROL "",IDC_EDT1,"Edit",0x50010000,34,11,116,13,0x00000200
CONTROL "",IDC_EDT2,"Edit",0x50010000,34,38,118,13,0x00000200
CONTROL "ok",ID_OK,"Button",0x50010000,58,62,68,15,0x00000000
END