1234下一页
返回列表 发新帖

so文件究竟是干嘛的?!

[复制链接]

11

主题

254

回帖

856

积分

高中生

Rank: 4

金币
242
好评
0
信誉
100
发表于 2019-12-3 14:55:05 来自手机  | 显示全部楼层 | 阅读模式  来自 吉林
本帖最后由 JimmyJLNU 于 2019-12-3 15:05 编辑

谁能用最通俗最清楚的语言,
告诉我so文件究竟是干嘛的?
为什么会用到so文件?
(百科上的解释太高深莫测了)
为什么so文件打开就是一堆乱码?
为什么脱壳和去效验总是离不开它们。
C语言又是神马,
我记得安卓都是用java语言写的啊。。。。。。
(不过好像现在还有kotlin哈~
只不过转换成smali,合并为dex而已。
突然又冒出来个C语言,又是怎么回事儿?
回复

使用道具 举报

31

主题

4639

回帖

1万

积分

博士生

常常被打人员

Rank: 7Rank: 7Rank: 7

金币
1252
好评
28
信誉
145

MT论坛帅哥考神MT论坛最佳新人MT论坛新人MT论坛活跃会员

QQ
发表于 2019-12-3 15:00:09 来自手机  | 显示全部楼层  来自 广东
你猜
回复

使用道具 举报

45

主题

5859

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
5314
好评
38
信誉
100

考神

发表于 2019-12-3 21:40:42 来自手机  | 显示全部楼层  来自 江苏
跟Dex文件的用途一样
回复

使用道具 举报

11

主题

1083

回帖

4085

积分

大学生

Rank: 5Rank: 5

金币
1500
好评
2
信誉
101

MT论坛帅哥

发表于 2019-12-3 21:41:54 来自手机  | 显示全部楼层  来自 江苏
我也不知道
回复

使用道具 举报

45

主题

5859

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
5314
好评
38
信誉
100

考神

发表于 2019-12-3 21:42:27 来自手机  | 显示全部楼层  来自 江苏
Dex能做什么、它也能做
回复

使用道具 举报

28

主题

1504

回帖

4805

积分

大学生

神话

Rank: 5Rank: 5

金币
2077
好评
16
信誉
101
QQ
发表于 2019-12-4 21:59:00 来自手机  | 显示全部楼层  来自 四川
混合编程可以用c一起
回复

使用道具 举报

11

主题

254

回帖

856

积分

高中生

Rank: 4

金币
242
好评
0
信誉
100
发表于 2019-12-9 12:20:19 来自手机  | 显示全部楼层  来自 吉林
怎么没人留言了?
回复

使用道具 举报

0

主题

90

回帖

768

积分

初中生

Rank: 3Rank: 3

金币
97
好评
1
信誉
100
发表于 2019-12-9 13:10:14 来自手机  | 显示全部楼层  来自 辽宁
你猜,猜不出来?那你再好好想想。
回复

使用道具 举报

1

主题

637

回帖

1654

积分

高中生

Rank: 4

金币
243
好评
1
信誉
100
QQ
发表于 2019-12-10 11:36:17 来自手机  | 显示全部楼层  来自 湖南
金币加一。。。。。。。
回复

使用道具 举报

128

主题

1540

回帖

5896

积分

硕士生

Rank: 6Rank: 6

金币
1602
好评
4
信誉
101
发表于 2019-12-10 13:28:32 来自手机  | 显示全部楼层  来自 浙江
我也想知道
回复

使用道具 举报

0

主题

88

回帖

374

积分

初中生

Rank: 3Rank: 3

金币
169
好评
0
信誉
100

考神MT论坛帅哥

发表于 2019-12-10 14:40:43 来自手机  | 显示全部楼层  来自 黑龙江
so是elf格式的可执行文件,实在ndk工程中(由java与c的混合开发)中由c与c++语言用ndk方式编译的二进制可执行文件,同时可以编译为包括32位与64位的abi[armv7-aarch64],主要供dex层的loadlib调用,并参与到软件的运行,主要功能用于图文处理,加密与一些扩展功能。其有c经ndk读取后直接汇编为arm汇编供cpu读取与运行,但是so并不是必须的,因为dex也是二进制内容,可以供cpu读取与运算,进行操作,so[jni]可以用来扩展安卓程序的功能
回复

使用道具 举报

0

主题

88

回帖

374

积分

初中生

Rank: 3Rank: 3

金币
169
好评
0
信誉
100

考神MT论坛帅哥

发表于 2019-12-10 14:42:39 来自手机  | 显示全部楼层  来自 黑龙江
由于armv7是32位汇编。可以用ida和jeb3打开,可以看到相应汇编,armv8为arm的64位汇编,可以利用64位ida打开,x86和x86_64属于x86汇编与64位汇编,也可以用ida打开
回复

使用道具 举报

11

主题

254

回帖

856

积分

高中生

Rank: 4

金币
242
好评
0
信誉
100
发表于 2019-12-10 17:51:32 来自手机  | 显示全部楼层  来自 吉林
本帖最后由 JimmyJLNU 于 2019-12-10 18:20 编辑
青ۣۖิۣ枫 发表于 2019-12-10 14:40
so是elf格式的可执行文件,实在ndk工程中(由java与c的混合开发)中由c与c++语言用ndk方式编译的二进制可执行 ...


dex才是可执行文件呢,so也是吗?如果是的话,为什么不能直接运行?
因为我很清楚,每次点开手机桌面的图标,就相当于运行相关dex的主界面MainActivity。
回复

使用道具 举报

11

主题

254

回帖

856

积分

高中生

Rank: 4

金币
242
好评
0
信誉
100
发表于 2019-12-10 17:53:39 来自手机  | 显示全部楼层  来自 吉林
青ۣۖิۣ枫 发表于 2019-12-10 14:40
so是elf格式的可执行文件,实在ndk工程中(由java与c的混合开发)中由c与c++语言用ndk方式编译的二进制可执行 ...

apk没有so文件也可以正常运行啊。
为什么要有so文件呢?
有的软件有,有的软件就没有。
因为我知道APK就是一个压缩包。
天天拿mt反编译dex,去广告汉化,
所以我很清楚。
其他的文件都能改,就so文件改不了。
回复

使用道具 举报

11

主题

254

回帖

856

积分

高中生

Rank: 4

金币
242
好评
0
信誉
100
发表于 2019-12-10 18:08:35 来自手机  | 显示全部楼层  来自 吉林
本帖最后由 JimmyJLNU 于 2019-12-10 18:22 编辑
青ۣۖิۣ枫 发表于 2019-12-10 14:42
由于armv7是32位汇编。可以用ida和jeb3打开,可以看到相应汇编,armv8为arm的64位汇编,可以利用64位ida打 ...


举个最简单的例子:现在我使用的这款浏览器只有507.69K,简单纯粹,令人耳目一新;经过本人实际拆解apk,未发现任何so文件,但照样可以完成浏览功能,可是其他主流浏览器,即使是主打简约的夸克浏览器却有30M左右,里面就有很多的so文件。类似的情况还出现在百度贴吧官方客户端(贴吧极速版)和贴吧Lite第三方客户端,它们均可以实现相同功能,为什么一个版本就有so文件,另一个就没有?
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表