gpt4 book ai didi

c++ - VirtualAllocEx 失败 GetError 返回 ERROR_INVALID_ADDRESS

转载 作者:行者123 更新时间:2023-11-30 20:19:42 27 4
gpt4 key购买 nike

我试图在挂起模式下使用 CreateProcessA 创建一个进程,然后在基址 0x400000 地址上分配内存,问题是当我设置动态基标志时,virtualallocex 随机失败,但是当我关闭动态基标志时,它每次都会失败。

VirtualAllocEx(PI.hProcess, ImageBase,SizeOfImage, 0x3000, PAGE_EXECUTE_READWRITE);

我想在特定地址(即 ImageBase)分配内存,但在创建进程处于挂起状态后,我无法做到这一点。

我想在该地址加载代码并在进程恢复后执行它。谢谢您

最佳答案

如果您只想在进程中分配一些内存,那么您应该让 VirtualAllocEx 通过指定 NULL 作为基址来为您选择一个空闲地址。

如果你想在进程中修改某些内容,那么你必须使用toolhelp/PSAPI函数来查找真正的模块基地址,并在调用之前使用VirtualProtectEx来更改你想要修改的页面的保护写入进程内存。如果您在此过程中更改了代码,还需要调用FlushInstructionCache

您可以使用VirtualQueryEx查找有关这些页面的信息,VirtualAllocEx可能会失败,因为那里已经加载了模块。

关于c++ - VirtualAllocEx 失败 GetError 返回 ERROR_INVALID_ADDRESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49320182/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com