对 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 触摸板驱动程序进行逆向工程的最佳工具?的主要内容,如果未能解决你的问题,请参考以下文章