首页
论坛
课程
招聘
[原创]山寨Fsd Inline Hook
2009-3-31 13:08 6154

[原创]山寨Fsd Inline Hook

2009-3-31 13:08
6154
代码大部分是炉子[0GiNr]提供的,在此感谢。
增加了一段获取通过NTFS驱动对象获取分发函数地址的代码,如果已经被人hook过,可能造成蓝屏。最好的方法还是解析NTFS文件获取原始分发函数地址。Xp sp2测试通过。

extern POBJECT_TYPE *IoDriverObjectType;

NTKERNELAPI
NTSTATUS
NTAPI
ObReferenceObjectByName (
                                                 IN PUNICODE_STRING ObjectName,
                                                 IN ULONG Attributes,
                                                 IN PACCESS_STATE PassedAccessState OPTIONAL,
                                                 IN ACCESS_MASK DesiredAccess OPTIONAL,
                                                 IN POBJECT_TYPE ObjectType OPTIONAL,
                                                 IN KPROCESSOR_MODE AccessMode,
                                                 IN OUT PVOID ParseContext OPTIONAL,
                                                 OUT PVOID *Object
                                                 );

PULONG NtfsMajorFunction = NULL;
ULONG NtfsDispatch = 0xfa8f3618; //Ntfs!NtfsFsdSetInformation

BOOLEAN GetNtfsMajorFunctionAddr()
{
        PDRIVER_OBJECT        pDriverObject;
        UNICODE_STRING        DeviceName;
        NTSTATUS                ntStaus;
        BOOLEAN                        bRet = FALSE;
        RtlInitUnicodeString(&DeviceName, L"\\FileSystem\\Ntfs");
        ntStaus = ObReferenceObjectByName(&DeviceName, OBJ_CASE_INSENSITIVE, NULL, 0, *IoDriverObjectType, KernelMode, NULL, (PVOID*)&pDriverObject);
        if(!NT_SUCCESS(ntStaus))
                goto __end;
        NtfsMajorFunction = (PULONG)pDriverObject->MajorFunction;
        bRet = TRUE;
__end:
        return bRet;
}

NtfsDispatch = NtfsMajorFunction[IRP_MJ_SET_INFORMATION];

[培训] 优秀毕业生寄语:恭喜id咸鱼炒白菜拿到远超3W月薪的offer,《安卓高级研修班》火热招生!!!

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (7)
雪    币: 250
活跃值: 活跃值 (63)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
weolar 活跃值 10 2009-3-31 13:09
2
0
沙发学习~~
雪    币: 141
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dsjHZAHfaf 活跃值 2009-3-31 13:22
3
0
VC++6.0学习.
雪    币: 7506
活跃值: 活跃值 (298)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
achillis 活跃值 15 2009-3-31 14:04
4
0
这个为什么也叫山寨啊?
雪    币: 156
活跃值: 活跃值 (163)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
mergerly 活跃值 1 2009-3-31 21:23
5
0
在人家思路的基础上加工出来的,功能一样,所以叫山寨了
雪    币: 1942
活跃值: 活跃值 (864)
能力值: (RANK:770 )
在线值:
发帖
回帖
粉丝
海风月影 活跃值 18 2009-3-31 23:11
6
0
太难了。。。
完全不懂
雪    币: 70
活跃值: 活跃值 (128)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dnybz 活跃值 2009-4-1 01:51
7
0


这样的技术,正常软件很少用到
雪    币: 7506
活跃值: 活跃值 (298)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
achillis 活跃值 15 2009-4-1 07:08
8
0
正规软件用过滤驱动
游客
登录 | 注册 方可回帖
返回