【发布时间】:2013-08-18 16:10:59
【问题描述】:
我在视频游戏中使用 DLL 注入来进行改装(我正在构建游戏 API)。
我想从我的新 DLL 中直接访问 EXE 中的结构和变量。变量的绝对地址是已知的(EXE有固定的镜像库)。
根据 GNU ld 文档,我可以使用 --defsym=symbol=expression 在输出文件中创建一个全局符号,其中包含表达式给出的绝对地址。
我无法让它工作。
如果我在代码中将符号声明为 extern,并使用 ld --defsym,则会出现未定义的引用错误。但如果我在代码中定义符号,它只会使用本地 (DLL) 版本,而不是 EXE 版本。
似乎--defsym 选项无效。任何见解将不胜感激。
更新:--defsym 在 Linux 下完美运行。当我尝试在 Windows 上使用 mingw 进行编译时,出现 undefined reference 错误。
【问题讨论】:
标签: windows gcc linker ld dll-injection