首页
社区
课程
招聘
[求助]关于ZwMapViewOfSection、NtCurrentProcess()的疑问
发表于: 2010-5-5 11:03 9844

[求助]关于ZwMapViewOfSection、NtCurrentProcess()的疑问

2010-5-5 11:03
9844
最近在看SSDT恢复的一些资料:

【原创】Anti SSDT Hook:
http://bbs.pediy.com/showthread.php?p=578346
关于SSDT的一点总结 :
http://bbs.pediy.com/showthread.php?t=100493

大概流程是用ZwCreateFile打开ntoskrnl.exe,ZwCreateSection创建一个Section,然后用ZwMapViewOfSection把这个Section映射到用户空间,从而可以像读写内存一样来读写ntoskrnl.exe。我的问题是:

1.有没有把ntoskrnl.exe的内容全部都拷贝到了内存里面?

2.ZwMapViewOfSection映射得到的基址都是<0x80000000的用户空间的地址,我想把ntoskrnl.exe映射到内核空间,不想让应用程序访问,应该怎么做?我看了下WDK的文档,说是得借助“system worker thread ”,但在System Worker Threads里面又没相关的信息。WDK原文如下:

The view must be mapped only from a system thread. (Otherwise, the view is accessible from the process whose context it is created in.) A driver can make sure that the view is mapped from the system process by using a system worker thread to perform the mapping operation. For more information, see System Worker Threads and Driver Thread Context.


3.ZwMapViewOfSection中的NtCurrentProcess()宏,我看了下它的定义是:
#define NtCurrentProcess() ( (HANDLE)(LONG_PTR) -1 )
WinDBG里面输出的结果是FFFFFFFF,这是咋回事?

求解答

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 284
活跃值: (106)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
2
没必要那么复杂,何况搞恢复的事,调用函数越多越不安全,比如万一MAp函数也被挂钩了呢?自己读文件进来就可以了,如果要检测inline就读重定位基本表重定位一下代码而已……本进程句柄都—1,伪句柄。楼主如果有看MSDN的习惯的话,里面对GetCurrentProcess就说的很清楚了……
2010-5-5 13:15
0
雪    币: 350
活跃值: (87)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
3
楼上的,自己读取文件的话,好像不可以啊,WIN7和XP中对文件定位表的重定位好像不一样的啊,主要是文件系统的偏移不一样,用ZwCreateSection就没有这个问题,而且自己读取文件,我还可以修改你的缓冲区啊!最直接的,我HOOK  IoCreateFile函数,把它对Ntoskrnl.exe文件的读写重定向到一个已经修改好的文件中来,这样在你还原以后,我的HOOK还是照样存在
2010-5-7 15:20
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
哎,直接IO硬盘了…
2010-11-17 15:20
0
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
管你怎么弄都有漏。。。选最简单的好了
2010-11-17 15:27
0
游客
登录 | 注册 方可回帖
返回
//