安卓键盘记录器app推荐 键盘记录者程序( 二 )


下面是模块DlIMain中的钩子过程
把监视程序加入到下列注册表键处将使得它能够在系统启动时一起启动示例程序把spy.exe作为一项新注册表值加入 。键盘监视的防范
下面介绍两种简单的技术来帮助你的应用程序反击基于钩子技术的键盘监视程序.具有防范监视功能的密码编辑控件 。如图2所示 。
免于监视的编辑控件将针对每次用户击键生成一个模拟的随机击键串 。监视程序将截获用户的击键和伪击键.这样一来使它很难或者不可能检索实际的输入的文本 。用户输入被存储于一个成员变量中,应用程序可以容易地通过编辑控件存取该变量的值 。本例中的伪击键是通过调用Win32 APISendlnput来实现的 。下面的代码实现了两个控件 。一个MFC版本 。一个.NET版本 。
该编辑安全的控件假定函数Sendlneut生成击键的速度快于用户击键的速度,这可能导致编辑安全的控件在较慢的机器上返回错误的用户数据,特别是在运行c#实现版本时 。先看VCMFC版本的CsafeEdlt类:
用c#实现的SafeEdit类
SpyRemover类如图3所示 。
基于钩子技术的监视程序依赖于它们的钩子过程DLL 。将钩子DLL从应用程序进程中移去,将使注入该应用程序的窥探程序失去窥探击键的功能 。示例程序使用类SpyRemover来移去钩子DLL文件 。SpyHemover构造器接收个“授权模块“的列表 。如果一个模块只是装入到一个应用程序中,但是没有出现在该列表中,则被认为是没有授权的 。SpyRemover通过枚举所有的应用程序进程模块来探测未经授权的模块 。
小结
本文以软件保护为背景,详细讨论了一个键盘监视器的开发并针对反监视提出了一些建议 。希望读者理解基于钩子技术的窥探软件的工作原理.更好地针对自己的软件加以保护

推荐阅读