我有一个 PS/2 触摸板,我想为它编写一个驱动程序(我只是一个网络人,所以这对我来说是一个陌生的领域)。触摸板带有一个 Windows XP 驱动程序,该驱动程序显然会发送消息以启用/禁用点击点击。我试图找出它正在发送什么消息,但我不知道如何开始。像“Syser Debugger”这样的软件可以工作吗?我想拦截发送到 PS/2 总线的传出消息。
3 回答
如果您想找出正在发送的“消息”,IDA Pro 对您没有多大用处。您应该意识到这对大多数 Web 开发人员来说是一个很大的进步,但您已经知道了吗?
我会首先决定您是否真的需要在驱动程序级别工作,通常这是内核级别。用户模式级别可能是您首先要查看的位置。使用诸如 WinSpy 或其他 Windows 调试工具之类的工具来找出驱动程序软件传递的消息以及控制面板中的鼠标配置小程序。您可以使用称为SendMessage()的 Windows API 函数将消息从用户模式发送到应用程序。
设备驱动程序开发的第一站应该是Windows DDK 文档和OSR Online。
我建议阅读http://www.synaptics.com/decaf/utilities/ACF126.pdf此处提供的突触触摸板规格(笔记本上安装的大多数触摸板都是突触的) 我相信在第 18 页上,您会找到您想要的功能正在找。至少你会知道会发生什么。
因此,触摸板驱动程序很可能会将来自用户模式的命令“转换”为这个 PS/2 命令。
我不知道触摸板 PS/2 驱动程序的细节,但我看到用户模式面板与驱动程序通信的两种主要方式: - 更新注册表中的某些键(这实际上很常见) - 驱动程序提供了一个用户模式应用程序打开并写入特定命令的备用“通道”
在设置/重置功能时,您可能想尝试使用 sysinternals 的进程监视器来记录注册表活动。至于选项 2,您可能想尝试使用 OSR 的 IRP 跟踪器,看看面板和驱动程序之间是否有任何特定的通信(以来回的形式或 IRP 的形式)。在这种情况下,有点需要内核编程知识。Windows 内核调试器也可能有助于查看 PS/2 驱动程序是否有一些备用通道。
看看IDA Pro - 交互式反汇编程序。这是一个了不起的反汇编程序。
如果你想调试,而不仅仅是逆向工程,试试 SmidgeonSoft 的 PEBrowse Professional Interactive