CN101114323A - 监控键盘钩子的装置 - Google Patents
监控键盘钩子的装置 Download PDFInfo
- Publication number
- CN101114323A CN101114323A CNA2006100295361A CN200610029536A CN101114323A CN 101114323 A CN101114323 A CN 101114323A CN A2006100295361 A CNA2006100295361 A CN A2006100295361A CN 200610029536 A CN200610029536 A CN 200610029536A CN 101114323 A CN101114323 A CN 101114323A
- Authority
- CN
- China
- Prior art keywords
- hook
- keyboard
- monitoring
- display unit
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
本发明公开了一种监控键盘钩子的装置,包括监控模块,设有一个监控单元,其设在操作系统提供的设置键盘钩子函数和/或设在操作系统中键盘驱动程序中,用于监控设置键盘钩子的动作。本发明能够监控插入键盘钩子的行为,使得用户能够了解有哪些程序试图获取键盘信息,从而避免非法获取键盘信息,造成用户的损失。
Description
技术领域
本发明涉及计算机安全领域,特别涉及一种监视和检测键盘钩子的装置。
背景技术
钩子(HOOK)的本质是一段用以处理系统消息的程序,通过系统调用,把它挂入系统。钩子的种类很多,每种钩子可以截获并处理相应的消息,每当特定的消息发出,在到达目的窗口之前,钩子程序先行截获该消息、得到对此消息的控制权。此时钩子函数可以对截获的消息进行加工处理,甚至可以强制结束消息的传递。
如图1所示,目前,利用钩子行为来获取键盘信息的方式有以下三种:
1、通过调用Windows操作系统提供的2个SDK(软件开发包)中应用程序编程接口(API)函数Set WindowsHookEx来安装钩子函数,这个函数的原型是:
HHOOK SetWindowsHookEx(int idHook,HOOKPROC lpfn,HINSTANCEhMod,DWORD dwThreadId),其中,第一个参数是钩子的类型;第二个参数是钩子函数的地址;第三个参数是包含钩子函数的模块句柄;第四个参数指定监视的线程。如果指定确定的线程,即为线程专用钩子;如果指定为空,即为全局钩子。其中,全局钩子函数必须包含在DLL(动态链接库)中,而线程专用钩子还可以包含在可执行文件中。得到控制权的钩子函数在完成对消息的处理后,如果想要该消息继续传递,那么它必须调用另外一个SDK中的API函数CallNextHookEx来传递它。钩子函数也可以通过直接返回TRUE来丢弃该消息,并阻止该消息的传递。
2、在键盘驱动程序的设备栈中插入键盘驱动程序钩子,如图1所示,键盘驱动位于应用层win32k!RawInputThread和硬件i8042之间。win32k!RawInputThread总是发一个IRP_MJ_READ的IRP到键盘设备栈的顶端,等待着来自键盘的数据。当i8042有数据要键盘驱动取走的时候,就会触发中断,这个中断的中断服务例程是键盘驱动中的函数,于是键盘驱动就可以从i8042读取数据,经过一系列处理最终完成那个等待的IRP,PS/2键盘驱动的设备栈有3层,最底层设备对象的驱动是ACPI,中间层设备对象的驱动是i8042prt,最高层设备对象的驱动是Kbdclass,可以通过在设备栈中插入设备栈钩子。
3、通过拦截键盘驱动中断挂钩,当用户按键时,键盘接口会得到一个代表该按键的键盘扫描码,同时产生一个中断请求。键盘中断服务程序先从键盘接口取得按键的扫描码,然后根据其扫描码判断用户所按的键并作相应的处理,最后通知中断控制器本次中断结束并实现中断返回,在此过程中可以拦截中断,插入钩子。
当一个非法程序在系统中安装了键盘钩子后,就可以通过键盘钩子将键盘输入信息的传递方向改变,转而执行一个非法的、不安全的操作,例如,当需要在键盘上输入帐户密码,通过键盘钩子,就可以知道用户输入的密码,再利用其他软件就能够将该密码传递到远程计算机上,使得他人得知该用户的密码。
发明内容
本发明所要解决的技术问题监控利用上述方法插入键盘钩子,从而保证键盘输入信息的安全,实时监视来自网络等其它渠道控制键盘钩子的行为,并检测枚举系统中的钩子个数和类型。
本发明的目的是通过以下技术方案实现的:
一种监控键盘钩子的装置,包括监控模块,设有一个监控单元,其设在操作系统提供的设置键盘钩子函数和/或设在操作系统中键盘驱动程序中,用于监控设置键盘钩子的动作。
该装置还包括一个拦截显示单元,该监控单元将调用这些函数或驱动程序的钩子程序信息传给该拦截显示单元,该拦截显示单元显示这些钩子程序信息。
该装置还包括一个中断向量表监视单元,其监视中断向量表中键盘中断向量,获取改变该中断向量的钩子程序信息并传递给该拦截显示单元。
其中,所述钩子程序信息包括钩子程序的名称、类型、图标、安装路径。
所述操作系统为Windows操作系统,所述设置键盘钩子函数为SetWindowHookEx。
在键盘驱动程序中的函数ZwCreatDevice设置该监控单元。
另外,该装置还包括检测模块,设有一个检测钩子单元和一个钩子显示单元,该检测钩子单元检测系统钩子链、系统设备栈和键盘中断向量的地址来检测系统中存在钩子程序,该钩子显示单元显示检测出的钩子程序的信息。
本发明的积极进步效果在于:能够监控插入键盘钩子的行为,使得用户能够了解有哪些程序试图获取键盘信息,从而避免非法获取键盘信息,造成用户的损失。
附图说明
图1为利用钩子行为来获取键盘信息的方式的示意图。
图2为本发明一实施例的结构框图。
具体实施方式
下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。
如图2所示,一种监控键盘钩子的装置,包括监控模块1,设有一个监控单元10,其设在操作系统提供的设置键盘钩子函数和/或设在操作系统中键盘驱动程序中,用于监控设置键盘钩子的动作。
在Windows系统下,所述设置键盘钩子函数为SetWindowHookEx,还可以在键盘驱动程序中的函数ZwCreatDevice设置该监控单元10。
该装置还包括一个拦截显示单元20,该监控单元10将调用这些函数或驱动程序的钩子程序信息传给该拦截显示单元20,该拦截显示单元显示这些钩子程序信息。其中,所述钩子程序信息包括钩子程序的名称、类型、图标、安装路径。该拦截显示单元20是一个在显示设备上显示信息的软件,其为现有技术。
在具体实现时,监控单元10可以是一个嵌入在键盘钩子函数SetWindowHookEx或ZwCreatDevice中的软件模块或函数,所有调用此函数的行为都会被该软件模块拦截,从而实现对键盘钩子的监视。
同理,对于其他的操作系统,同样存在调用键盘的API(应用程序结构),同样可以在这些API函数中设置监控单元来实现对键盘钩子的监视。根据前面所述的方法,本领域的一般技术人员就可以实现在其他类型的操作系统中对键盘钩子的监视。
该装置还包括一个中断向量表监视单元30,其监视中断向量表中键盘中断向量。该中断向量监视单元30常驻在内存中,定时监视系统中断向量表(IDT)的第9项,即键盘中断向量,看它的地址是否被改变,当某个钩子程序试图改变该中断向量所指地址时,该中断向量表监视单元30就获取该钩子程序信息并传递给该拦截显示单元20,所述钩子程序信息其与前面所述钩子程序信息相同。
另外,该装置还包括检测模块2,设有一个检测钩子单元40和一个钩子显示单元50,该检测钩子单元40检测系统中所有安装过的钩子程序,检测方式包括如下三种:通过枚举系统钩子链中的所有钩子进行检测;通过枚举系统设备栈中设备的方式进行检测;通过检查中断向量表中键盘中断的地址,由该地址追踪到拥有该地址的驱动程序,从而实现检测。上述三种方式均为现有技术。
该钩子显示单元50把检测出的系统中所有钩子程序的信息显示出来,钩子程序信息与前面所述钩子程序信息相同。
这样,用户就可以知道有什么程序正试图安装键盘钩子,系统中已经安装了哪些键盘钩子,从而使得非法程序不能够获取键盘输入信息,保证键盘输入信息的安全。
Claims (7)
1.一种监控键盘钩子的装置,其特征在于,其包括监控模块,设有一个监控单元,其设在操作系统提供的设置键盘钩子函数和/或设在操作系统中键盘驱动程序中,用于监控设置键盘钩子的动作。
2.根据权利要求1所述的监控键盘钩子的装置,其特征在于,该装置还包括一个拦截显示单元,该监控单元将调用这些函数或驱动程序的钩子程序信息传给该拦截显示单元,该拦截显示单元显示这些钩子程序信息。
3.根据权利要求2所述的监控键盘钩子的装置,其特征在于,该装置还包括一个中断向量表监视单元,其监视中断向量表中键盘中断向量,获取改变该中断向量的钩子程序信息并传递给该拦截显示单元。
4.根据权利要求2或3所述的监控键盘钩子的装置,其特征在于,所述钩子程序信息包括钩子程序的名称、类型、图标、安装路径。
5.根据权利要求4所述的监控键盘钩子的装置,其特征在于,所述操作系统为Windows操作系统,所述设置键盘钩子函数为SetWindowHookEx。
6.根据权利要求5所述的监控键盘钩子的装置,其特征在于,在键盘驱动程序中的函数ZwCreatDevice设置该监控单元。
7.根据权利要求6所述的监控键盘钩子的装置,其特征在于,该装置还包括检测模块,设有一个检测钩子单元和一个钩子显示单元,该检测钩子单元检测系统钩子链、系统设备栈和键盘中断向量的地址来检测系统中存在钩子程序,该钩子显示单元显示检测出的钩子程序的信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006100295361A CN101114323A (zh) | 2006-07-28 | 2006-07-28 | 监控键盘钩子的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006100295361A CN101114323A (zh) | 2006-07-28 | 2006-07-28 | 监控键盘钩子的装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101114323A true CN101114323A (zh) | 2008-01-30 |
Family
ID=39022660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006100295361A Pending CN101114323A (zh) | 2006-07-28 | 2006-07-28 | 监控键盘钩子的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101114323A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599038B (zh) * | 2009-05-27 | 2011-03-30 | 腾讯科技(北京)有限公司 | 一种记录软件使用信息的系统和方法 |
CN101997912A (zh) * | 2010-10-27 | 2011-03-30 | 苏州凌霄科技有限公司 | 基于Android平台的强制访问控制装置及控制方法 |
CN101483658B (zh) * | 2009-01-09 | 2012-11-28 | 招商银行股份有限公司 | 浏览器输入内容保护的系统和方法 |
CN103020526A (zh) * | 2012-12-21 | 2013-04-03 | 北京奇虎科技有限公司 | 恶意程序主动拦截方法和装置及客户端设备 |
CN103020527A (zh) * | 2012-12-21 | 2013-04-03 | 北京奇虎科技有限公司 | 主动拦截恶意程序的方法、装置、系统 |
CN103034915A (zh) * | 2011-09-30 | 2013-04-10 | 深圳市金蝶友商电子商务服务有限公司 | 一种辅助用户数据记录的方法和装置 |
CN103116722A (zh) * | 2013-02-06 | 2013-05-22 | 北京奇虎科技有限公司 | 一种通知栏消息的处理方法、装置和系统 |
CN104462904A (zh) * | 2014-12-16 | 2015-03-25 | 上海斐讯数据通信技术有限公司 | 一种输入信息处理方法及系统 |
CN104573484A (zh) * | 2014-12-31 | 2015-04-29 | 上海动联信息技术股份有限公司 | 一种高安全性密码口令框 |
CN106201492A (zh) * | 2016-06-30 | 2016-12-07 | 北京金山安全软件有限公司 | 一种热键实现方法、装置及电子设备 |
CN106446684A (zh) * | 2016-09-22 | 2017-02-22 | 武汉斗鱼网络科技有限公司 | 一种基于密码控件的网络账号保护方法及系统 |
CN106446678A (zh) * | 2016-09-22 | 2017-02-22 | 武汉斗鱼网络科技有限公司 | 一种基于句柄函数的网络账号保护方法及系统 |
CN103577237B (zh) * | 2013-11-15 | 2017-09-05 | 北京奇虎科技有限公司 | 应用程序启动的控制方法及装置 |
CN107871092A (zh) * | 2016-09-27 | 2018-04-03 | 北京计算机技术及应用研究所 | 基于Windows的防键盘记录方法 |
CN108563552A (zh) * | 2017-12-28 | 2018-09-21 | 北京奇虎科技有限公司 | 一种记录外设操作行为的方法、设备及其存储介质 |
CN109388948A (zh) * | 2018-11-05 | 2019-02-26 | 杭州安恒信息技术股份有限公司 | 一种基于虚拟化技术的潜在恶意软件分析方法及相关装置 |
CN112800409A (zh) * | 2021-01-08 | 2021-05-14 | 杭州雾联科技有限公司 | 一种绕过登录保护的方法、装置及介质 |
-
2006
- 2006-07-28 CN CNA2006100295361A patent/CN101114323A/zh active Pending
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101483658B (zh) * | 2009-01-09 | 2012-11-28 | 招商银行股份有限公司 | 浏览器输入内容保护的系统和方法 |
CN101599038B (zh) * | 2009-05-27 | 2011-03-30 | 腾讯科技(北京)有限公司 | 一种记录软件使用信息的系统和方法 |
CN101997912A (zh) * | 2010-10-27 | 2011-03-30 | 苏州凌霄科技有限公司 | 基于Android平台的强制访问控制装置及控制方法 |
CN103034915A (zh) * | 2011-09-30 | 2013-04-10 | 深圳市金蝶友商电子商务服务有限公司 | 一种辅助用户数据记录的方法和装置 |
CN103034915B (zh) * | 2011-09-30 | 2017-08-18 | 深圳市金蝶精斗云网络科技有限公司 | 一种辅助用户数据记录的方法和装置 |
CN103020526B (zh) * | 2012-12-21 | 2016-04-13 | 北京奇虎科技有限公司 | 恶意程序主动拦截方法和装置及客户端设备 |
CN103020527A (zh) * | 2012-12-21 | 2013-04-03 | 北京奇虎科技有限公司 | 主动拦截恶意程序的方法、装置、系统 |
CN103020526A (zh) * | 2012-12-21 | 2013-04-03 | 北京奇虎科技有限公司 | 恶意程序主动拦截方法和装置及客户端设备 |
CN103116722A (zh) * | 2013-02-06 | 2013-05-22 | 北京奇虎科技有限公司 | 一种通知栏消息的处理方法、装置和系统 |
US9953161B2 (en) | 2013-02-06 | 2018-04-24 | Beijing Qihoo Technology Company Limited | Method, device and system for processing notification bar message |
CN103577237B (zh) * | 2013-11-15 | 2017-09-05 | 北京奇虎科技有限公司 | 应用程序启动的控制方法及装置 |
CN104462904A (zh) * | 2014-12-16 | 2015-03-25 | 上海斐讯数据通信技术有限公司 | 一种输入信息处理方法及系统 |
CN104573484A (zh) * | 2014-12-31 | 2015-04-29 | 上海动联信息技术股份有限公司 | 一种高安全性密码口令框 |
CN106201492A (zh) * | 2016-06-30 | 2016-12-07 | 北京金山安全软件有限公司 | 一种热键实现方法、装置及电子设备 |
CN106446678A (zh) * | 2016-09-22 | 2017-02-22 | 武汉斗鱼网络科技有限公司 | 一种基于句柄函数的网络账号保护方法及系统 |
CN106446684A (zh) * | 2016-09-22 | 2017-02-22 | 武汉斗鱼网络科技有限公司 | 一种基于密码控件的网络账号保护方法及系统 |
CN107871092A (zh) * | 2016-09-27 | 2018-04-03 | 北京计算机技术及应用研究所 | 基于Windows的防键盘记录方法 |
CN108563552A (zh) * | 2017-12-28 | 2018-09-21 | 北京奇虎科技有限公司 | 一种记录外设操作行为的方法、设备及其存储介质 |
CN108563552B (zh) * | 2017-12-28 | 2021-09-28 | 北京奇虎科技有限公司 | 一种记录外设操作行为的方法、设备及其存储介质 |
CN109388948A (zh) * | 2018-11-05 | 2019-02-26 | 杭州安恒信息技术股份有限公司 | 一种基于虚拟化技术的潜在恶意软件分析方法及相关装置 |
CN109388948B (zh) * | 2018-11-05 | 2021-02-26 | 杭州安恒信息技术股份有限公司 | 一种基于虚拟化技术的潜在恶意软件分析方法及相关装置 |
CN112800409A (zh) * | 2021-01-08 | 2021-05-14 | 杭州雾联科技有限公司 | 一种绕过登录保护的方法、装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101114323A (zh) | 监控键盘钩子的装置 | |
CN103744593B (zh) | 移动终端及防止移动终端误操作的方法 | |
CN100504735C (zh) | 管理窗口的方法和设备 | |
KR920016935A (ko) | 자동모드변환이 가능한 통합 키보드 및 지정기구 시스템 | |
WO2007061671A3 (en) | Systems and methods for detecting and disabling malicious script code | |
CN103699298A (zh) | 一种信息处理方法及电子设备 | |
CN101051911A (zh) | 控制信息处理装置进行的通信的信息处理装置和方法 | |
CN105630384A (zh) | 通过多击事件打开应用的方法及其控制系统 | |
CN101366007B (zh) | 用于控制中断例程的执行的方法、计算机程序产品和计算机系统 | |
US20060179477A1 (en) | Method and apparatus for distinguishing the origin of operator inputs in electronic control systems and printing machine having the apparatus | |
CN106027631A (zh) | 一种数据传输方法及装置 | |
EP1748354B1 (en) | A method for managing and displaying messages and device for managing and displaying messages | |
WO2018018853A1 (zh) | 外设总线的控制装置及方法 | |
CN105389116A (zh) | 用于终端设备的终端应用处理方法和系统、终端设备 | |
CN104932927B (zh) | 一种应用程序控制方法及电子设备 | |
CN1846217A (zh) | 信息存储装置和信息处理装置 | |
CN113687942B (zh) | 检测方法、装置及电子设备 | |
CN103312869A (zh) | 移动终端待解屏待机状态转换方法及系统 | |
EP1998536A2 (en) | Detection of accidental key pressings | |
CN103019968A (zh) | 输入设备在输入处理实例中注册的控制方法及装置 | |
KR100618656B1 (ko) | 동적 소프트웨어 다운로딩을 이용한 가전기기 제어 시스템및 그 방법 | |
CN107390981B (zh) | 一种全局菜单的控制方法、装置、设备和存储介质 | |
CN1183452C (zh) | 被动式程序监控方法 | |
CN100419642C (zh) | 电子产品的自动指示方法及装置 | |
CN103839017B (zh) | 一种电子设备状态的切换方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |