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

时间:2020-03-05 18:49:44  来源:igfitidea点击:

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

解决方案

回答

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

如果要调试,而不仅仅是反向工程师,请尝试使用SmidgeonSoft提供的PEBrowse Professional Interactive

回答

如果我们想了解正在发送的"消息",则IDA Pro不会给我们太大用。我们应该意识到这对大多数Web开发人员来说是一个很大的进步,但是我们已经知道吗?

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

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

回答

我建议阅读http://www.synaptics.com/decaf/utilities/ACF126.pdf上的Synaptics触摸板规格(笔记本电脑上安装的大多数触摸板都是Synaptics的)。
我相信我们会在第18页上找到所需的功能。至少我们会知道会发生什么。

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

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

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