首页
社区
课程
招聘
[原创]win10 1909逆向(win10内存分区浅析)
发表于: 2021-2-24 22:29 8311

[原创]win10 1909逆向(win10内存分区浅析)

2021-2-24 22:29
8311


         Windows10的新功能内存分区,这两天感兴趣想了解一下,加上逆向360VT已接近尾声,所以今天抽出一点时间来学习,网上未找到相关资料,导致下面的分析仅是个人观点,用来抛转引玉,如有错误,请多指教,逆的时间很短,所以请当入门来了解。

     

  

         内存分区是物理页的集合,这些物理页基本上独立于其他分区中的物理页进行管理。

         每个内存分区都抽象为一个分区对象,可以通过句柄进行访问。一个内存分区是内置的。

         在对象命名空间中,它是KernelObjects\MemoryPartition0:这是系统内存分区。

         在32位Windows中,这个系统分区是唯一的内存分区。64位下可以自由创建自已的内存分区。

       


1.在PspInitPhase0 创建内存分区对象类型PsPartitionType。

2。在PspInitializeSystemPartitionPhase0创建系统分区:全局变量PspSystemPartition,结构体:_EPARTITION

其中会创建三个重要的结构(名字是根据我的想法随意写的):

MmPartition:基本内存分区              

CcPartition    : 文件缓存分区             

ExPartition    :  Executive分区     


1。EPARTITION.MmPartition(基本内存分区)对应结构体_MI_PARTITION,全局变量:MiSystemPartition与之对应。

     创建的API:MmCreatePartition(_EPARTITION *PartitionObject, char ID)//MiInitializePartition(_MI_PARTITION *MmPartition, int16 PartitionId)等


    

通过逆向得知,MmPartition分区是可以有多个存在的,他们存在一个数组里,通过Index来选择,可以通过Eprocess->Vm->Instance->PartitionId来当索引 ,也可以通过FileObject,也可以通过缓存等等条件来进行选择,总共有416个函数都调用了这个数组来进行选择,如果你想玩点骚操作,这里可能是你们关注的重点。

找到这个数组最简单的办法是找:MiPartitionIdToPointer这个函数


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

收藏
免费 4
支持
分享
最新回复 (7)
雪    币: 1420
活跃值: (2151)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
我豆总是真的猛,豆总带我飞
2021-2-24 22:43
0
雪    币: 66
活跃值: (2718)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我爱你豆豆
2021-2-25 09:12
0
雪    币: 1430
活跃值: (4383)
能力值: ( LV9,RANK:220 )
在线值:
发帖
回帖
粉丝
4
经典360VT,以前也逆过一半不到,后面嫌麻烦就没看了
2021-2-25 09:45
0
雪    币: 919
活跃值: (1340)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
5
豆总越来越犀利了
2021-2-25 10:21
0
雪    币: 889
活跃值: (4118)
能力值: ( LV6,RANK:98 )
在线值:
发帖
回帖
粉丝
6
豆豆牛逼
2021-2-25 11:04
0
雪    币: 1469
活跃值: (440)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
找了半天没找到Win10的这个功能啊,求指点win10内存分区功能在哪里?
2021-2-25 15:57
0
雪    币: 198
活跃值: (8548)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
8
黑手鱼 经典360VT,以前也逆过一半不到,后面嫌麻烦就没看了[em_38]
确实很麻烦
2021-2-27 10:08
0
游客
登录 | 注册 方可回帖
返回
//