【问题标题】:Keep 'em (functions) in the same place in memory将它们(函数)保存在内存中的相同位置
【发布时间】:2012-07-07 19:59:02
【问题描述】:

我正在为 Windows 构建一个 C++ 应用程序,我将与一个 DLL 挂钩(在汇编代码中)。但是我在逆向工程我制作的控制台应用程序时遇到了问题。

我想将函数地址保留在同一个位置,但每次我编辑和重建 DLL 时它们都会在内存中移动。

有没有办法让它们保持在同一个地方?有没有办法将变量(例如int)的后备存储保持在同一个位置(内存地址)?

【问题讨论】:

  • 停止函数或全局变量移动的唯一方法是停止编辑。地址空间布局随机化使它们在此之后继续移动,旨在阻止您做您想做的事情。
  • 请注意,您通常可以关闭 ASLR。

标签: c++ windows memory dll assembly


【解决方案1】:

简短的回答:不。我从未听说过具有此功能的编译器/链接器。

【讨论】:

    【解决方案2】:

    您不需要用汇编语言硬编码地址。

    您可以像往常一样链接 DLL。

    如果这对您不起作用,请发布代码和确切的问题描述。

    【讨论】:

      猜你喜欢
      • 2015-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-24
      • 1970-01-01
      • 2014-03-30
      • 1970-01-01
      相关资源
      最近更新 更多