阅读:2890回复:7
deamon tools v3.47 - d347prt.sys 没有调用Zw**File函数??
我在察看d347prt.sys时发现其没有调用任何操作文件的kernel api,那么它是怎么读写文件的呢,还有我在分析其sys文件时,发现
在处理SRB_FUNCTION_EXECUTE_SCSI时,直接call d347bus.sys中的函数(函数地址保存在d347prt.sys中的变量中,何时被赋值不清楚), 有大虾研究过这个吗 |
|
沙发#
发布于:2005-01-07 22:05
应该是有调用,daemon-tools 现在的版本把大部分的处理都写入d347bus.sys中,采用callback回掉函数构件成一个自己定义的miniport 结构.在d347bus.sys中Zw**file函数的导入表是动态生成的,故静态反汇编的时候不能看见其名称.
比如Call dowrd_286a8这样实际上是(NTREADFILE()) |
|
|
板凳#
发布于:2005-01-07 23:20
好像call dword_xxxx的时候是工作在DISPATCH_LEVEL上的(记不清楚了,周一再反汇编看看),ntreadfile可以工作在该级别上吗?
|
|
地板#
发布于:2005-01-08 00:50
Daemon-tools 新版本好象是采用的内核内存影象文件的方式影射文件的。因此找不到zwreadfile
|
|
|
地下室#
发布于:2005-01-08 10:43
两位老大功力深厚,能不能顺便看看daemon-tools是怎么模拟*.mds镜像文件后面的DPM信息的。小弟也反汇编了好几个deamon的版本的sys,已及酒精的sys,但苦于功力浅薄没找到有用的信息。确实发现他们许多操作都在buf.sys中进行了,有ZwCreate,ZwClose,但未发现read,原来是liuyan1所说的情况。
关于DPM,liuyan1老兄研究的怎么样了,前几天我调试在读取镜像时保存每扇区的读取时间,发现不是0,就是15,16,30,32ms,并且将这些数据保存到文件,在驱动中模拟,结果还是失败,一想也是肯定没这么简单。关于DPM,酒精论坛里有置顶一文章讲的比较详细,好像提到bildread也可读出扇区延时信息。观察游戏对光盘的读取时仅仅读取1000个左右的扇区,而且还是通过文件系统,不知他是怎么确定的读出这些延时的。另外是不是这些正版盘用久了就变成盗版盘了? |
|
5楼#
发布于:2005-01-08 17:59
看看
|
|
6楼#
发布于:2005-01-19 20:16
两位老大功力深厚,能不能顺便看看daemon-tools是怎么模拟*.mds镜像文件后面的DPM信息的。 因为以前2家合作嘛,当然可以直接用对方的源代码啦 |
|
|
7楼#
发布于:2005-01-25 12:20
[quote]两位老大功力深厚,能不能顺便看看daemon-tools是怎么模拟*.mds镜像文件后面的DPM信息的。 因为以前2家合作嘛,当然可以直接用对方的源代码啦 [/quote] ranyyang2000老大,我一直都以为daemon 跟alcohol是一家人呢。 原来是合作关系??? |
|
|