对 WinXP PS/2 触摸板驱动程序进行逆向工程的最佳工具?

Posted

技术标签:

【中文标题】对 WinXP PS/2 触摸板驱动程序进行逆向工程的最佳工具?【英文标题】:best tool to reverse-engineer a WinXP PS/2 touchpad driver? 【发布时间】:2010-09-08 05:42:44 【问题描述】:

我有一个 PS/2 触摸板,我想为它编写一个驱动程序(我只是一个网络人,所以这对我来说是陌生的领域)。触摸板带有一个 Windows XP 驱动程序,该驱动程序显然会发送消息以启用/禁用点击点击。我试图找出它正在发送什么消息,但我不知道如何开始。像“Syser Debugger”这样的软件可以工作吗?我想拦截发送到 PS/2 总线的传出消息。

【问题讨论】:

我把它留在这里可能并不酷,因为它只是间接相关,但其他阅读本文的人可能会发现这个关于逆向工程 USB 设备的谈话很有趣:youtube.com/watch?v=jMf55KVDPaE 【参考方案1】:

如果您想找出正在发送的“消息”,IDA Pro 对您没有多大用处。您应该意识到这对于大多数 Web 开发人员来说是一个很大的进步,但您已经知道了吗?

我会首先决定您是否真的需要在驱动程序级别工作,通常这是内核级别。用户模式级别可能是您首先要查看的位置。使用诸如 WinSpy 或其他 Windows 调试工具之类的工具来找出您的驱动程序软件传递的 messages 以及控制面板中的鼠标配置小程序。您可以使用名为 SendMessage() 的 Windows API 函数将消息从用户模式发送到应用程序。

您开发设备驱动程序的第一站应该是Windows DDK docs 和OSR Online。

【讨论】:

这并不像在这种情况下看起来那样相当,因为我已经有了与我的触摸板配合使用的驱动程序的源代码。我只需要修改它以告诉垫禁用似乎在垫本身中检测到的“点击点击”。【参考方案2】:

我建议阅读此处http://www.synaptics.com/decaf/utilities/ACF126.pdf 提供的 synaptics 触摸板规格(笔记本上安装的大多数触摸板都是 synaptics 的) 我相信您会在第 18 页找到您正在寻找的功能。至少你会知道会发生什么。

因此,触摸板驱动程序很可能会将来自用户模式的命令“转换”为此 PS/2 命令。

我不知道触摸板 PS/2 驱动程序的细节,但我看到用户模式面板与驱动程序通信的两种主要方式: - 更新注册表中的一些键(这实际上很常见) - 驱动程序提供了一个备用“通道”,用户模式应用程序可以打开该通道并将特定命令写入

在设置/重置功能时,您可能想尝试使用 sysinternals 的进程监视器来记录注册表活动。 至于选项 2,您可能想尝试使用 OSR 的 IRP 跟踪器,看看面板和驱动程序之间是否有任何特定的通信(以来回的形式或 IRP 的形式)。在这种情况下,有点需要内核编程知识。 Windows 内核调试器也可能有助于查看 PS/2 驱动程序是否有一些备用通道。

【讨论】:

【参考方案3】:

看看IDA Pro - 交互式反汇编程序。这是一个了不起的反汇编程序。

如果您想调试,而不仅仅是逆向工程,请尝试来自SmidgeonSoft 的 PEBrowse Professional Interactive

【讨论】:

以上是关于对 WinXP PS/2 触摸板驱动程序进行逆向工程的最佳工具?的主要内容,如果未能解决你的问题,请参考以下文章

acer电脑鼠标键盘触摸板没反应?

苹果MacBook笔记本电脑的触摸板使用技巧

笔记本电脑触摸板的使用技巧

win10两根手指单击触摸板的手势不管用

win10笔记本电脑触摸板的使用技巧 win10笔记本电脑触摸板的使用技巧介绍

使用兼容电源造成苹果mac触摸板呆滞的原因?