📄 counter.asm
字号:
;*********************************************************
;程序名称:可执行文件加密锁
;本文件是动态连接库文件的源代码
;本程序可以对有效的PE文件进行加锁,使程序运行以前必须通过密码验证
;作者:牛博威
;日期:2003-11-25
;整理:2003-11-7
;出处:http://nboy.cnwlt.com
;注意事项:如欲转载,请保持本程序的完整,并注明:
;在此特别感谢罗聪大侠和他的论坛上的朋友们
;*********************************************************
.386
.model flat, stdcall
option casemap :none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ICO_MAIN equ 1000
DLG_MAIN equ 1000
IDC_COUNTER equ 1001
IDC_ENT equ 1002
IDC_QUI equ 1003
.data?
hInstance dd ?
_entry dd ?
_realpass dd 32 dup(?)
_mesg db 32 dup(?)
.const
szErrPass db '密码错误!',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 本函数在 dll 内部使用
_ProcDlgMain proc uses ebx edi esi hWnd,wMsg,wParam,lParam
mov eax,wMsg
;********************************************************************
.if eax == WM_CLOSE
invoke ExitProcess,0
;********************************************************************
.elseif eax == WM_COMMAND
mov eax,wParam
.if ax == IDC_ENT
invoke GetDlgItemText,hWnd,IDC_COUNTER,addr _mesg,32
mov eax,_realpass
invoke lstrcmp, addr _mesg,addr [eax]
.if eax != 0 ;两次密码如果相同便进行处理
invoke MessageBox,hWnd,addr szErrPass,NULL,MB_OK or MB_ICONWARNING
.else
invoke EndDialog,hWnd,NULL
jmp _entry
.endif
.elseif ax == IDC_QUI
invoke ExitProcess,0
.endif
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
_ProcDlgMain endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; dll 的入口函数
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DllEntry proc _hInstance,dwReason,_dwReserved
mov eax,dwReason
.if eax == DLL_PROCESS_ATTACH
push _hInstance
pop hInstance
.endif
mov eax,TRUE
ret
DllEntry Endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
szInitialize Proc _require,_password
mov eax,hInstance
push _require
pop _entry
push _password
pop _realpass
mov eax,hInstance
invoke DialogBoxParam,eax,DLG_MAIN,NULL,offset _ProcDlgMain,NULL
szInitialize endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
End DllEntry
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -