使用memcpy将整个内存区域克隆到我自己的内存中
Using memcpy to clone an entire region of memory into my own
我需要在内存中复制一个区域(特别是00401000-00E88000),然后使用memcpy将其克隆到我分配的空间。有没有办法在 DLL 内部有效地C++做到这一点?这是我当前的代码:
#include <Windows.h>
#include <iostream>
LPVOID base = VirtualAlloc(NULL, 0xFFFFFF, MEM_COMMIT, PAGE_READWRITE);
int main()
{
AllocConsole();
freopen("CONOUT$", "w", stdout);
//for later
getchar();
}
BOOL WINAPI DllMain(HINSTANCE hModule, DWORD dwReason, LPVOID lpReserved)
{
switch (dwReason)
{
case DLL_PROCESS_ATTACH:
main();
default:
break;
}
return TRUE;
}
内存以页为单位划分,因此在该范围内您可能有未分配的空间;首先,您必须使用VirtualQuery映射内存,然后可以使用memcpy复制所有数据。
在任何情况下,如果您位于目标的同一地址空间中,则可以仅使用内存,就好像它是您的一样,具体取决于您要对它执行的操作。(看起来您正在尝试转储该内存块,如果是这种情况,您可以将内存直接写入文件,而无需先实际复制它)
也
相关文章:
- 在c++中为我自己的基于指针的数组分配内存的正确方法
- 将矩阵乘以我自己的输入的向量
- 如何正确包含我自己的标头?
- 如何使用我构建的库,而不会从源代码出错,但不为我自己的项目编译?
- 预期'while'或预期'}' 之前回答是,但我自己无法修复
- 为什么__builtin_popcount比我自己的比特计数功能慢?
- 在wxWidgets的事件中包含我自己的数据的最佳方法是什么?
- 如何在我自己的staticLib中使用staticLib
- 在我自己的堆栈中实现top的问题
- 尝试检查输入的文本与我自己的自定义答案
- 如何在我自己的类中重载"+"和"<<"运算符
- C++:我自己类的动态数组
- 如何在 C++ 中使用我自己的类中的库?
- 如何链接我自己的 .so 文件而不是操作系统捆绑包 .so 文件?
- 如何构建默认使用我自己的构建libc ++的clang?
- 访问另一个类(系统)的非静态字段,就好像它是我自己的字段一样 - 优雅地
- 内存覆盖在我自己的 Vector 类中
- 使用memcpy将整个内存区域克隆到我自己的内存中
- 在xcode(c ++)中由我自己处理内存分配
- C++、内存和数组.创建我自己的练习哈希图.内存中留下的意外数据