wangzengzhi
驱动牛犊
驱动牛犊
  • 注册日期2005-04-15
  • 最后登录2005-05-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1261回复:6

紧急求助,修改filemon出现了问题

楼主#
更多 发布于:2005-04-29 21:50
我想将写操作写的数据截获下来,写到另外一个文件中,所以修改了
FilemonHookRoutine,
在case IRP_MJ_WRITE:那加了以下代码
NTSTATUS status;
OBJECT_ATTRIBUTES oa;
IO_STATUS_BLOCK iostatus;
HANDLE hfile;          //  the output from this process
UNICODE_STRING pathname;  //  you\'ve been given this
PVOID buffer;
ULONG bufsize;

RtlInitUnicodeString(&pathname, L\"\\\\??\\\\C:\\\\log.txt\");
InitializeObjectAttributes(&oa, &pathname,OBJ_CASE_INSENSITIVE, NULL, NULL);

status = ZwCreateFile(&hfile,GENERIC_WRITE,&oa,&iostatus,NULL,
FILE_ATTRIBUTE_NORMAL,
0,
FILE_OVERWRITE_IF,
FILE_SYNCHRONOUS_IO_NONALERT,
NULL,
0);

buffer = \"wwwwwwwwwwww\";
bufsize = 12;

status = ZwWriteFile(hfile, NULL, NULL, NULL, &iostatus, buffer, bufsize, NULL, NULL);

ZwClose(hfile);
以下是源代码
if( FilterDef.logwrites ) {
hookCompletion = LogRecord( TRUE, &seqNum, &dateTime, NULL,
\"%s\\tIRP_MJ_WRITE%c\\t%s\\tOffset: %d Length: %d\",
name,
(Irp->Flags & IRP_PAGING_IO) ||
(Irp->Flags & IRP_SYNCHRONOUS_PAGING_IO) ? \'*\' : \' \',
fullPathName,
currentIrpStack->Parameters.Write.ByteOffset.LowPart,
currentIrpStack->Parameters.Write.Length );
}
}
            break;

同样的代码,在xp+sp2的环境下根本就不生成log.txt,在windows 2003下生成文件了,但是内容写不进去,且关掉程序后就死机.请高手指教一下到底为什么?困惑了很久.
hongsing
驱动小牛
驱动小牛
  • 注册日期2004-05-22
  • 最后登录2012-04-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望8点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-30 12:31
不是重入了吧:)
wangzengzhi
驱动牛犊
驱动牛犊
  • 注册日期2005-04-15
  • 最后登录2005-05-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-30 17:41
重入是什么意思啊?
不好意思,我是刚入门的,能不能请你说清楚点啊?谢谢了
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地板#
发布于:2005-05-01 09:16
你调用ZwWriteFile的时候,又会回到原来的地方,反复进去会有问题的.....
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
wangzengzhi
驱动牛犊
驱动牛犊
  • 注册日期2005-04-15
  • 最后登录2005-05-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-05-01 19:55
好象有道理哦,谢谢。
那我应该怎么做呢?
我就是想把写的数据截获下来并保存。
jackxin
驱动牛犊
驱动牛犊
  • 注册日期2002-07-29
  • 最后登录2009-06-16
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分1分
  • 专家分0分
5楼#
发布于:2005-06-30 03:53
消除DEADLOCK的办法可以是在FILE IRP上加自己的标志,写FILE时候再判断一下就OK了;
yunyanrong
驱动小牛
驱动小牛
  • 注册日期2003-04-18
  • 最后登录2013-03-02
  • 粉丝0
  • 关注0
  • 积分1040分
  • 威望457点
  • 贡献值1点
  • 好评度90点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-06-30 11:40
紧急求助,修改filemon出现了问题:


你修改的FILEMON稳定么?
我这里总兰屏啊。

在装了SOFTICE的系统上,表现还OK。
游客

返回顶部