获得任何一个版本 Windows 的密码框密码

获得任何一个版本 Windows 的密码框密码。(呵呵,好拗口啊!啊!别扔番茄!!)

---------- 鼠标钩子函数的DLL ----------

文件名: HookDll.asm
--------------------------------------
;******************************************************
;
程序
名称:获取密码框的密码,适用于Win9x/WinMe/Win2000/WinXP
;
作者:罗聪
;
日期:2002-10-8
;
出处:http://www.luocong.com/(老罗的缤纷天地)
;
注意事项:如欲转载,请保持本程序的完整,并注明:
;
转载自老罗的缤纷天地http://www.luocong.com/
;******************************************************
.386
.model flat, stdcall
option casemap:none
include /masm32/include/windows.inc
include /masm32/include/user32.inc
includelib /masm32/lib/user32.lib
DllEntry proto :HINSTANCE, WORD, WORD
MouseProc proto WORD, WORD, WORD
GetPsw proto
InstallHook proto WORD
UninstallHook proto
.const
WM_MOUSEHOOK equ WM_USER + 6
;
共享段:
.data?
hHook dd ?
hWnd dd ?
szPsw db 255 dup(?) ;
关键语句!!!共享这个变量szPsw,以便在主程序中也能得到密码!
.data
hInstance HINSTANCE 0
.code
DllEntry proc hInst:HINSTANCE, reasonWORD, reserved1WORD
.if reason == DLL_PROCESS_ATTACH
push hInst
pop hInstance
.endif
mov eax, TRUE
ret
DllEntry endp
GetPsw proc
;
关键!!返回密码!(前提是密码必须放在共享段!)
lea eax, szPsw
ret
GetPsw endp
MouseProc proc uses edx nCodeWORD, wParamWORD, lParamWORD
invoke CallNextHookEx, hHook, nCode, wParam, lParam
mov edx, lParam
assume edx: PTR MOUSEHOOKSTRUCT
;
获得当前鼠标位置的窗口句柄:
invoke WindowFromPoint, [edx].pt.x, [edx].pt.y
;
发送一个消息给当前窗口,获得它的标题:
invoke SendMessage, eax, WM_GETTEXT, 255, addr szPsw
;
发送一个消息给主程序,以便在主程序中能处理鼠标钩子函数:
invoke PostMessage, hWnd, WM_MOUSEHOOK, 0, 0
assume edx: nothing
xor eax, eax
ret
MouseProc endp
InstallHook proc hwndWORD
;
启动鼠标钩子函数:
push hwnd
pop hWnd
invoke SetWindowsHookEx, WH_MOUSE, addr MouseProc, hInstance, NULL
mov hHook, eax
ret
InstallHook endp
UninstallHook proc
;
卸载鼠标钩子函数:
invoke UnhookWindowsHookEx, hHook
ret
UninstallHook endp
end DllEntry
;******************** over ********************
;by LC

编译这个DLL的时候记住要这样:(否则会失败哦!)
ml /c /coff HookDll.asm
link /section:.bss,S /DLL /subsystem:windows /def:HookDll.def HookDll.obj

---------- 程序调用 ----------
文件名: GetPsw.asm
-------------------------------
;******************************************************
;
程序
名称:获取密码框的密码,适用于Win9x/WinMe/Win2000/WinXP
;
作者:罗聪
;
日期:2002-10-8
;
出处:http://www.luocong.com/(老罗的缤纷天地)
;
注意事项:如欲转载,请保持本程序的完整,并注明:
;
转载自老罗的缤纷天地http://www.luocong.com/
;******************************************************
.386
.model flat, stdcall
option casemap:none
include /masm32/include/windows.inc
include /masm32/include/kernel32.inc
include /masm32/include/user32.inc
include HookDll.inc
includelib /masm32/lib/kernel32.lib
includelib /masm32/lib/user32.lib
includelib HookDll.lib
WndProc proto WORD, WORD, WORD, WORD
.const
IDC_EDIT_OUTPUT equ 3000
WM_MOUSEHOOK equ WM_USER + 6
.data
szDlgName db "lc_dialog", 0
szPsw db 255 dup(0)
.code
main:
invoke GetModuleHandle, NULL
invoke DialogBoxParam, eax, offset szDlgName, 0, WndProc, 0
invoke ExitProcess, eax
WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
LOCAL rect: RECT
.if uMsg == WM_CLOSE
;
卸载鼠标钩子:
invoke UninstallHook
invoke EndDialog, hWnd, 0
.elseif uMsg == WM_INITDIALOG
;
获得主程序rect
invoke GetWindowRect, hWnd, addr rect
;
把主程序设置成始终在最前面
invoke SetWindowPos, hWnd, HWND_TOPMOST, rect.left, rect.top, rect.right,
rect.bottom, SWP_SHOWWINDOW
;
鼠标钩子函数启动:
invoke InstallHook, hWnd
;
处理鼠标钩子函数的消息:
.elseif uMsg == WM_MOUSEHOOK
;
获得密码:
invoke GetPsw
;
输出:
invoke SetDlgItemText, hWnd, IDC_EDIT_OUTPUT, eax
.else
mov eax, FALSE
ret
.endif
mov eax, TRUE
ret
WndProc endp
end main
;******************** over ********************
;by LC

---------- 程序的资源文件 ----------
文件名: GetPsw.rc
-------------------------------------
#include "resource.h"
#define IDC_EDIT_OUTPUT 3000
#define IDC_STATIC -1
LC_DIALOG DIALOGEX 0, 0, 195, 30
STYLE DS_SETFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Get Password by LC, 2002-10-8"
FONT 9, "
宋体", 0, 0, 0x0
BEGIN
LTEXT "
看看有什么:", IDC_STATIC, 5, 12, 50, 12
EDITTEXT IDC_EDIT_OUTPUT, 60, 10, 130, 12, ES_AUTOHSCROLL | NOT WS_BORDER,
WS_EX_STATICEDGE
END

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值