求教SSDT HOOK实现文件监控~

VirtualRookit 2012-03-21 03:15:26
为了描述详细,内容较长~_~
小弟想要实现一个监控文件内容的程序,本来是想用文件过滤驱动实现,但考虑到以前没接触文件过滤驱动,而文件过滤系统对小弟来说又相当复杂,急切间实现不了。所以打算用SSDT HOOK ZwWriteFile来实现文件内容监控。
程序流程:利用HookZwWriteFile来检测ZwWriteFile里的缓冲区有没有敏感字符。经测试发现文本文件(*.txt)监控正常(应用层保存*.txt时,有敏感字符全部会被内核的HookZwWriteFile捕捉),而Office2003的WORD文件*.doc与EXCEL文件*.xls也可被正常捕捉,只是office文件操作被HookZwWriteFile捕捉时都是短文件名(*.txt被捕捉是长文件名)。但是、但是PPT(*.ppt)有敏感字符一律不会被HookZwWriteFile捕捉,小弟及为不解,现在问题总结如下:(只HOOK了 ZwWriteFile一个函数)

1.*.txt,*.doc,*.xls的内容均会被HookZwWriteFile过滤到,但*.ppt的内容却不会被HookZwWriteFile过滤到,为什么?(俺用十六进制工具打开*.ppt发现*.ppt里的确有本该被过滤到的字符。是否*.ppt保存时不调用内核的NtWriteFile函数而是调用了其它函数,小弟只知内核层写文件用NtWriteFile函数,是否还有其它的?)


2.*.txt被HookZwWriteFile过滤到时,路径与文件名正常,而像*.doc,*.xls则路径正常,但文件名却好像是短名eg:(\Documents and Settings\Administrator\桌面\~WRD0001.tmp)其实路径应为(\Documents and Settings\Administrator\桌面\新建 Microsoft Word 文档.doc),在内核中怎么把短名转为长名,有高手能给下代码不~

3.谢谢~
...全文
206 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
orz12 2012-10-28
  • 打赏
  • 举报
回复
Up
看看过了这么久有没有回答
VirtualRookit 2012-03-21
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zhao4zhong1 的回复:]

在硬盘数据线上夹逻辑分析仪!(^_^)
[/Quote]膜拜大神~
赵4老师 2012-03-21
  • 打赏
  • 举报
回复
在硬盘数据线上夹逻辑分析仪!(^_^)
VirtualRookit 2012-03-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lactoferrin 的回复:]

常用的就是NtWriteFile
但内存映射的文件在flush时可以不需要调用ssdt中的api
[/Quote]呵呵,请问有能实现类似功能的文件过滤驱动源码参考没。filemon和sfilter代码太多,太复杂了
Lactoferrin 2012-03-21
  • 打赏
  • 举报
回复
常用的就是NtWriteFile
但内存映射的文件在flush时可以不需要调用ssdt中的api
VirtualRookit 2012-03-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lactoferrin 的回复:]

这两个会把内存的写入硬盘,但不仅是这两个时候
[/Quote]你好,文件写操作的内核api俺就知道NtWriteFile,请问还有其它文件写操作的内核API没,如果有,比较常用的有哪几个?
Lactoferrin 2012-03-21
  • 打赏
  • 举报
回复
这两个会把内存的写入硬盘,但不仅是这两个时候
VirtualRookit 2012-03-21
  • 打赏
  • 举报
回复
请问是否有相关的源代码可以借鉴没,另,你说的文件映射是否内存映像文件的是FlushViewOfFile。FlushFileBuffers这些内存映像操作API吗,
Lactoferrin 2012-03-21
  • 打赏
  • 举报
回复
要用过滤驱动程序,否则真的不好使
  • 打赏
  • 举报
回复
这个问题找列宁就对了,呵呵
Lactoferrin 2012-03-21
  • 打赏
  • 举报
回复
知道文件映射不

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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