我正在寻找用一些代码修补一块废弃软件。
该软件是基于碳的,所以我不能使用 InputManager(至少,我认为我不能)。我的想法是添加对 mach-o 标头的 dylib 引用,并在调用初始化例程时启动一个新线程。
我已经使用 hexeditor 添加适当的加载命令 (LC_LOAD_DYLIB) 来处理 mach-o 标头。
otool 报告了我希望看到的内容,因此我相当有信心该文件的格式正确。
加载命令 63 命令 LC_LOAD_DYLIB cmdsize 60 名称 @executable_path/libAltInput.dylib(偏移量 24) 时间戳 1183743291 Fri Jul 6 19:34:51 2007 当前版本 0.0.0 兼容版本 0.0.0
但是,启动二进制文件会给我以下错误
dyld:外部重定位长度错误
我能猜到这意味着我需要修改 LC_ SYMTAB 或 LC_ DYNSYMTAB 部分......
有人有想法么?