原本是为了检查自家条记本键盘,Y键故障而写的,做了些优化后发布。
运行环境
不支持32位体系运行;
操作体系:Windows 11 x64(兼容 Windows 10 x64),
Windows 7 x64请下载win7专用版本。
编译器:Visual Studio 2022,C++17。
面向 Windows 的专业键盘输入监控与诊断工具,支持全键盘实时监控、拦截检测、进程行为分析与报告导出。
尺度用户即可运行;对部分“深入检测”驱动程序吞键等能力,建议以管理员权限运行以获得更高覆盖率。
功能
全键盘实时监控与统计:启动监控跋文载按键事件与统计数据,并支持实时显示。
快速/深度诊断:一键执行常见问题快检或更全面的深度诊断。
拦截问题检测:检测潜在的按键拦截或键盘钩子异常。
进程行为分析与模块检查:用于发现可疑进程特征与模块署名信息(具备权限时覆盖更全面)。
诊断报告导出:天生 UTF-8 BOM 编码的文本报告,优先保存至./reports,失败时自动回退至“用户文档/KeyboardDiagnosticTool/reports”。
启动:双击或从命令行运行 KeyboardDiagnosticTool.exe。
首次提示:若未以管理员运行,程序会提示风险并询问是否继续(y/n)。按 y 继续,其他则退出。
然后按“1”开启监控后再执行其他功能;
默认权限:不会主动触发 UAC 提权提示,可直接以尺度用户运行。
尺度用户能力:
获取绝大多数普通进程的映像路径与名称:
键盘钩子与实时统计、快速/深度诊断(
对权限不足的对象会降级处理惩罚,不中断流程)。
管理员权限:
对体系/高完整性/受保护进程的模块罗列、署名校验等“深入检测”能力在尺度用户下大概受限。若需全面覆盖,建议以
管理员身份运行(右键“以管理员身份运行”)。
报告内容:由引擎天生的诊断文本,包含进程行为分析、拦截检测结论、统计数据等,编码为 UTF-8 BOM。
保存路径:优先:当前工作目录 ./reports,回退:用户文档/KeyboardDiagnosticTool/reports(当工作目录不可写时)
常见问题解答(FAQ)
问:非管理员运行会影响检测效果吗?
答:底子监控、按键统计、绝大多数进程信息获取不受影响;极少数高完整性或保护进程的深入信息在尺度用户下大概不可用。若需要全覆盖深度检测,请以管理员身份运行。
问:报告未天生或路径无权限怎么办?
答:程序会自动回退到“用户文档/KeyboardDiagnosticTool/reports”目录;如仍失败,请检查权限或以管理员身份运行。
问:是否支持命令行参数?
答:当前版本为交互式控制台应用,未提供命令行参数开关。


版本更新V1.1(管理员权限运行,本工具不参加自主提权功能)
修复:
1.DetectProcessHooks 循环守卫过小,导致检测被截断 ;
2.WaitForNextKey 游离线程捕捉 this 指针,存在析构竞争风险;
3.GetProcessModules 使用固定缓冲区,大概导致模块列表截断 ;
4.扁平化状态机,低级键盘钩子处理惩罚逻辑不严谨;
5.阻塞等候导致钩子消息无法处理惩罚,引起卡死或钩子失效;
6.KeyboardHook 状态管理不严谨及接口暴露风险;
7.Initialize 存在竞态条件;
8.键盘设备罗列遗漏 PS/2 设备;
增长:
1. PnP 设备树分析: 遍历设备节点树,辨认隐藏在驱动栈中的非法服务。
2. 驱动完整性校验: 验证 kbdclass.sys, i8042prt.sys等关键驱动文件是否被篡改或替换。
3. API 完整性检查: 检测 User32.dll关键函数 (SetWindowsHookEx, GetAsyncKeyState等) 是否被 Inline Hook 或 IAT Hook。
4. Raw Input 罗列: 绕过传统 API,直接罗列底层原始输入设备,发现被隐藏的硬件。
5. 主动模仿测试: 通过注入合成按键事件并监控其在体系各层(LL Hook, Raw Input)的到达情况,精准辨认内核级/驱动级拦截。
6. 支持 PS/2 设备检测(如条记本内置键盘)。
7.
支持Windows 7 x64(需下载专用版本)。
已知问题:启动字符画不对齐,老大难问题,总有一行对不上,已经放弃对齐的想法。没有强迫症
V1.1重要增强了对抗性检测技能,在受限权限内尽大概检测多种原因的键位异常,包括简单的反作弊,安全软件拦截,外{过}{滤}挂等的检测,但这并不能说可以完全检测出来,受限权限有其能力上限,对抗范畴的技能更新也非常频仍。
对于大多数用户使用原始版本足以满足需求。
KeyboardDiagnosticTool.7zKeyboardDiagnosticTool-V1.1.7zKeyboardDiagnosticTool-V1.1(win7).7z