我的目标是在 ARM 平台上的剥离二进制文件中挂钩没有符号的 C 函数。由于这些函数的地址可能会改变(即更新二进制文件),我希望我的插入动态库本身能够找到地址。
此外,在某些时候,这些函数使用一个 C 字符串,它永远不会通过更新而改变。考虑到这一点,以下是查找函数地址的 3 个步骤:
1)找到C字符串本身的地址(通过分析__cstring
段内的__TEXT
部分。
2) 找到对字符串的引用的地址。
3)从外部参照地址开始,往回走,直到找到一个函数序言。
我可以实施步骤 1)和 3),但我对 2)有点迷茫。究竟什么是外部参照?如何识别与 C-string 对应的那个?不需要代码,只需要一些理论。
谢谢 !