有这个程序 install-interception.exe ,可以从这里下载:http://www.oblita.com/interception.html
它在到达内核之前拦截任何类型的输入。例如,它允许我区分Windows级别的多个键盘。无论如何,这是一个非常方便的程序,但我不知道它是如何工作的。这是我能找到的关于源代码的全部内容:https://github.com/oblitum/Interception/issues/5
所以我使用了一些我不理解的东西,我想问一下你是否可以指出我如何编写一个如何做同样的c / c ++程序的方向。
修改
我想我不妨描述一下我使用这个程序的原因。 使用这个输入拦截器,我编写了一个程序,允许我执行以下操作: 我有一个主键盘和一个宏键盘。主键盘工作正常,但宏键盘有一些额外的功能。 通过按下宏键盘上的按钮可以激活这些功能,按钮是由程序启动时加载的XML文件决定的。这些是功能:
基本上我用截取API编写了这个非常方便的程序,但我不知道输入在传递给API之前是如何截获的,我想学习如何,所以我可以更完整地理解我的程序。 / p>
答案 0 :(得分:-1)
我相信我找到了答案的一部分:
有用户模式和内核模式。我想我需要一个在内核模式下运行的程序。
https://msdn.microsoft.com/en-us/library/windows/hardware/ff554836(v=vs.85).aspx
我想我会理解 install-interception.exe 是如何通过阅读&编程的。从以下3个教程中学习:
http://www.adlice.com/kernelmode-rootkits-part-1-ssdt-hooks/
http://www.adlice.com/kernelmode-rootkits-part-2-irp-hooks/
http://www.adlice.com/kernelmode-rootkits-part-3-kernel-filters/
我有很多读书要做:O