gpt4 book ai didi

c++ - 如何找到特定地址范围内的空闲内存

转载 作者:行者123 更新时间:2023-11-28 01:12:42 26 4
gpt4 key购买 nike

我想在我的进程的特定地址范围内写入少量内存。

示例

  • 要分配的内存量:5 字节
  • 地址下限:0x 00 40 00 00
  • 地址上限:0x 00 A0 00 00

我要写入的范围已经被进程分配了。因此,我不能简单地使用 VirtualAlloc 分配新内存。

但是,由于所需地址空间中的页面用于程序代码,因此并未 100% 使用。某处有足够的空间来写我的 5 个字节。

我必须做什么才能确保我不会覆盖必要的内存?

最佳答案

我不认为有一种好的、通用的方法来做你想做的事。由于您似乎在谈论 Windows 以及加载 PE 的默认位置,因此我将在此处做出一些可能对您有所帮助的假设。

如果您愿意解析 PE header ,通常可以在其中找到松弛空间。检查各部分之间和功能之前的区域。根据应用程序的构建方式,您可能会发现函数之间的区域需要填充 INT3,这可能足以满足您的需求。

如果您向我们提供更多关于您具体尝试做什么的信息,我们可能会提供更多帮助。您可以在加载二进制文件之前对其进行修补,还是必须在运行时完成所有操作?

关于c++ - 如何找到特定地址范围内的空闲内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1582877/

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