我需要在Android APK中修改一个so。
任务是在so旁边重命名动态符号(这是函数名)。

例如,从Java_com_example_abc _....更改为Java_com_yahoo_zzz_...。

我尝试使用WinHex直接搜索和替换文本单词,apk启动错误。
好像.hash节也需要更新,但是我不知道如何更新.hash节。

我的问题是重命名动态符号的正确或首选方法是什么?

我被困了3天,请帮助我,非常感谢!

发现一个帖子可能相关,但是他没有给出替代解决方案。
https://sourceware.org/ml/binutils/2006-03/msg00266.html

最佳答案


您试图实现的目标实际上是不可能的。
ELF文件的内部结构复杂,要执行操作需要将其分解并重新组装零件。打个比方,就是将Intel CPU分解成晶体管,然后用它们重新组装AMD CPU。

这是相关的。引用:

因此,作者设法将看起来像AMD CPU的东西粘合在一起,但是不起作用。
当然,您可以再花2周的时间来了解作者的所作所为,然后再花3周的时间来修复剩余的碎片。之后,您可能会得到有时有用的东西。
您的时间可能更适合在其他地方度过。

08-05 06:12