首页
论坛
课程
招聘
[原创]NTFS文件系统底层挖掘
2009-5-2 23:37 47303

[原创]NTFS文件系统底层挖掘

2009-5-2 23:37
47303
收藏
点赞2
打赏
分享
最新回复 (48)
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zhucheba 活跃值 2009-5-7 17:12
26
0
严重学习,完全不懂
雪    币: 100
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
爱转角 活跃值 2009-5-8 07:58
27
0
多谢,学习中
雪    币: 306
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
小原 活跃值 2009-5-8 10:51
28
0
大米的文档一向华丽,非常耐人寻味
雪    币: 207
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pcqq 活跃值 2009-5-8 10:55
29
0
太強了

真高手!
雪    币: 6
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
linooo 活跃值 2009-5-9 12:37
30
0
严重支持~~
雪    币: 267
活跃值: 活跃值 (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
liangyu 活跃值 2009-5-9 22:39
31
0
这个要支持一下
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wfzzz 活跃值 2009-5-10 00:21
32
0
三花什么什么~~~~~~顶!!!!!!!!!
雪    币: 203
活跃值: 活跃值 (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
herotheo 活跃值 2009-5-10 01:55
33
0
haha   sudami  我刚在邪八看了这个文章  又跑这里来发啦  哈哈  被我逮住啦   写的不错  你说的那本书已经翻译了   在驱网卖呢 正~~~
雪    币: 527
活跃值: 活跃值 (56)
能力值: ( LV12,RANK:360 )
在线值:
发帖
回帖
粉丝
Mx¢Xgt 活跃值 7 2009-5-10 02:58
34
0
严重学习,完全不懂
雪    币: 553
活跃值: 活跃值 (157)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zgzxp 活跃值 2009-5-10 12:52
35
0
vista下测试无效
雪    币: 478
活跃值: 活跃值 (638)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
sudami 活跃值 25 2009-5-10 13:42
36
0
XP NTFS分区下有效.

我没有VISTA的环境,暂时没有跟过,不清楚了,呵呵
雪    币: 144
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
静慕者 活跃值 2009-5-10 14:07
37
0
搞不懂~只能收藏一下了~很想知道,这些东西楼主是从哪里知道的?~
雪    币: 204
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
率性而为 活跃值 2009-5-10 14:09
38
0
学习了
尽管好多内容都不太明白
雪    币: 6
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
linooo 活跃值 2009-5-10 22:35
39
0
1初始化自定义的链表结构,每个节点是要hook用到的context,节点结构为:
typedef struct _funcContext{
PCHAR functionName;//函数名
PVOID originFunctionAddress;//原始地址
PVOID hookFunctionAddress;//hook函数地址,hook函数与原函数接受参数不一样,采用的call形式
PVOID callBeforeAddress;//上层函数调用本函数的call前地址
BOOL isHooked;//是否已经hook过
pfuncContext nextEntry;//单向链表指向下一个节点
PKSPIN_LOCK lock;//锁
}funcContext,*pfuncContext;
2ZwCreatFile打开要保护的文件,ObReferenceObjectByHandle得到文件对象,从而得到fscontext(scb)->fcb->mft号
3将函数ExAllocatePoolWithTag对应的插入链表结构中(MmGetSystemRoutineAddress得到ExAllocatePoolWithTag地址),然后对链表中节点对应的函数进行hook,再开启一个系统线程,并等待。
其中ExAllocatePoolWithTag对应的hook函数HookExAllocatePoolWithTag中
        (1)判断参数1==10h&&参数2==20h&&参数3=7346744Eh即判断是否为NtfsCreateFcb所调用的,利用栈回溯分别得到NtfsCreateFcb和NtfsOpenFile的地址,将其放入全局变量中以备后来判断所用。
        (2)得到NtfsCheckValidAttributeAccess的地址。方法是把NtfsOpenFile中call NtfsCreateFcb前的地址-70h,这样大概能保证该地址再调用NtfsCheckValidAttributeAccess之前,然后进行特征搜索得到NtfsCheckValidAttributeAccess地址,并建立相应节点,加入链表,hook函数为hookNtfsCheckValidAttributeAccess。
        (3)将NtfsCreateFcb建立节点加入链表,hook函数为hookNtfsCreateFcb,设置事件激活系统线程。
4此时该线程结束等待,摘除ExAllocatePoolWithTag钩子,然后进行hook NtfsCheckValidAttributeAccess。
在hookNtfsCheckValidAttributeAccess中,因为几个函数都调用NtfsCheckValidAttributeAccess,所以利用栈回溯得到上一个函数的地址,并和开始保存在全局变量中的NtfsOpenFile的地址进行比较,如果是则与NtfsOpenFile参数中mft号比较,看是不是自己要保护的文件,若是将参数中的fcb的cleanupCount=1,将FcbState中的FCB_STATE_PAGING_FILE清0.若上一个函数不是NtfsOpenFile,同样判断mtf号是否为要保护的文件,是则进行重定位到\\Test\1.txt
        相应的同步操作和参数判断都没有提到~ps:我是菜逼,如有错误请指教~~
雪    币: 79
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
林郎君 活跃值 2009-5-11 09:43
40
0
初看好象不懂啊

学习之
雪    币: 201
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
amazingzyx 活跃值 2009-9-27 11:00
41
0
佩服佩服,看完后真是惭愧啊,自己还懂得太少!
雪    币: 404
活跃值: 活跃值 (33)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
kusky 活跃值 4 2009-9-27 18:49
42
0
打个标签。以备学习。
雪    币: 351
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
x敏m 活跃值 2009-9-27 20:00
43
0
必须学习。。。
雪    币: 74
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
commoo 活跃值 2009-9-27 21:51
44
0
已收藏,谢谢
雪    币: 672
活跃值: 活跃值 (101)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
FishSeeWater 活跃值 11 2009-9-28 10:11
45
0
人咋这么牛呢?
请问是什么环境什么条件练就的这样神功??
可否学习一下学习过程??
雪    币: 1
活跃值: 活跃值 (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lixianhuei 活跃值 2010-5-24 16:51
46
0
标记下好东西,谢谢了。
雪    币: 19
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dotNetSafe 活跃值 2010-5-24 17:03
47
0
好东西啊,还有视频。 顶啊!
雪    币: 1681
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
itf 活跃值 2010-5-24 17:14
48
0
楼主的探索精神值得学习~~~~~~~谢谢了
雪    币: 1942
活跃值: 活跃值 (249)
能力值: ( LV5,RANK:61 )
在线值:
发帖
回帖
粉丝
brucy 活跃值 2021-4-6 17:11
49
0
大米师傅能分享一下win10的ntfs系统的FCB结构体吗,最近在做毕设遇到了这个问题。
游客
登录 | 注册 方可回帖
返回