VirtualAllocEx 失败 GetError 返回ERROR_INVALID_ADDRESS
VirtualAllocEx fails GetError returns ERROR_INVALID_ADDRESS
我正在尝试在挂起模式下使用 CreateProcessA 创建一个进程,然后在基本地址上分配内存0x400000问题是当我打开动态基础标志时,virtualallocex 随机失败,但是当我关闭动态基础标志时,它每次都失败。
VirtualAllocEx(PI.hProcess, ImageBase,SizeOfImage, 0x3000, PAGE_EXECUTE_READWRITE);
我想在特定地址(即 ImageBase(分配内存,在创建进程后处于挂起状态后,我无法做到这一点。
我想在该地址加载代码并在进程恢复后执行它。谢谢
如果您只想在此过程中分配一些内存,那么您应该通过指定 NULL 作为基础来让VirtualAllocEx
为您选择一个空闲地址。
如果要修改进程中的某些内容,则必须使用toolhelp/PSAPI函数来查找真实的模块基址,并使用VirtualProtectEx
在调用WriteProcessMemory
之前更改要修改的页面的保护。如果在此过程中更改了代码,则还需要调用FlushInstructionCache
。
您可以使用VirtualQueryEx
查找有关这些页面的信息,VirtualAllocEx
可能会失败,因为模块已加载到该页面。
相关文章:
- 如何解决"invalid conversion from 'char' to 'const char*'"
- 如何处理 c++ 中类实现中的"invalid use of non-static data member"?
- C++ "error: invalid use of void expression"
- 赛通"Cannot take address of memoryview slice"
- 收到错误"invalid use of non-static data member 'stu::n' "
- Poloniex API "Invalid command" c++ libcurl
- C++模板错误:"invalid explicitly-specified argument for template parameter"
- C++:寻找"returning address of local variable..."的更正
- SDL_CreateTextureFromSurface() "Invalid texture"错误?
- C++ "Invalid use of 'this' in non-member function" ,
- 为什么gmp会在这里与"invalid next size"重新定位一起崩溃?
- 继承类时"invalid use of incomplete type ‘class tree_node_t’"
- 为什么我会"Invalid read of size 8"?(瓦尔格林德)
- 为什么打印 c 样式字符串的'address of index n'会导致子字符串的输出
- "fast"或"normal"在"free(): invalid next size (fast)"中是什么意思?
- 如何在Arduino程序中解决"invalid operands of types"?
- 隐式转换产生"error: taking address of temporary"(GCC 与 clang)
- 为什么我的重载 + 运算符在返回时会产生"Invalid address specified to RtlValidateHeap"错误?
- 调试"Invalid address space"错误
- 如何搜寻"to the invalid address stated on the next line"虫