首页
社区
课程
招聘
Fake_NtCreateFile
发表于: 2016-3-29 17:37 4695

Fake_NtCreateFile

2016-3-29 17:37
4695
我的问题:WIN7  64位,我SSDT HOOK NtCreateFile 是想实现打开A.TXT经过HOOK的函数后实际上打开的是B.TXT,但是提示:内存位置访问无效,这是为什么,要怎么实现我想要的功能呢?

NTSTATUS __fastcall Fake_NtCreateFile(
  __out     PHANDLE FileHandle,
  __in      ACCESS_MASK DesiredAccess,
  __in      POBJECT_ATTRIBUTES ObjectAttributes,
  __out     PIO_STATUS_BLOCK IoStatusBlock,
  __in_opt  PLARGE_INTEGER AllocationSize,
  __in      ULONG FileAttributes,
  __in      ULONG ShareAccess,
  __in      ULONG CreateDisposition,
  __in      ULONG CreateOptions,
  __in      PVOID EaBuffer,
  __in      ULONG EaLength
)
{
        NTSTATUS st;
        UNICODE_STRING jiangming,jiangming1;
        OBJECT_ATTRIBUTES obj_attrib;       
        RtlInitUnicodeString(&jiangming,L"\\??\\C:\\InstDrv1.txt");
        if(RtlEqualUnicodeString(&jiangming,ObjectAttributes->ObjectName,1))
        {       
                RtlInitUnicodeString(&jiangming1,L"\\??\\C:\\InstDrv2.txt");
                InitializeObjectAttributes(
                &obj_attrib,
                &jiangming1,
                OBJ_KERNEL_HANDLE|OBJ_CASE_INSENSITIVE,
                NULL,
                NULL
                );
                DbgPrint("%wZ\n",  ObjectAttributes->ObjectName);
        st=NtCreateFile(FileHandle,DesiredAccess,&obj_attrib,IoStatusBlock, AllocationSize,FileAttributes,ShareAccess,CreateDisposition,CreateOptions,EaBuffer,EaLength);

        }
else
{
        st=NtCreateFile(FileHandle,DesiredAccess,ObjectAttributes,IoStatusBlock, AllocationSize,FileAttributes,ShareAccess,CreateDisposition,CreateOptions,EaBuffer,EaLength);

}       
        return st;
}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 7255
活跃值: (5241)
能力值: ( LV10,RANK:163 )
在线值:
发帖
回帖
粉丝
2
您得确定操作完了,NtCreateFile走回去是原始指令.......
文件重定向干嘛不用minifilter或者sfilter 用ssdt hook您还得干掉patchguard.........
2016-3-29 17:52
0
雪    币: 248
活跃值: (3789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
可以写个文件过滤驱动,就不需要过PG了,省事
2016-3-29 21:01
0
雪    币: 112
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
求完整代码……
2016-3-29 22:23
0
雪    币: 615
活跃值: (765)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
搞定了,改成这个就可以了,RtlCopyUnicodeString(ObjectAttributes->ObjectName,&jiangming1); 原来过滤驱动也可以完成这个功能,感谢楼上的大神提醒。
2016-3-30 09:10
0
游客
登录 | 注册 方可回帖
返回