mbrprot..sys驱动建立了一个假atapi的DriverObject和一个假DeviceObject,并以此对传过来的IRP进行处理,由于不得破坏mbrpto.sys自有流程(包括不得改写mbrprot.sys的代码,不得HOOK mbrprot.sys可能调用的系统函数等);俺想出两种解决办法。
1、由于已说明系统有且仅有一个IDE硬盘,必须是ATA接口,因此可以得到\\Device\\Ide\\IdePort0 Device对象后直接向atapi驱动发IRP。
2、直接IO硬盘之。
3.利用SCSI_PASS_THROUGH_DIRECT写进去。
4.直接对DR0发送IRP,由于对DR0发送IRP位于的磁盘保护驱动的上端,因此会被磁盘保护驱动检查,但由于磁盘保护驱动检查的是srb->QueueSortKey,所以可以通过修改srb->QueueSortKey来绕过磁盘保护驱动,这与直接向atapi驱动发送IRP的方法不同,不是得炒冷饭。
- 标 题:发发俺的第一题解决方案
- 作 者:zjjmjtoot
- 时 间:2008-12-19 13:55:04
- 链 接:http://bbs.pediy.com/showthread.php?t=78990