一个反键盘记录工具的分析

看棒子不顺眼,破解NProtect,键盘驱动级截取键盘记录 NProtect,是用驱动加载进入ring0级别,每个进程注入一个钩子,用键盘中断技术写的一个钩子,本人就用驱动对付他,废话少说,看代码, //#include  #include "kbhook.h"#include "ScanCode.h"#include   int numPendingIrps=0;////ICTOL 以及控制设备的相关变量//#define IOCTL 阅读详情

除了nProtect,国外还有一些反键盘记录工具,比如下面这个还不错:
http://www.anti-keyloggers.com/

是个通用型的,与QQ的nProtect专门用于保护密码不同。
而且反破解做的不错(对我这种破解外行而言,呵呵)。

它的原理我简单的说一下,就是替换键盘类驱动的KeyboardClassServiceCallback,然后把得到的ScanCode传递到用户态,由位于Winlogon.exe的一个线程负责调用NtUserSendInput,将按键消息发给当前焦点窗口。

应该说这款反键盘工具的设计思想是很先进的:
1,选用KeyboardClassServiceCallback的好处是,比键盘过滤驱动更底层,对PS/2或USB键盘通用。
2,用Winlogon转发消息的好处是,自动适应多用户(session)的情况。
3,用NtUserSendInput的好处是,不会被Windows消息钩子挂钩。
4,虽然它没有构建起完全独立的键盘输入通道(这么做太复杂,兼容性不好),但对于没有重建的部分,通过检测钩子的方式弥补。

它的钩子检测功能对于用户态不错,遗憾的是,居然漏掉了中断服务挂钩的检测,实在是个大疏忽。另外,作为通用型保护机制,不可避免的具有一些局限性,比如无法防御用窗口子类化来做键盘记录。

还有一款产品:

http://www.anti-keylogger.net/

 
logkeys:GNULinux环境下的高效键盘记录工具 键盘记录器是一种能够记录用户击键活动的程序或设备。在合法和有益的用途中,键盘记录可以用来进行安全监控、数据分析、用户行为研究等。然而,它也可能被用于恶意目的,如未经授权监控用户的敏感信息。因此,了解键盘记录工具的工作原理和用途对于IT专业人员来说至关重要。在一个中型企业的网络中,通过键盘记录发现了异常活动。一个普通员工的账户突然开始执行大量数据库查询操作,这些操作与员工的日常工作内容不符。响应流程通常包括以下几个步骤:事件检测:监控系统检测到异常行为,生成警报。初步评估。 阅读详情

相关推荐

C#实现的开机键盘记录工具开发详解

Windows一个基于消息驱动的操作系统。应用程序通过接收和处理各种消息(如鼠标点击、键盘输入、窗口重绘等)来响应用户的操作。理解消息机制是掌握钩子技术的前提。一个典型的键盘事件日志应包括以下字段:字段名类型描述TimestampDateTime事件发生时间KeyCodeint键盘键码KeyNamestring键名(如 A、Ctrl)IsKeyDownbool是否按下(true 为按下,false 为释放)

weixin_36235398的博客 854

R0层获取ShadowSSDT函数原始地址实例

本实例由VS2008开发,在提供了一套驱动开发框架的同时,又演示了如何获取Shadow SSDT表函数原始地址的办法。 主要函数:ULONG GetShadowSSDT_Function_OriAddr(ULONG index); 原理说明: 根据特征码搜索导出函数KeAddSystemServiceTable来获取Shadow SSDT基址,以及通过ZwQuerySystemInformation()函数获取win32k.sys基址,然后解析PE定位到Shadow SSDT在win32k.sys的偏移地址,并通过进一步计算来得到Shadow SSDT表函数的原始地址。 这里只测试了三个函数:(460)NtUserMessageCall、(475)NtUserPostMessage和(502)NtUserSendInput,具体使用时可以举一三,网上完整的源代码实例并不太多,希望可以帮到真正有需要的朋友。 系统环境: 在WinXP SP3系统 + 瑞星杀毒软件 打印输出: [ LemonInfo : Loading Shadow SSDT Original Address Driver... ] [ LemonInfo : 创建“设备”值为:0 ] [ LemonInfo : 创建“设备”成功... ] [ LemonInfo : 创建“符号链接”状态值为:0 ] [ LemonInfo : 创建“符号链接”成功... ] [ LemonInfo : 驱动加载成功... ] [ LemonInfo : 派遣函数(DispatchRoutine) IRP 开始... ] [ LemonInfo : 派遣函数(DispatchRoutine) IRP Enter IRP_MJ_DEVICE_CONTROL... ] [ LemonInfo : 获取ShadowSSDT表 (460)NtUserMessageCall 函数的“当前地址”为:0xB83ECFC4,“起源地址”为:0xBF80EE6B ] [ LemonInfo : 获取ShadowSSDT表 (475)NtUserPostMessage 函数的“当前地址”为:0xB83ECFA3,“起源地址”为:0xBF8089B4 ] [ LemonInfo : 获取ShadowSSDT表 (502)NtUserSendInput 函数的“当前地址”为:0xBF8C31E7,“起源地址”为:0xBF8C31E7 ] [ LemonInfo : 派遣函数(DispatchRoutine) IRP_MJ_DEVICE_CONTROL 成功执行... ] [ LemonInfo : 派遣函数(DispatchRoutine) IRP 结束... ] [ LemonInfo : UnLoading Shadow SSDT Original Address Driver... ] [ LemonInfo : 删除“符号链接”成功... ] [ LemonInfo : 删除“设备”成功... ] [ LemonInfo : 驱动卸载成功... ]

基于易语言的QQ键盘记录木马源码与模块分析

htmltable {th, td {th {pre {简介:“键盘记录源码+模块”是一个利用系统钩子技术实现的键盘监听程序,专为捕获用户在QQ聊天软件中的输入行为而设计,尤其针对密码等敏感信息的窃取。该程序采用易语言编写,具备后台隐蔽运行、自动记录输入内容、写入配置文件及结束QQ进程等特性,具有较强的隐蔽性和针对性。压缩包内包含主程序源码、鼠标键盘操作类库及精易模块3.6,展示了从底层事件监控到数据持久化的完整实现流程。

weixin_36487018的博客 1075

Windows内核新手上路2——挂钩shadow SSDT

Windows内核新手上路2——挂钩shadow SSDT          文章核心内容:安全软件窗口保护、安全输入、截屏保护的一些思路。挂钩NtUserFindWindowEx、NtUserGetForegroundWindow、NtUserBuildHwndList、NtUserQueryWindow、NtUserWindowFromPoint、NtUserSetParent、NtUser

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 2019

WINDBG u win32k!NtUserSendInput 出现 Memory access error处理方法()

WINDBG调试出现了这个问题... 请问何解? kd> u win32k!NtUserSendInput win32k!NtUserSendInput: bf8c31e7 ?? ??? ^ Memory access error in 'u win32k!NtUserSendInput' 这个意思是难道是WIN32K没有映射到内存? 解决方法: 1.首先使用 .P

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 5418

游戏保护资料总结

考虑 1.tp,np,QQ对游戏的驱动保护怎么做的 2.360保险箱怎么做的 3.从键盘按键到驱动,然后到应用层的编辑框,按键码怎么传过去的? 比如QQ的编辑框接受,底层键盘钩子修改按键码 io device->总线->ioapic(prt table irq1 哪一个apic和中断号 int   9h 键盘中断处理  例程)->local apic->?? keyc...

研究源码的最底层,只持有正确的仓位 1855

TouchEn nxKey:键盘记录键盘记录解决方案

TouchEn nxKey:键盘记录键盘记录解决方案

寒水馨 · 轻量级技术文档 · hanshuixin.org 1609

PayloadsAllTheThings键盘记录:JavaScript键盘记录Payload

在Web安全测试中,键盘记录(Keylogger)是一种重要的技术手段,用于分析用户在网页上的键盘输入行为。PayloadsAllTheThings项目提供了丰富的JavaScript键盘记录Payload,帮助安全研究人员和渗透测试人员评估Web应用程序的安全性。 本文将深入探讨JavaScript键盘记录的实现原理、常见Payload、防御措施以及实际应用场景。 ## 键盘记录技术原理 ...

gitblog_00435的博客 969

灰鸽子键盘记录源码分析一个中英文键盘记录代码

灰鸽子键盘记录源码分析一个中英文键盘记录代码 2006年11月21日 星期二 下午 3:11 首先是: var LogHook: HHook = 0; HookList: TStringList; 函数: function LogProc(iCode: Integer; wparam, lparam: LongInt): lresult; stdca...

weixin_33966095的博客 648

Lab12-02-03-恶意样本分析-简单的键盘记录程序分析

简单的键盘记录程序分析 **样本来自《恶意样本分析》Lab12-2.exe ** Lab12-03.exe和dump出来得payload.exe是同一个 程序不是很复杂很适合用来练手,对于新手很友好???? 程序的目的是什么 这是一个键盘记录的恶意程序。 程序是如何隐藏自身的 程序创建了一个svchost的进程来运行 恶意代码的payload放在那里 加密保存在资源文件内 程序是如何被保护的 将实际的Payload保存在资源内,通过异或加密保存 字符串是如何把被保护的 字符串在资源文件的payload内,被

LoopherBear的博客 508

如何使用终极键盘记录工具 Keylogger:完整监控指南

Keylogger 是一款开源的键盘记录工具,能够监控计算机上的键盘输入并将数据记录到日志文件中。它体积小巧、配置简单,支持 Windows 和 Linux 系统,适用于家长监控、员工管理和软件测试等多种场景。 ## 核心功能解析:为什么选择这款键盘记录工具? Keylogger 提供了三大核心功能,满足不同用户的监控需求: - **精准窗口监控**:可设置指定窗口标题,只记录目标应用程序的...

gitblog_00541的博客 520

键盘记录c语言程序,C++键盘记录程序代码

本文实例讲述了C++键盘记录程序。分享给大家供大家参考。具体分析如下:主程序如下:就是基于对话框的框架,加个个OnHookKey函数,long CMainDialog::OnHookKey(WPARAM wParam, LPARAM lParam) //处理自定义消息{char szKey[80]={0};GetKeyNameText(lParam, szKey, 80);CString st...

weixin_32093689的博客 866

分析了一下360安全卫士的hook(zt)

分析了一下360安全卫士的hook(zt)2010-6-3 18:36阅读(12) 分析了一下360的HOOK,通过直接hook KiFastCallEntry实现以所有系统调用的过滤。 我分析的版本如下: 主程序版本: 6.0.1.1003 HookPort.sys版本: 1, 0, 0, 1005 HookPort.sys的TimeStamp: 4A8D4AB8 简

lionzl的专栏 3501

简单实现了下SSDT SHADOW HOOK

介绍: SSDT SHADOW HOOK可用于安全软件窗口保护、安全输入、截屏保护等。例如:挂钩NtUserFindWindowEx、NtUserGetForegroundWindow、NtUserBuildHwndList、NtUserQueryWindow、NtUserWindowFromPoint、NtUserSetParent、NtUserPostMessage、NtUserMes...

huobengle 838

东辉主动防御

东辉主动防御软件是一款通过行为分析来识别和防御病毒木马程序的软件。 项目如图: BehaviorMon是主程序,BehaviorMon_driver是驱动操作部分。 效果如图: 分析: DataStruct.h 自定义数据接口:运行模式枚举类型、防御状态类型、被保护注册表信息、被保护文件信息、白名单结构体、保存被hook的n

banketree 6136

基于C#开发的简易自动按键工具——适用于网络游戏自动化操作

要实现精准的键盘模拟,首先必须建立清晰、标准化的键码管理体系。Windows 操作系统通过虚拟键码(Virtual-Key Code)标识每一个物理或逻辑按键,这些值是调用 Win32 API 如或SendInput的核心参数。若直接使用原始数字常量(如0x1B表示Esc),代码可读性差且极易出错。因此,合理封装键码为命名常量或枚举类型,是提升开发效率和维护性的关键步骤。为进一步增强类型安全性与智能提示支持,可以将上述常量转换为 C# 枚举类型。

weixin_35677363的博客 1522
上一篇: Any2Bat.vbs
下一篇: 邪恶的RING0注射SHELLCODE
iiprogram
博客等级 码龄25年 1066粉丝 1515原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值