如何截获硬盘/文件的读写操作?

pigzoo 2000-08-26 05:47:00
各位高手,如何截获Windows98/NT的硬盘/文件的读写操作?
...全文
259 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dchengwang 2001-10-10
  • 打赏
  • 举报
回复
To: tchaikov
能给我发一份吗,我也想知道。email:dchengwang@sina.com

sunx 2000-08-28
  • 打赏
  • 举报
回复
to: tchaikov
我前面所说的,外部接口属性一致,并不是指设备名字,指保持dispatch于目标相同,以保持对
所有 irp处理的兼容

你找到的资料能否也发我一份,我想知道我的分析对不对

谢谢
xielm 2000-08-28
  • 打赏
  • 举报
回复
To: tchaikov
一段时间没来,惊喜发现这里多了一些DDK高手。
请也给我一份,我也想学学DDK.谢谢。email: sam_sha@21cn.com
DragonCheng 2000-08-28
  • 打赏
  • 举报
回复
To: tchaikov
能给我发一份吗,我也想知道。email:copymail@263.net
tchaikov 2000-08-27
  • 打赏
  • 举报
回复
to: pigzoo
今天在查资料中无意之中找到了你要的东西,因为网络慢,明天给你mail过去,请查收一下。
tchaikov 2000-08-27
  • 打赏
  • 举报
回复
和sunx讨论:

用IoGetDeviceObjectPointer需要设备名PHYSICALDRIVE?,但为了NT对硬盘的操作不受影响,新建的驱动的外显设备名也应该是PHYSICALDRIVE?,这里是否会有冲突,如果有的话,NT认
哪一个,我不清楚处理镜像容错的filter driver是如何处理这个问题的,是不是NT本身自己修改了下层的设备名。
另外,仅仅截获IRP可能很难理解其数据的含义,尤其是根本不能截获对文件的操作。

但针对pigzoo的问题,的确也想不出个其他招来。
sunx 2000-08-26
  • 打赏
  • 举报
回复
监测很容易做到,但是既然pigzoo问的是截获
这做起来是很复杂的
98/nt 的文件系统实现原理上是类似的,他们都是分层驱动系统
先IoGetDeviceObjectPointer取到Device
然后 IoAttachDevice把自己挂到目标 Device 上方,要求自己和目标所有外部接口属性都相同
这样 自己的Device就能截获到所有发到 目标Device的 IRP, 你的处理代码就在这里处理IRP,处理完后记得 IoCallDriver把 IRP传给 目标
基本原理就是这样的,但是做起来不是很简单,要求你有 DDK经验
另外, 在 NT中 "\\\\.\\PHYSICALDRIVE0" 表示 C盘




Ideal 2000-08-26
  • 打赏
  • 举报
回复
文件监测源程序可到 http://www.vchelp.net/ 上去下载;至于硬盘的,我也不知道到何处有。如果找到了,请也发一份给我。

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧