我正在寻找对我这里的打印机的 Windows 驱动程序进行逆向工程。我发现了一些关于 USB 嗅探的信息,但我认为 Snoopy 不能在 Windows 7 上运行。我知道驱动程序在我电脑上的某个地方,但它的位置并不明显。有人可以概述我需要采取的步骤来实现这一目标吗?我以前从来没有这样做过😐。网络上有很多,但对于要往哪个方向走有点混乱。我正在使用 python 3
逆向工程 USB 外设驱动程序
嗯,你的问题有点宽泛,但让我们一一回答。现在通常(但并非总是)打印机的驱动程序是用户模式驱动程序 (UMDF),这意味着您正在寻找 DLL。如果不是这种情况,您将寻找某种 .sys 文件。
多年来,Microsoft 提出了许多“简化”的驱动程序模型。其中一些在用户模式下运行,一些在内核模式下运行。如果这是现代设备并且供应商已更新所有内容,他们将使用用户模式驱动程序。
为了让您开始,您需要首先找出负责您的打印机的驱动程序。假设您确实在处理 USB 打印机,您应该可以通过USBDeView看到它,这也可以帮助您识别驱动程序名称。或者尝试更通用的DevManView。
如果您使用的是最新版本的 Windows ,则无法查看打印机属性并使用“共享”选项卡。在那里,您至少可以看到已安装驱动程序的类型。我的一台打印机的示例:
有了这些信息,我们就可以查看文件夹C:\Windows\System32\spool\drivers
( %SystemRoot%\System32\spool\drivers
) 并找到实际的驱动程序(还要检查prtprocs
子文件夹而不是drivers
)。
此外,您可以HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers
使用 Windows 内置的注册表编辑器查看有关驱动程序的详细信息。特别是在与相关打印机对应的子项中,您应该找到一个名为Print Processor
(类型字符串)的值,其中包含打印处理器的名称。在我的情况下,ssa7mPC
这反过来可以追溯到 DLL C:\Windows\System32\spool\prtprocs\x64\ssa7mpc.dll
。
从那时起,您的问题根本不清楚您想要实现什么。也就是说,您是想拦截某些东西,还是想对有线协议进行逆向工程,还是只关心能够与打印机通话等等……(因此,在您澄清之前,我也无法提供更多详细信息)。
由于您也没有提供有关打印机型号的信息,因此除了我刚刚提供的内容之外,很难提供任何有意义的细节。