首页
社区
课程
招聘
安卓so在没有源码的情况下怎样增添自己写的函数?
发表于: 2024-12-2 22:39 1443

安卓so在没有源码的情况下怎样增添自己写的函数?

2024-12-2 22:39
1443
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 3022
活跃值: (6771)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
先用c、c++把要添加的函数写出来然后编译,编译后把so的可执行段和其他段提取出来然后插入到要添加的so里之后在要执行函数的地方跳转到插入函数的地址。或把编译后要插入的so文件和要插入的目标so文件反编译成汇编文件然后把编译后要插入的so文件的汇编代码和资源啥的添加到目标so反汇编的汇编代码和资源啥的里之后在要调用的地方写一下一些汇编代码之后在编译成so文件。
2024-12-2 23:09
0
雪    币: 3022
活跃值: (6771)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
前一种方式要手动计算地址, 后一种不需要算地址但如果so反编译出来的汇编代码很大那工作量就很惊人。
2024-12-2 23:11
1
雪    币: 1994
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
拷贝原来的phdrs加上自己的PT_LOAD新phdr追加在ELF末尾并更新e_phoff,再拷贝一份ELF原来的符号表,加上你自己的函数(新函数偏移指向新的phdr)和指令,一起追加在ELF末尾
2024-12-2 23:47
0
游客
登录 | 注册 方可回帖
返回
//