molige
驱动牛犊
驱动牛犊
  • 注册日期2010-12-02
  • 最后登录2011-08-15
  • 粉丝0
  • 关注1
  • 积分66分
  • 威望171点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2173回复:4

调式 寒江的实例代码捕获irp问题

楼主#
更多 发布于:2011-02-24 09:44
小弟最近尝试调式 寒江的实例代码,有几个地方很疑惑,希望大家帮帮忙:
1.点击右键时候 能够一次性捕获到 DriverObject->MajorFunction[IRP_MJ_CREATE]、DriverObject-

>MajorFunction[IRP_MJ_CLOSE] 、 DriverObject->MajorFunction[IRP_MJ_READ]、 DriverObject-

>MajorFunction[IRP_MJ_WRITE]  ,并且判断进程时候不是notepad.exe。
2.我想先用notepad.exe打开一个1.txt文件,好吧,现在有notepad.exe进程。但还是一次性捕获到

MajorFunction[IRP_MJ_CREATE]、[IRP_MJ_CLOSE] 、 [IRP_MJ_READ]、 [IRP_MJ_WRITE]  。最头疼的是

根据getcurrentirp(Irp)->PIO_STACK_LOCATION->FileName.Buffer=null; 个人猜测是在点击打开文件还

没选路径的时候irp就来了 ,没选择文件,所以为空。
3.打开文件后,无论是写、保存、关闭,都没irp来了
 希望大家能够指点下小弟问题出在哪里。
wanghui219
禁止发言
禁止发言
  • 注册日期2007-08-28
  • 最后登录2019-07-29
  • 粉丝4
  • 关注3
  • 积分101166分
  • 威望505351点
  • 贡献值0点
  • 好评度137点
  • 原创分0分
  • 专家分4分
  • 社区居民
沙发#
发布于:2011-02-24 13:30
用户被禁言,该主题自动屏蔽!
molige
驱动牛犊
驱动牛犊
  • 注册日期2010-12-02
  • 最后登录2011-08-15
  • 粉丝0
  • 关注1
  • 积分66分
  • 威望171点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2011-03-01 14:46
回 1楼(wanghui219) 的帖子
先謝謝你的幫助。
对于问题2,还是不明白。我是在IRP_MJ_READ 下调试的irp,FileName.Buffer=null,
PIO_STACK_LOCATION PIo_stack_location = IoGetCurrentIrpStackLocation(Irp);
PSFILTER_DEVICE_EXTENSION DevExt = (PSFILTER_DEVICE_EXTENSION) DeviceObject->DeviceExtension;
PFILE_OBJECT file = PIo_stack_location->FileObject;

这几天看前辈们帖子,问题3是刷缓存吗?
molige
驱动牛犊
驱动牛犊
  • 注册日期2010-12-02
  • 最后登录2011-08-15
  • 粉丝0
  • 关注1
  • 积分66分
  • 威望171点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2011-03-01 14:53
脑残了,刚看到说PFILE_OBJECT 应该在IRP_MJ_CREATE下捕获.........
fatepro
驱动牛犊
驱动牛犊
  • 注册日期2011-05-12
  • 最后登录2011-09-07
  • 粉丝0
  • 关注0
  • 积分68分
  • 威望681点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2011-05-14 22:36
学习了
游客

返回顶部