提问人:theShingles 提问时间:11/8/2023 更新时间:11/8/2023 访问量:70
禁用 ASLR 且基址设置为高地址的 VirtualAlloc 0x20000 [已关闭]
VirtualAlloc to 0x20000 with ASLR disabled and Base Address set to a High Address [closed]
问:
在我的C++程序中,我尝试分配一个特定的虚拟内存地址范围,0x20000 64KB,但发现有时 VirtualAlloc() 操作会失败,因为该范围已经在使用中。因此,我禁用了ASLR(/DynamicBase:No)并将基址设置为0x800000;现在它一直无法分配。VMMap 显示一堆已保留在我的基址下方的可共享内存,从 0x10000 到 0x40000。
对 VirtualAlloc 的调用示例:
void* addr = VirtualAlloc((LPVOID)0x20000, 0x10000, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
有没有办法保证 VirtualAlloc() 到这个特定的内存范围会通过(即,防止任何其他东西分配这个内存范围)?
答: 暂无答案
评论