首页
社区
课程
招聘
Android中使用System.load 和 System.loadLibrary
发表于: 2024-6-19 01:45 2463

Android中使用System.load 和 System.loadLibrary

2024-6-19 01:45
2463

System.load 和 System.loadLibrary 除了使用时有点小区别,还有没有其他特征区别?
因为我发现某些游戏检测里,在注入某个so时,使用System.load会被检测,而使用System.loadLibrary注入则正常(以前做360加固的过签也遇到过)
有人研究过吗?


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 3443
活跃值: (14163)
能力值: ( LV9,RANK:230 )
在线值:
发帖
回帖
粉丝
2
本质上load是可以加载任意路径,已经被弃掉了,loadlib是加载data/app/lib下面的。

loadlib底层有一个nativeload的方法,直接反射调用这个方法就可以,实现和load类似 。

但是这块还有一个细节,需要传入一个classloader,每个so也有自己的classloader , 这个classloader 一般默认的都是,比如你在A.class 类里面加载,这个so的classloader就是A类的classloader .
直接使用nativeload的话,需要注意这个classloader问题,比如你在xposed里面注入的话 。

他走的就是你xposed的classloader , 你也只能反射你xposed里面的类 。可以看看我之前写的xposed去注入so,这两个函数的实现细节。
2024-6-19 10:27
5
雪    币: 1994
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3

如果zip里的so没有压缩且4k对齐,加载后在maps里显示的就是zip路径而不是so路径。System.loadLibrary没检测出来大概率是设置了android:extractNativeLibs="false",加载后在maps中显示的就是当前apk的路径

最后于 2024-6-19 16:55 被Eirv编辑 ,原因:
2024-6-19 16:52
0
游客
登录 | 注册 方可回帖
返回
//