vc 星号密码查看方法

文章转自:http://blog.csdn.net/reggiekiller/article/details/5948830

===================================

基本都是别人写的,我居然有脸写原创。

玩路路解密破解游戏的时候用到过一个工具,可以用来查看窗口的星号密码以及网页中的星号密码,顿觉得很牛x,找了一下它们的原理,依葫芦画瓢也自娱自乐了一番。就当是验证一下实践一下快活一下悲哀一下吧。

对话框的星号密码查看原理是基于密码框都有个EM_SETPASSWORDCHAR属性。通过安装鼠标钩子监视鼠标动作,如果用户单击的是密码框那么就发送一个去除密码属性的消息。

mfc工程,对话框

  1. HHOOK g_hMouse;
  2. //鼠标钩子函数
  3. LRESULT CALLBACK HookProc( int code, WPARAM wParam,LPARAM lParam )
  4. {
  5. HWND hwnd;
  6. POINT point;
  7. GetCursorPos(&point);//得到鼠标位置
  8. hwnd=::WindowFromPoint(point);//得到包含鼠标的窗口句柄
  9. long nStyle=::GetWindowLong(hwnd,GWL_STYLE);// 得到窗口风格
  10. EVENTMSG *event=(EVENTMSG *)lParam;
  11. if(event->message==WM_LBUTTONDOWN)//是否为鼠标左键
  12. {
  13. if(nStyle & ES_PASSWORD)//是否为密码框
  14. {
  15. ::PostMessage(hwnd, EM_SETPASSWORDCHAR,0,0);//去掉密码属性
  16. }
  17. }
  18. return CallNextHookEx(g_hMouse,code,wParam,lParam);
  19. }
  20. void CGetPwdDlg::OnStart()
  21. {
  22. // TODO: Add your control notification handler code here
  23. g_hMouse = SetWindowsHookEx(WH_JOURNALRECORD,HookProc,GetModuleHandle(NULL),0);
  24. if(!g_hMouse)
  25. {
  26. MessageBox("设置钩子失败!");
  27. return;
  28. }
  29. MessageBox("设置成功!");
  30. }
  31. void CGetPwdDlg::OnEnd()
  32. {
  33. if(!UnhookWindowsHookEx(g_hMouse))
  34. {
  35. MessageBox("释放钩子失败!");
  36. return;
  37. }
  38. MessageBox("释放成功!");
  39. }

↑良好习惯,从我做起,哇咔咔

这个程序让我知道了不用dll也可以弄全局钩子呵呵,测试了一些基本的对话框还是可以的,qq的密码框当然是不行了。

解密这么容易那防范也同样简单,可以从TEdit派生一个新的组件,名字为TBugEyesEdit,然后修改其消息定义。那再发送取消EM_SETPASSWORDCHAR消息它就不会理你了。

网页版的需要写一个VBScript脚本,保存为htm文件

  1. <Script language="VBScript">
  2. On Error Resume Next '设置错误陷阱
  3. Dim ObjDocument,ObjEvent,ObjElement '声明对象
  4. Set ObjDocument = external.menuArguments.document
  5. '使用DOM方式枚举元素
  6. Set ObjEvent = external.menuArguments.event
  7. Set ObjElement=ObjDocument.elementFromPoint(ObjEvent.clientX,ObjEvent.clientY )
  8. '通过当前鼠标指针坐标得到网页元素
  9. If ObjElement.type ="password" then
  10. '如果网页元素类型为密码框
  11. If ObjElement.value="" then
  12. Alert("获取文本为空")
  13. else
  14. Alert("获取文本为:"+ObjElement.value) '显示密码
  15. End If
  16. End If
  17. </Script>

然后在注册表的“HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/MenuExt”下面的那个字串值改为脚本的路径就可以了

这样右键点击输入密码的框框,就有一个获得密码的选项了

经测试,百度、人人什么的网站全都失效。。。但是试了CSDN之后让我不淡定了。。。。。。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值