查看: 20194|回复: 3
收起左侧

[原创工具] 键盘输入故障诊断工具

[复制链接]
图钉鱼
发表于 2025-9-14 11:03:42 | 显示全部楼层 |阅读模式
本帖最后由 图钉鱼 于 2025-12-3 01:17 编辑

原本是为了检查自家笔记本键盘,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”目录;如仍失败,请检查权限或以管理员身份运行。
问:是否支持命令行参数?
答:当前版本为交互式控制台应用,未提供命令行参数开关。

屏幕截图 2025-09-14 102505.png 2025-09-14 102756.png 屏幕截图 2025-09-14 105941.png


版本更新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(需下载专用版本)。

已知问题:启动字符画不对齐,老大难问题,总有一行对不上,已经放弃对齐的想法。没有强迫症

屏幕截图 2025-12-03 000749.png

V1.1主要增强了对抗性检测技术,在受限权限内尽可能检测多种原因的键位异常,包括简单的反作弊,安全软件拦截,外{过}{滤}挂等的检测,但这并不能说可以完全检测出来,受限权限有其能力上限,对抗领域的技术更新也非常频繁。
对于大多数用户使用原始版本足以满足需求。




KeyboardDiagnosticTool.7z

101.8 KB, 下载次数: 1475

KeyboardDiagnosticTool-V1.1.7z

125.82 KB, 下载次数: 2

KeyboardDiagnosticTool-V1.1(win7).7z

125.79 KB, 下载次数: 2

图钉鱼
 楼主| 发表于 2025-9-17 18:14:20 来自手机 | 显示全部楼层
本帖最后由 图钉鱼 于 2025-12-3 00:43 编辑

原始版本联系解除了360,赛门铁克的误杀,拉白。迈克菲反馈麻烦不管。
V1.1版本在源码阶段有意识规避了查杀点,主流杀软不报毒,无需反馈
屏幕截图_3-12-2025_0413_opentip.kaspersky.com.jpeg

屏幕截图_3-12-2025_04230_www.virustotal.com.jpeg
OflyingO
发表于 2025-11-27 10:17:20 | 显示全部楼层
有这个就方便,谢谢楼主
100225220
发表于 2025-11-30 22:40:20 | 显示全部楼层
谢谢分享 有时能用得着
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-12-24 08:36 , Processed in 0.112854 second(s), 4 queries , Redis On.

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表