首页
社区
课程
招聘
[原创]Window上map远程进程内存空间到本地进程
发表于: 2018-2-16 23:06 5479

[原创]Window上map远程进程内存空间到本地进程

2018-2-16 23:06
5479
原理简介:
1,通过NtQuerySystemInformation+NtQuerySystemInformation获取远程进程的pfn databse(可以说是物理内存数据库)
2,分析pfn databse拿到PTE_BASE
3,本地进程通过VirtualAlloc + MEM_RESERVE  + MEM_PHYSICAL预留足以容纳目标进程所有内存的虚拟内存空间
4,加载一个驱动 传入 PTE_BASE + 预留的虚拟内存空间 + 远程进程的pfn列表
5,驱动中修改本地进程预留内存的pte,使其指向远程进程内存空间对应的物理内存
经过以上5步后,读写预留的虚拟内存,就相当于读写远程进程了。
这原理的几个细节地方都可以单独开贴来讲了,这贴就懒得展开了,大家看源码吧。贴尾有些资料可以看下。

已知问题:
会不定期蓝屏,原因是与windows的内存管理机制有冲突。
不unmap就退出进程会蓝屏
某些情况下的缺页也会蓝屏

资料:
bbs.pediy.com/thread-203391.htm
bbs.pediy.com/thread-205143.htm

源码:
因为和本贴不相关的代码太多和其他原因,不能整个项目分享出来。但核心代码都分享了。
部分源码来自《Windows Internals》https://github.com/zodiacon/WindowsInternals

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 665
活跃值: (1041)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
怎么过年人们连沙发也不抢了
2018-2-18 03:47
0
雪    币: 433
活跃值: (1895)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3
我有个更骚的解决方法...
2018-2-18 23:15
0
雪    币: 43
活跃值: (388)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
4
萌克力 我有个更骚的解决方法...
切换cr3吗?求赐教
2018-2-19 10:54
0
雪    币: 231
活跃值: (2631)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
赞一下
2018-2-20 06:16
0
雪    币: 1484
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
NtQuerySystemInformation被hook  获取不到pfn你这方法不是失效了?用cr3靠谱一点,但现在可以伪造cr3,用cr3还要想办法
2018-2-20 18:32
0
雪    币: 43
活跃值: (388)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
7
冰雄 NtQuerySystemInformation被hook 获取不到pfn你这方法不是失效了?用cr3靠谱一点,但现在可以伪造cr3,用cr3还要想办法
这里只是展示怎么映射内存罢了。拿pfn还是有很多有效安全的办法的。从NtQuerySystemInformation拿只是演示方便罢了。
2018-2-20 23:20
0
游客
登录 | 注册 方可回帖
返回
//