首页
社区
课程
招聘
[原创] 不调用系统api读写物理内存的方法
发表于: 2023-10-4 01:24 17682

[原创] 不调用系统api读写物理内存的方法

2023-10-4 01:24
17682

话不多说,直接上代码


原理:

先分配一个Mapper,用MmAllocateIndependentPages的原因是不会分配出大页,用ExAllocatePool等api是有概率分配出大页Pde内存的哦

获取Mapper的Pte并保存原始Pfn,用于后续还原


改Pte->Pfn使得Mapper映射我们的物理地址,刷tlb,拷贝内存,还原Pfn

关中断的原因是invlpg之后切到其他核心会导致在其他核心的tlb没被刷新从而拷贝到错误的数据,其实提升irql就行了


注意事项:

多核情况要注意分配多个Mapper给每个核心使用


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

收藏
免费 8
支持
分享
最新回复 (8)
雪    币: 1223
活跃值: (4707)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2

2023-10-4 14:05
0
雪    币: 12848
活跃值: (9167)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
3
EAC:懂了 这就去监控invlpg
2023-10-4 15:02
0
雪    币: 3836
活跃值: (4142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢分享
2023-10-4 16:10
0
雪    币: 46
活跃值: (1750)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
哈哈,大伙有活了。
2023-10-4 17:36
0
雪    币: 446
活跃值: (628)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
好活
2023-10-4 21:51
0
雪    币: 3535
活跃值: (31016)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
感谢分享
2023-10-4 23:04
1
雪    币: 1545
活跃值: (2139)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
6666666666666666666666666666666666666666
2023-12-7 21:54
0
雪    币: 2
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
x64好像不能用__invlpg
2024-5-22 15:36
0
游客
登录 | 注册 方可回帖
返回
//