首页    新闻    下载    文档    论坛     最新漏洞    黑客教程    数据库    搜索    小榕软件实验室怀旧版    星际争霸WEB版    最新IP准确查询   
名称: 密码:      忘记密码  马上注册

正在浏览:   1 名游客





号密码查看工具DIY
版主
注册日期:
1970/1/1 8:00
所属群组:
注册会员
帖子: 1
等级: 1; EXP: 0
HP : 0 / 0
MP : 0 / 0
离线
注:本文于07/1月于黑客防线发表版权归黑客防线所有,转载请注明出处



号密码查看工具DIY


文/德州科技职业学院 冷风




星号密码查看工具大家都用过吧,现在我们自己来写个超级简单的。其实密码框是一个Windows的一个子窗口,显示星号是因为密码框设置了 EM_SETPASSWORDCHAR属性,只要我们把密码框的EM_SETPASSWORDCHAR属性给去掉那么密码就会以明文显示了,我们可以给程序发送消息去掉EM_SETPASSWORDCHAR属性。通过安装鼠标钩子监视鼠标动作,如果用户单击的是密码框那么就发送一个去除密码属性的消息。

本文使用的编程工具为VC6.0,具体实现步骤和代码如下:
1.生成一个基于对话框的程序pass。打开passDlg.cpp,加入下面的全局变量和鼠标钩子函数。
HHOOK g_hHook = NULL;//全局钩子函数句柄
//鼠标钩子函数
LRESULT CALLBACK HookProc( int code, WPARAM wParam,LPARAM lParam )
{
HWND hwnd;
POINT point;
GetCursorPos(&point);//得到鼠标位置
hwnd=::WindowFromPoint(point);//得到包含鼠标的窗口句柄
long nStyle=::GetWindowLong(hwnd,GWL_STYLE);// 得到窗口风格

EVENTMSG *event=(EVENTMSG *)lParam;
if(event->message==WM_LBUTTONDOWN)//是否为鼠标左键
{
if(nStyle & ES_PASSWORD)//是否为密码框
{
::PostMessage(hwnd, EM_SETPASSWORDCHAR,0,0);//去掉密码属性
}
}
return CallNextHookEx(g_hHook,code,wParam,lParam);
}
需要注意的是,程序中::PostMessage(hwnd, EM_SETPASSWORDCHAR,0,0);
只能是PostMessage而不能用SendMessage代替。
2.添加“开始探测”按钮及响应函数OnOK()在函数中安装钩子
void CPassDlg::OnOK()
{
g_hHook=SetWindowsHookEx(WH_JOURNALRECORD,HookProc,GetModuleHandle(NULL),0);
//安装钩子
}
钩子的第三部分使用GetModuleHandle(NULL)意为把自己做为保存钩子的DLL
3.添加“取消退出”按钮及响应函数OnExit() 在函数中卸载钩子
void CPassDlg::OnExit()
{

if(g_hHook)
UnhookWindowsHookEx(g_hHook);//卸载钩子
exit(0);
}
现在就完工了,打开我们的程序,按下“开始探测”再打开需要输入密码的程序试试,是不是以明文显示了?用这个小程序可以搞定系统的密码设置,outlook或防范不严的程序密码,但对有专门防范的程序就不行了比如新版QQ。

2008/12/13 21:57
应用扩展 工具箱






可以查看帖子.
不可发帖.
不可回复.
不可编辑自己的帖子.
不可删除自己的帖子.
不可发起投票调查.
不可在投票调查中投票.
不可上传附件.
不可不经审核直接发帖.

[高级搜索]



系统导航

 

Copyright © 2001-2010 安信网络. All Rights Reserved
京ICP备05056747号