文章插图

文章插图
本文将详细讨论一个键盘监视器的C++/c#开发过程并针对反窥探提出一些建议,希望读者理解基于钩子技术的窥探软件的工作原理以便更好地对自己的软件加以保护 。
基于软件的键盘事件记录器是一个严重的安全威胁,因为它们通过捕获击键操作来监控用户的行动 。监控器可以用于一些恶意的行为,诸如盗窃信用卡号码等 。击键记录器是Trojans病毒的个基本组成部分,它们在后台安静地运行 。伺机捕获用户的击键操作 。击键事件被保存在经过良好隐藏的文件中,通过电子邮件或者FTP方式发送给窥探者 。下面是一个简单的、直接使用钩子技术实现的例子 。
键盘监视器体系结构
键盘监视器由3个模块组成:主模块、钩子过程和FTP模块 。主模块负责安装一个全局钩子过程 。该钩子的任务是把每次按键事件向主模块汇报,由主模块把所有的击键保存到一个文件中 。当记录文件达到预定的大小时,主模块命令FTP模块把记录文件上载给一个FTP服务器 。3个模块间的通讯是通过Windows消息机制实现的,如图1所示 。
一段DLL共享内存区域实际上是一个所有的DLL实例都可以看到的内存变量 。主模块把它的窗口句柄保存在钩子DLL的共享内存区域中,该DLL使所有的钩子过程实例能够把窗口消息邮寄回主模块中 。钩子过程共享内存区域并输出函数
任务管理器盗窃
ADS(Alternate Data Streams)是一项NTFS文件系统特性,它能使你把文件数据送于存在的文件中而不影响它们的功能,资源管理器等浏览工具对它们的显示,带有ADS的文件用本地文件浏览技术几乎是不可能检测到的 。一旦文件被注入该项特性,ADS即可被诸如传统的命令type等执行 。在激活时.ADS执行体以原始文件的方式出现并运行可以用Windows资源管理器等进程观察器来试验 。使用这种技术后,不仅能隐藏一个文件.而且能隐藏个非法进程的执行体部分 。事实上,如果安装了NTFS系统,你是不可能本地探测出以ADS方式隐藏的文件的 。ADS特性不能够被取消(dlsabled).目前为止还没有办法来针对用户已经对其具有存取权限的文件限制这种特性 。示例程序为了简明目地没有使用ADS 。你可以用下列方式手工操作ADS 。
大多数的防火墙软件都能探测和阻拦不经授权的程序接入因特网 。主模块通过使用FTP模块把记录文件上载到一个FTP服务器 。防火墙通过把FTP模块DLL注入到另外一个已经安装的应用程序中来实现盗窃 。DLL注入意味着强制一个不能被挂起的进程必须接受一个自己从来没有要求的DLL文件 。示例中,我选择把FTP模块注八或者Internet Explorer或者FireFox 。DLL注入将会越过大多数防火墙软件的检测.特别在FTP服务器在监听80端口时 。钩子过程DLL (它由函数SetWindowsHookEx自动加载进入所有正运行进程)检查是被装入到Internet Explorer还是FireFox并加载(用LoadLibrary)了FTP模块DLL 。从DliMain中调用LoadLibrary函数是不允许的,因此DIIMain设置了一个布尔变量来让钩子过程调用LoadLibrary库函数 。
下面是模块DlIMain中的钩子过程
下面介绍两种简单的技术来帮助你的应用程序反击基于钩子技术的键盘监视程序.具有防范监视功能的密码编辑控件 。如图2所示 。
该编辑安全的控件假定函数Sendlneut生成击键的速度快于用户击键的速度,这可能导致编辑安全的控件在较慢的机器上返回错误的用户数据,特别是在运行c#实现版本时 。先看VC++ MFC版本的CsafeEdlt类:
本文以软件保护为背景,详细讨论了一个键盘监视器的开发并针对反监视提出了一些建议 。希望读者理解基于钩子技术的窥探软件的工作原理.更好地针对自己的软件加以保护
- 央行开展8000亿MLF操作 央行5000亿元MLF操作
- 小红鸟qq聊天记录查看器 qq聊天记录查看器破解版手机版
- 电脑录屏步骤 电脑操作怎样录屏
- 手机ppt转换word文档怎么操作 电脑ppt转换word文档怎么操作
- 电脑键盘录制软件 机械键盘录制功能是什么
- 游戏机械键盘哪个好 nga 游戏机械键盘哪个好用
- 电视什么操作系统好用 电视机的操作系统哪一种好一点
- dos工具箱有什么用 电脑系统dos工具箱怎么操作
- arcgis核密度估计操作 arcgis核密度图结果描述
- 暧昧期的聊天记录是怎么样的 暧昧期怎么聊天
