首页
社区
课程
招聘
[求助]如何修改so文件里的函数名,并回编译为so
发表于: 2015-1-7 14:55 24196

[求助]如何修改so文件里的函数名,并回编译为so

2015-1-7 14:55
24196
如题:如何修改so文件里的函数名,并回编译为so,希望大神们不吝赐教

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 30
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你觉得这能行。。。。
2015-1-7 15:26
0
雪    币: 41
活跃值: (242)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
还没听说过native lib 可以当java一样回编译的
2015-1-7 15:34
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
4
elf文件的dynamic节里面有一项叫做DT_STRTAB,指向字符串表。直接改里面的字符串就行了
2015-1-7 15:42
0
雪    币: 161
活跃值: (231)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
ELF的HASH节或者GNU.HASH节保存了函数名HASH值,两个节分别使用了不同的HASH计算方法,一种是老式的,一种是现在GCC编译器所使用的。目前并无现成的工具可以修改,所以你需要自己写一个工具来生成修改函数名后的HASH节或者GNU.HASH节数据。
2015-1-7 15:46
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我遇到的问题是和jni相关的,so里面的函数会对应一个特定包名下的java类,如果我把包名改了,怎么去调用so里的函数。
2015-1-7 15:46
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
好复杂啊,有没有一些相关的资料让我参考一下
2015-1-7 15:49
0
雪    币: 161
活跃值: (231)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
ELF格式,ELF加载器,ELF规范,百度搜索上面关键字。
2015-1-7 15:50
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
你的意思就是修改so文件的符号表?
2015-1-9 16:14
0
雪    币: 538
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
修改so局限比较大,
其实不用这么麻烦,你再写个so就行了,作为一个stub间接调用原来的so,

Java --> stub_so --> origin_so

这样。
2015-1-10 18:39
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
这种方式刚尝试了,是可以实现。但是我还是想知道怎么直接修改so
2015-1-13 15:11
0
雪    币: 155
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
别尝试了,apk逆向首选java层,除非必要不要选择native层。

N层修改的确非常麻烦。反正结果都一样。
2015-1-14 14:58
0
雪    币: 199
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
解决了么,能直接改so文件成功么
2015-5-28 10:21
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
没有解决,没时间搞了
2015-5-29 18:18
0
游客
登录 | 注册 方可回帖
返回
//