gpt4 book ai didi

c++ - 如何编写在输入到达内核之前拦截输入的程序?

转载 作者:太空宇宙 更新时间:2023-11-04 04:59:46 25 4
gpt4 key购买 nike

有这个程序install-interception.exe,可以从这里下载:http://www.oblita.com/interception.html

它在到达内核之前拦截任何类型的输入。例如,它允许我在 Windows 级别上区分多个键盘。无论如何,这是一个非常方便的程序,但我不知道它是如何工作的。这是我能找到的关于源代码的所有信息:https://github.com/oblitum/Interception/issues/5

所以我正在使用一些我不明白的东西,所以我想问问你是否可以指出如何编写一个 c/c++ 程序的方向。

编辑:

我想我不妨描述一下我使用这个程序的目的。使用这个输入拦截器,我编写了一个允许我执行以下操作的程序:我有一个主键盘和一个宏键盘。主键盘工作正常,但宏键盘有一些额外的功能。这些功能是通过按下宏键盘上的一个按钮来激活的,什么按钮做什么由程序启动时加载的 XML 文件决定。这些是功能:

  • 插入文字
  • 启用/禁用键盘输入捕获+将输入写入文件
  • 复制到剪贴板 1/2/3 等
  • 从剪贴板粘贴 1/2/3 等
  • 运行程序(例如,启动 chrome,运行批处理文件)
  • 找到程序 X/Y/Z 的下一个实例,并将其显示在屏幕上。例如:找到“Visual Studio”的下一个实例并将其放在前台屏幕上。基本上是 Alt-Tab 的替代品。
  • 在宏键盘按钮上贴上贴纸,这样我就可以轻松识别每个按钮的功能 :D :D

基本上我用拦截API写了这个非常方便的程序,但是我不知道输入在传递给API之前是如何被拦截的,我想学习如何,这样我就可以更完整地理解我的程序。

最佳答案

我相信我已经找到了部分答案:

有用户模式和内核模式。我想我需要一个在内核模式下运行的程序。

https://msdn.microsoft.com/en-us/library/windows/hardware/ff554836(v=vs.85).aspx

我想我会通过阅读和学习以下 3 个教程来理解 install-interception.exe 是如何编程的:

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

关于c++ - 如何编写在输入到达内核之前拦截输入的程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31224761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com