所以基本上我正在处理一些跳闸的动态链接ELF 二进制文件(32 位 Linux x86),objdump用于反汇编它们,修改并尝试重新组装它们。
在未剥离的二进制中,我们可以根据符号表得到 main 函数的起始地址,但是,在剥离后的二进制中,我们只是不知道 main 函数在哪里。
当然我可以调整整个文本部分,从ELF的原始入口点开始。
但问题是:
有一些控制转移序言本ELF(如/收尾
_start;__do_global_dtors_aux;__libc_csu_fini;__i686.get_pc_thunk.bx;__do_global_ctors_aux)插入.dtors,.ctors部分,我也必须拆卸此部分,其装置。我担心如果我从重新组装的 ELF 的入口点开始,那么我可能会双重初始化一些东西,因为在我重新组装的 asm 代码中,我有
_start;__do_global_dtors_aux;__libc_csu_fini而链接器也会在新的 ELF 中附加这些函数。
所以我想用某种方式来识别main剥离 ELF 中的函数(启发式)......
现在我在这个问题上没有一些策略,谁能给我一些帮助?