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

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

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

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

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

mfc工程,对话框

[cpp] view plaincopyprint?
  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. }

HHOOK g_hMouse; //鼠标钩子函数 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_hMouse,code,wParam,lParam); } void CGetPwdDlg::OnStart() { // TODO: Add your control notification handler code here g_hMouse = SetWindowsHookEx(WH_JOURNALRECORD,HookProc,GetModuleHandle(NULL),0); if(!g_hMouse) { MessageBox("设置钩子失败!"); return; } MessageBox("设置成功!"); } void CGetPwdDlg::OnEnd() { if(!UnhookWindowsHookEx(g_hMouse)) { MessageBox("释放钩子失败!"); return; } MessageBox("释放成功!"); }

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

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

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

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

[vb] view plaincopyprint?
  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>

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

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

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

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

vc 星号密码查看方法相关推荐

  1. VC星号密码查看器源码

    UINT g_timer = 0; void CGetPwdDlg::StartDeteck() {     // TODO: 在此添加控件通知处理程序代码     //g_hHook=SetWind ...

  2. 网页源文件星号怎么显示_【亲测实用】网页隐藏密码查看方法

    怎么查看网页星号密码呢?由于网页密码新增"软键盘"输入法,因此对于部分网页密码,无法通过相关"星号密码查看器"或一般方法来查看.以下小编就根据自己的实际亲测经验 ...

  3. Windows文本框星号密码查看器

    Windows文本框星号密码查看器 本人2002的学习作品 作者:成晓旭 1.  设计原理:注册一个系统级鼠标挂钩,通过监测系统鼠标所在Windows窗口来获取密码,成功获取密码之后,通过发送自定义的 ...

  4. 简易的星号密码查看器(对话框版+网页版)

    基本都是别人写的,我居然有脸写原创. 玩路路解密破解游戏的时候用到过一个工具,可以用来查看窗口的星号密码以及网页中的星号密码,顿觉得很牛x,找了一下它们的原理,依葫芦画瓢也自娱自乐了一番.就当是验证一 ...

  5. 木马编程DIY之星号密码查看

    原文链接:http://blog.csdn.net/chinafe 星号密码查看工具大家都用过吧,现在我们自己来写个超级简单的.其实密码框是一个 Windows 的一个子窗口,显示星号是因为密码框设置 ...

  6. 冷风 星号密码查看工具DIY

    注:本文于07/1月于黑客防线发表版权归黑客防线所有,转载请注明出处 号密码查看工具DIY 文/德州科技职业学院 冷风 星号密码查看工具大家都用过吧,现在我们自己来写个超级简单的.其实密码框是一个Wi ...

  7. ***编程DIY (Delphi版) - 第3篇 星号密码查看工具

    星号密码查看工具大家都用过吧,现在我们自己来写个超级简单的.其实密码框是一个Window子窗体,显示星号是因为密码框设置了EM_SETPASSWORDCHAR属性,只要我们把密码框的EM_SETPAS ...

  8. 木马编程DIY (Delphi版) - 第3篇 星号密码查看工具

    注:<木马编程DIY>由冷风(chinafe)创作完成.本文在其基础上将原文中的C++源代码修改为Delphi源代码,并加以相关说明. 感谢冷风(chinafe)的无私奉献. 星号密码查看 ...

  9. 网页中保存的密码查看方法

    前言 我们经常会在网页中保存一些常用的密码,如果忘记之后想知道密码只能通过修改密码,可能比较麻烦.使用这个方法,可以,查看屏幕上本来是点状的密码. 正文 在原本是点状密码输入框的位置右键 点击检查 在 ...

  10. 最全各种浏览器网页星号点号密码查看最简方法(技术小白也能看懂使用)

    查看浏览器网页星号.点号密码分IE内核的浏览器和非IE内核的浏览器密码查看 1.IE浏览器的密码查看 方法①:(需要懂简单的IT前端技术)按F12--找到密码元素 或 找到你要查看的密码元素--右键- ...

最新文章

  1. c语言 结构成员 变量引用,C++结构体变量的引用
  2. java状态模式例子答案_[转载]java设计模式_状态模式(带例子)
  3. 康普顿效应是弹性碰撞吗_如何正确解读物理实验结果系列之十二——康普顿效应与光子...
  4. cass生成曲线要素文件_《CASS道路断面法施工技术》
  5. STM32网络ETH
  6. JavaWeb之编码问题
  7. 高级文本编辑器——Kate
  8. IE associate Fix
  9. 怎么用计算机自己做动画片,怎样用电脑制作动画,电脑动画制作怎么做
  10. 计算机隐藏用法表白,微信隐藏符号功能大全 情人节可以发这些表白
  11. Python视频转换分辨率(附代码) | Python工具
  12. 【Computer Organization笔记08】指令系统概述,指令格式,寻址方式
  13. python模拟键盘上键和回车_使用Python模拟键盘输入
  14. 信用社考试计算机试题及答案,2016黑龙江省农村信用社考试题库-计算机试题及答案六...
  15. AT-GAN: A Generative Attack Model for Adversarial Transferring on Generative Adversarial Nets
  16. 连接数据库时出错 : The server time zone value is unrecognized or represents more than one time z
  17. STM32CubeMX实战教程(七)——TFT_LCD液晶显示(附驱动代码)
  18. css 横线中间添加文字
  19. IT培训行业揭秘(五)
  20. [像素大厨PxCood下载安装]

热门文章

  1. 系统加速批处理文件:清理无用共享、内存及系统垃圾
  2. 我的世界服务器自动刷矿机,我的世界空岛刷矿机制作教程
  3. Citrix ADC中SNIP的三种配置场景
  4. 玩转Dokuwiki
  5. 如何选择云主机或者VPS挂EA?
  6. filebox管理php,filebox.php
  7. 算法——最短路径应用
  8. 学Dapr Actors 看这篇就够了
  9. Python list列表---学习总结
  10. Metro Studio——轻松创建Metro风格图标