使用钩子函数截取windows应用程序口令

使用钩子函数截取windows应用程序口令

ID:8994377

大小:52.50 KB

页数:13页

时间:2018-04-14

使用钩子函数截取windows应用程序口令_第1页
使用钩子函数截取windows应用程序口令_第2页
使用钩子函数截取windows应用程序口令_第3页
使用钩子函数截取windows应用程序口令_第4页
使用钩子函数截取windows应用程序口令_第5页
资源描述:

《使用钩子函数截取windows应用程序口令》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、使用钩子函数截取Windows应用程序口令摘要:本文简单介绍如何采用Visualc++语言,利用钩子函数截取Windows应用程序或文件口令,并以此说明windows存在的安全隐患。关键词:密码、钩子函数、DLL、后台进程一、引言:在计算机发展的今天,安全性是衡量信息系统的一个重要指标,也是信息系统中的一个重要课题。在我国指纹识别和条码识别尚不能普及的情况下,程序编制者为了维护系统的安全在程序中经常使用口令来验证使用者是否是合法用户,以此来决定他能否有权使用计算机中的数据资源。这种做法曾一度被视为最安全最简单最有效,于是用户也喜欢经常的

2、变换口令,设置口令,在他们看来有了密码口令,就像有了保护神,一夫当关万夫莫开。于是系统中就出现了各种各样的口令,如文件口令(象Word、Excel、Access、Zip、Wps)、数据库访问口令、电子邮件账号口令、终端口令、以及个别应用程序的使用口令等等。一方面,这些口令给使用者记忆保存口令带来的很大的负担,另一方面一旦用户忘记了这些口令可能会给他们带来很大的麻烦。特别应当注意的是,如果有个别用心的人,在系统中安置一个类似于“黑客程序”(如Reveal)的小程序,就会轻而易举地取得用户口令,在这种情况下,用户口令丝毫不能保护他们的数据安

3、全,本文就是结合上述问题谈谈Windows环境下一些口令设置程序设计的弊端。以此来提醒用户在使用口令的同时加强管理同样不可忽视。二、设计思路我们知道Windows应用程序经常使用口令对话框来输入密码,然后对输入的密码进行验证,一般的密码经常使用一些字符作为回显字符(如*%$#@!~&^?),以此来表明使用者已经输入的字符数。这些对话框一般的都擦采用Windows中的ES_PASSWORD编辑框控件,一般程序编制者对编辑框的事件都不响应,采用Windows默认的事件驱动。这样就造成了安全隐患,如果我们在程序中对当前系统的所有可见窗口进行遍

4、历,如果发现控件的文本属性包含密码或口令,以及PASSWORD文本,就认为系统要求输入密码,不管是否是ES_PASSWORD风格,这样非ES_PASSWORD密码对话框,也可以进行截获,只要使用GetWindowsText(hWnd)就可轻而易举地取得用户输入的口令。我们知道每一个windows消息传递都经过钩子函数,通过钩子函数我们很容易拦截窗口的WMDESTROY消息,然后通过API调用获得其密码。下面分几个方面,具体谈谈如何用钩子函数取得用户输入的口令。(一)钩子函数钩子函数是系统消息处理机制的一个入口点,通过它应用程序可以安装一

5、个例程,来监视系统的消息传递路线,对某种特定的消息在传递到目标窗口之前进行响应。(1)钩子函数的安装——SetWindowsHookExSetWindowsHookEx函数用于安装一个应用程序定义的钩子例程到钩子链中,你可以安装一个钩子例程来监视系统中的某些事件,这些事件既可以与某一特定的线程有关,也可以与系统中的所有线程有关。HHOOKSetWindowsHookEx(intidHook,//要安装的钩子类型HOOKPROClpfn,//钩子例程的入口地址HINSTANCEhMod,//应用程序的事例句柄DWORDdwThreadId

6、//安装钩子的线程标识);参数:idHook指定要安装的钩子类型,这个参数可以是下列值值描述WH_CALLWNDPROC安装一个钩子例程监视传递给目标窗口例程之前的消息。详细信息请参看CallWndProc钩子例程.WH_CALLWNDPROCRET安装一个钩子例程监视已被目标窗口例程处理之的消息。详细信息请参看CallWndProcRet程.WH_CBT安装一个钩子例程接受与计算机训练有关的消息详细信息请参看CBTProc钩子例程WH_DEBUG安装一个钩子例程用于调试其他钩子例程详细信息请参看DebugProc钩子例程WH_FORE

7、GROUNDIDLE安装一个钩子例程用于当应用程序前台线程空闲时被调用,这个钩子对于在系统空闲时运行一些低优先权的任务特别有用。详细信息请参看ForegroundIdleProc钩子例程WH_GETMESSAGE安装一个钩子例程用于监视加入到消息队列中的消息。详细信息请参看GetMsgProc钩子例程WH_JOURNALPLAYBACK安装一个钩子例程用于投递先前被WH_JOURNALRECORD钩子记录的消息,详细信息请参看JournalPlaybackProc钩子例程WH_JOURNALRECORD安装一个钩子例程用于记录投递系统消

8、息队列的输入消息,这个钩子对于记录宏特别有用,详细信息请参看JournalRecordProc钩子例程WH_KEYBOARD安装一个钩子例程用于监视键盘击打消息,详细信息请参看KeyboardProc钩子例

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。