有没有办法嗅探出(.sys)系统文件驱动程序的驱动命令?
答案1
您所说的“驾驶员命令”是什么意思,以及您打算如何将它们发送给 FSD?
您在这里试图实现的“更高层次”目标是什么?您关注的是哪个 FSD?
正如 duDE 提供的链接(Windows 驱动程序工具包文档中的 FSD 部分)中列举的那样,所有 FSD 都必须实现一组必需的 I/O 函数和设备 IO 控制代码(称为“文件系统控制代码”,因为它们都以 FSCTL 开头)。某些 FSD 可能会实现唯一的 FSCTL 或 IOCTL,以允许请求特定于 FSD 的函数。
但是,据我所知,您无法从用户模式将其中大部分发送到 FSD。它们是由系统中的其他组件(如卷管理器)生成的。但是,另一个内核驱动程序可以发送它们。
WinDbg 可以轻松告诉你哪些主要功能代码已实现(只需检查 FSD 的驱动程序对象),但不能告诉你次要功能代码或 FSCTL - 获取这些代码的唯一方法是通过反汇编进行探索。然后,要了解它们实际上做需要很多洞穴探险。我应该警告你,FSD 是操作系统中最大、最复杂的驱动程序之一……除了图形驱动程序和 acpi.sys。