我目前正在为现有的SO库(适用于Android的GTA SA)开发SO插件加载程序。 Android上的SO库是Unix ELF文件。 没有库的源代码我不能简单地在源代码中添加导入的函数并再次编译SO库。
有libGTASA.so,我想编辑和修改导入表,添加一个新符号RunSOpluginLoader,它将在libFastman92pluginLoader.so中实现,它已经在加载libGTASA.so之前加载,由Java代码( classes.dex)我也修改了。
对于Windows上的EXE文件,有很多程序可以编辑导入,我会使用LordPE。 对于ELF文件,我需要一个不同的解决方案,但是我找不到它。
我尝试使用HT编辑器,它应该打开并编辑ELF文件,但是在HT编辑器中打开libGTASA.so后几秒钟,应用程序就会崩溃。
我需要一个解决方案来向SO库添加导入,最好是在Windows上运行的解决方案,但如果没有,那么我愿意在Linux系统上进行。
正确添加导入后,我将在libGTASA.so中编辑一些ARM代码,以实际调用新导入的函数。
本质:
libGTASA.so - 我想在这个文件中添加一个导入的符号RunSOpluginLoader。
答案 0 :(得分:0)
在我写完问题后的几天,我想出了如何完成这项任务。 我在C ++和程序中编写了一个简单的ELF文件管理器类,它执行以下操作:
如果您想了解更多信息或获取代码,请随时与我联系。