拦截来自OS的输入

时间:2010-12-22 13:49:13

标签: c operating-system keylogger

我想在下学期之前学习一个例子,并想尝试一些与操作系统一起工作的东西。

C程序如何拦截来自OS的输入。我能想到的唯一例子是键盘记录。

如何对C程序进行编程以深入挖掘操作系统?

这有意义吗?

2 个答案:

答案 0 :(得分:2)

基本上取决于操作系统,您需要“挂钩”操作系统的事件机制。操作系统中发生了不同的事件,按键操作就像鼠标点击一样。可以挂钩这些事件并提供OS在事件发生时调用的函数。

E.g。适用于Windows的see

答案 1 :(得分:2)

在Linux上,您可以观看所有键盘的设备节点并记录收到的事件。

/dev/input/event*节点提供通用接口 - 您必须观看与鼠标或键盘对应的任何节点。您需要evdev内核模块才能使用。

/usr/include/linux/input.h头文件包含您需要了解的有关编程接口的大部分内容。根据我的经验,它非常简单易用。

请记住,某些X-server驱动程序会获取其设备节点并阻止所有其他应用程序获取事件,因此您可能必须更改其选项或使用基于X的界面。

我认为这可以在没有编写内核模块的情况下在Linux上实现。

编辑:

您应该意识到每个操作系统都有自己的输入子系统接口。没有跨平台的方法来做到这一点。你究竟想做什么?