基本上我正在尝试重新使用一些从 x86 32 位 Linux 上的二进制文件反汇编的汇编代码。
当 GOT/GOT.PLT 的引用涉及到这些时,我遇到了一些麻烦。
....
804c460: 53 push %ebx
804c461: e8 ec ff ff ff call 804c452 <__i686.get_pc_thunk.bx>
804c466: 81 c3 8e 2b 00 00 add $0x2b8e,%ebx // %ebx has the beginning address of GOT table
804c46c: 83 ec 18 sub $0x18,%esp
....
如果我想重用这些asm代码,我必须将具体地址提升为符号,并且在上面的代码中,我必须找到一种方法来ebx存储GOT表的开始地址。
嗯...那么我是否必须修改链接器...?因为GOT直到链接时间才能确定表的开始地址..
所以我的问题是:
修改链接器是正确的方法吗?有没有其他办法?
如何修改此问题中的链接器..?我之前基本没有经验..