Windows文本框星号密码查看器

1、  设计原理:注册一个系统级鼠标挂钩,通过监测系统鼠标所在Windows窗口来获取密码,成功获取密码之后,通过发送自定义的Windows系统消息,到宿主程序。
2、  动态链接库设计原理:采用Windows Hook技术[鼠标挂钩],切入远程进程内部,并监测当前系统鼠标所在位置的当然窗口句柄(通过Windows APIWindowFromPoint()),获取窗口句柄之后,判断当然窗口是否为文本框,并进一步判断是否为密码框,当发现是密码输入框时,当此窗口发送WM_GETTEXT消息,获取密码。成功获取密码之后,发现自定义的WM_COPYDATA消息到宿主程序; Hook
具体实现步骤简介:
1.  设置系统鼠标挂钩:
        hkMouseHook := SetWindowsHookEx(WH_MOUSE,@CXX_MouseHookProc,hInstance,0);
2.  注销系统鼠标挂钩:
        UnHookWindowsHookEx(hkMouseHook);
3.  监测当然窗口及窗口风格判断:
        MousePos := pMhs.pt;
    wnd := WindowFromPoint(pmhs.pt);
    style := GetWindowLong(wnd,GWL_STYLE);
    if (style and ES_PASSWORD) = ES_PASSWORD then
    begin
            //发现密码窗口
    end;
4.  向密码框获取密码串:
        SendMessage(wnd,WM_GETTEXT,256,Integer(@MouseTitle[0]));
5.  发送自定义消息到宿主程序:
              GetMem(pmi,sizeof(TMouseInfo));
        pmi.MouseX := pt.X;
        pmi.MouseY := pt.Y;
        pmi.MouseTitle := pwd;
        GetMem(pcds,sizeof(TCopyDataStruct));
        pcds.dwData := 9910;
        pcds.cbData := sizeof(TMouseInfo);
        pcds.lpData := pmi;
        SendMessage(hDec,WM_COPYDATA,0,LPARAM(pcds));
3、  宿主程序设计原理:我的宿主程序是自己学习Windows SDK开发时作品,采用纯SDK实现。SDK的编程不用废话了吧。在这个工具程序中,只需要在系统消息处理方法中,增加一个对WM_COPYDATA的拦截及处理过程就可能了。
case uMsg of
    WM_COPYDATA:
    begin
        CXX_ReceiveCopyData(uMsg);
    end;
        ……
end;
4、  应用技术提点:这个是本人在2002年学习Microsoft Windows SDK编程技术时的学习作品。当然,有兴趣的话,你完全可以将其Hook进一步进行隐藏,并为其增加“端口反弹”或者“半连接”功能,宿主程序可以是自己的远程XXXXXX,哈哈,这样发布出来的话,想知道的东西就多了……
5、 完整源码代码:
1. 鼠标挂钩部分: Hook
{
     产品名称:     Windows 密码工具[Window98/NT/2000/XP]
     功能描述:     截取Windows密码编辑框中的密码串
                    采用纯粹的SDK开发
                    能捕捉windows98/NT/2000/XP的密码框中的"*"密码
     开发平台:     Windows2000 + Delphi6 + MSDN + SDK
     开发者:       成晓旭
     版权所有:     成晓旭
     模块设计者:   成晓旭
     设计思路:     采用Windows Hook技术[鼠标挂钩],切入远程进程内部,
                    再发送WM_GETTEXT消息截取密码,最后用SendMessage发送
                    WM_COPYDATA消息自定义的密码信息结构体到目标窗口,以
                    显示或处理Hook DLL所截取的远程进程的密码.
     开始时间:     2002年3月4日
     完成时间:     2002年5月24日[最终实现]
     备    注:     此工具是本人在2002年开发的第二个软件
                    本工具在2000年6月份左右曾实现过一个Windows98下的
                    密码截取工具,两年以来,我一直没有放弃过实现Windows
                    操作系统下的所有密码的截取,如此,终于实现了两年以来
                    未曾实现的截取WindowsNT系列的密码.[2002/05/24]
                    以后的路还很长:WindowNT系列的当前用户登录密码、
                    内存长驻的其它密码等等.
}
unit MouseHook;
 
interface
uses
    Messages,Windows;//,SysUtils;
 
var
 
    hkMouseHook:HHook;
    ProcSafelyExit:Pointer;
    uCXXMsg:UINT;
    procedure   DllEntryProc(ul_reason_for_call:DWORD);
    procedure   SetupHook(fSet:boolean);stdcall;export;
    function    CXX_MouseHookProc(iCode:integer;wParam:WPARAM;lParam:LPARAM):LRESULT;stdcall;export;
    procedure   AutoUnInstallHook();far;
 
implementation
 
uses DataStruct;
 
 
procedure CXX_SendCopyData(pt:TPoint;pwd:TMTitle);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件支持操作系统 Windows 9x/Me/NT/2000/XP/2003/Windows 7 欢迎使用 侠客密码查看器(原名:密码查看器) 使用 侠客密码查看器,您将可以 功能强大的密码查看软件 支持Windows系统中 '***' 显示的星号密码查看 支持宽带密码查看,包括ADSL上网密码查看与LAN上网密码查看 支持网页中 '***' 显示的星号密码查看,支持架页面 支持IE自动完成的密码、表单内容查看密码列表保存 支持OutLook Express邮件帐户密码查看 支持Windows自动登录密码查看 支持CMOS开机密码清除 支持IE分级审查密码清除 支持Foxmail帐户密码清除 支持微软公司软件产品序列号获取 支持Windows用户添加及管理员密码重置 支持命令行方式自动保存密码信息 强大的星号密码查看功能 快速查看Windows各版本系统中普通的密码文本控件里显示的‘***’密码的真正内容。 也可以查看IE网页浏览器里显示的'***'密码的真正内容。 只需打开‘星号密码查看器’模块,简单地拖动窗口中的放大镜图标到您要显示的密码上面就可立即看到密码。 自动搜索所有已打开网页窗口中的密码 可以自动搜索并显示,您机器上所有已经打开的IE网页窗口中,以'***'显示的密码。 支持架页面形式网页。 网络连接(ADSL,LAN)密码 查看XP系统中建立的宽带网络连接(包括ADSL上网连接,LAN上网连接)中所保存着的登录用户名与密码。 IE自动完成密码 显示您使用IE浏览器浏览网页时,保存在电脑中的自动完成密码内容。 IE自动完成表单内容 查看您使用IE浏览器输入表单内容时所保存的全部输入内容。 IE分级审查密码 当您忘记您所设置的IE分级审查密码时,可以使用本软件方便地清除掉密码。 支持命令行方式操作 常规的命令行语法描述如下: Password /开关1 /开关2 /开关3... 文件路径 开关 操作指定类型,选项开关压缩强度,压缩文件类型等等的定义。 /SAVIEAUTO: 保存IE自动完成的内容至文件路径 /IEBD: 保存IE自动完成的表单内容,必须与/SAVIEAUTO同时使用才有效,默认不保存 /SAVDIAL: 保存宽带上网的密码至文件路径 /SAVOTHER: 保存自动登录用户以及产品序列号等其它密码信息 /HTMFILE: 指定文件保存为HTM网页文件格式,默认为文本格式 /CLIESC: 自动清除IE分级审查密码(不提示) /?: 显示命令行帮助信息 文件路径 要保存内容的目标文件路径 示例: Password /savieauto /iebd /htmfile d:\myieauto.htm (将IE自动完成的内容保存至d:\myieauto.htm,包括表单项内容,以HTM格式保存)    Password /savdial c:\a.txt (将拨号上网的密码保存至 c:\a.txt,文本文件格式) 为避免有人非法获取他人密码,使用命令行方式都会弹出提示窗口让用户确认。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值