首页
社区
课程
招聘
[求助]驱动内调用ZwAllocateVirtualMemory,分配特定地址
2014-4-8 15:09 4961

[求助]驱动内调用ZwAllocateVirtualMemory,分配特定地址

2014-4-8 15:09
4961
问题:

    我在驱动中调用ZwAllocateVirtualMemory来分配一个进程虚拟内存,是成功的。但这个地址是系统分配,我想分配一个大于某个地址(如:0x00500000)以后的地址,因为ZwAllocateVirtualMemory分配的地址有时小于0x0050000,在求偏移的是0xFFFXXXX(负数),32位系统没大问题,但是在64位时,这个地址的相对偏移,就不太好。

有没有好的办法?   谢谢大家。

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (5)
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
whnet 2014-4-8 15:29
2
0
直接想到的一种比较笨的办法,分配到了先留着, 继续分配,等分配到了合适的,再把原来的释放掉。
雪    币: 364
活跃值: (1346)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
wujimaa 1 2014-4-8 15:57
3
0
开始也想到这种办法,这样吃内存,会很卡的
雪    币: 962
活跃值: (1536)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
loqich 2014-4-8 17:18
4
0
ZwAllocateVirtualMemory 有参数可以先把地址留着 要使用时再提交的
雪    币: 1683
活跃值: (380)
能力值: ( LV15,RANK:440 )
在线值:
发帖
回帖
粉丝
hackerlzc 10 2014-4-8 18:44
5
0
好像这类函数有个 TOP_DOWN 标志位,意思是从高地址向低地址分配,LZ可以看下。
雪    币: 364
活跃值: (1346)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
wujimaa 1 2014-4-8 19:53
6
0
谢谢大家,已经解决了。就是第二个参数不为空时,是在下个地址分配的。 用 TOP_DOWN 标志位获取最大地址,我们的地址不断加0x10000(加后要小于最大地址),来调用这个函数,获取MM_FREE的内存。
游客
登录 | 注册 方可回帖
返回