我对编程真的很陌生(总的来说 - 这很可悲),并且在这个应用程序中出现了一些与 Python 相关的程序集,我正在破解它以在 64 位上运行。
本质上,代码是这样的:
#define FUNCTION(name) \
.globl _##name; \
_##name: \
jmp *(_p_##name)
.text
FUNCTION(name)
据我所知,FUNCTION(name) 语法被使用了大约 50 次来定义外部 Python 库的标头(我不会假装我完全理解它,我只是在修复错误)。
由于我正在为 x86_64 进行编译,因此 GCC 会为每个 FUNCTION(name) 实例吐出以下错误:
x86-64 不支持 32 位绝对寻址
不能做有符号的 4 字节重定位
我将如何“修复”它以在 x86_64 上运行?