首页
社区
课程
招聘
[求助]如何在Win64寻找SSDT,Hook ZwQueryDirectoryFiles,免签安装我的sys文件
发表于: 2012-5-29 11:21 9554

[求助]如何在Win64寻找SSDT,Hook ZwQueryDirectoryFiles,免签安装我的sys文件

2012-5-29 11:21
9554
我在研究hook SSDT的ZwQueryDirectoryFiles函数来实现文件、文件夹隐藏;前阵子好不容易把32位下的sys文件调试同过了,虽然本质上到底咋回事儿依然是懵懵懂懂;现在要搞64位下的;网上一搜才发现好像特别困难;想找人教,教我如何找到SSDT位置,如何Hook 64位下的ZwQueryDirectoryFiles,还有如何免签名安装我的sys文件。我不是懒,只是笨罢了,所以请高人给些差不离的代码,我很愿意调试,但我目前实在还写不出来!泣血求各位大大了!

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

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 135
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
64位下SSDT没有导出需要自己定位
64位下驱动加载必须有签名,除非你用TDL4方式加载:replace kdcom.dll+reload and run~
再有HOOK SSDT会蓝的,因为有PatchGuard

我劝你还是放弃吧~
2012-5-29 11:24
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
话说x64有个东西叫patchguard
2012-5-29 11:25
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
网上有文章《在Win64系统上免费加载驱动以及绕过PatchGuard(WIN64内核越狱)》,求高手讲解!
2012-5-29 11:37
0
雪    币: 135
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
鸡肋文章,不看也罢
纯粹理论性的东西,根本没实用价值。你见过那个马或者正规安全软件对系统做这么大的修改的?
2012-5-29 11:56
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
或者有其他方法吗?求大大们指点:比如我想在Win64下面隐藏所有的.doc文件,除了hook ZwQuery...函数,有别的途径吗?
2012-5-29 12:47
0
雪    币: 2331
活跃值: (2220)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
7
文件过滤驱动就可以了。。。
2012-5-29 13:44
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
请推荐相关帖子,学习资料!我一直以为文件过滤驱动都是 在openfile的时候被调用,比如查病毒什么的,要用文件过滤驱动,而且这类驱动都是处理文件内容的,好像和我需要的功能是2回事儿。
2012-5-29 13:56
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我装的是WDK7600,在src\filesys\miniFilter 目录下有MetadataManager、minispy、nullFilter、passThrough等几个例子,请问对于我要实现的功能,即隐藏.doc文档,可不可以通过修改某个例子的某几个函数来实现呢?

求指教!
2012-5-29 15:50
0
雪    币: 575
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
http://bbs.pediy.com/showthread.php?t=144511
2012-5-29 18:02
0
雪    币: 2620
活跃值: (55)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
替换内核可以过PatchGuard的,你可以网上找找。
x64的SSDT方法也很多,有个老外的你看看吧
ULONGLONG GetKeServiceDescriptorTable64()
{
        char KiSystemServiceStart_pattern[13] = "\x8B\xF8\xC1\xEF\x07\x83\xE7\x20\x25\xFF\x0F\x00\x00";       
        ULONGLONG CodeScanStart = (ULONGLONG)&_strnicmp;
        ULONGLONG CodeScanEnd = (ULONGLONG)&KdDebuggerNotPresent;
        UNICODE_STRING Symbol;
        ULONGLONG i, tbl_address, b;
        for (i = 0; i < CodeScanEnd - CodeScanStart; i++)
        {
                if (!memcmp((char*)(ULONGLONG)CodeScanStart +i, (char*)KiSystemServiceStart_pattern,13))
                {
                        for (b = 0; b < 50; b++)
                        {
                                tbl_address = ((ULONGLONG)CodeScanStart+i+b);
                                if (*(USHORT*) ((ULONGLONG)tbl_address ) == (USHORT)0x8d4c)
                                        return ((LONGLONG)tbl_address +7) + *(LONG*)(tbl_address +3);
                        }
                }
        }
        return 0;
}
2012-5-29 19:33
0
雪    币: 135
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
在Vista以上版本的x64系统,最好使用微软提供的接口来实现相关的功能。隐藏文件可以使用文件过滤驱动。
PS:替换内核文件这种方法还是不要用的好。正规软件不能这么搞,搞木马这么搞又太鸡肋
2012-5-29 22:21
0
雪    币: 209
活跃值: (143)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
ZwQueryDirectoryFiles不仅仅可以在SSDT里搞,还可以在用户态搞。

64位首先没签名加载不了驱动,其次加载了驱动也没法挂钩子,但是可以采用文件过滤驱动来做。

用户态可以用全局钩子(或Explorer插件)注入到需要隐藏文件的进程中,然后挂钩ntdll中的ZwQueryDirectoryFile即可。
2012-5-30 11:00
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
原来隐藏文件有这么多方法的!!谢谢上面所有回复的大大们,我先研究研究zadley给的那个藏目录的帖子,因为那上面的代码比较多,以后一个个研究64位HOOK SSDT和用户态下的HOOK!
谢谢各位
2012-5-30 14:19
0
游客
登录 | 注册 方可回帖
返回
//