吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 901|回复: 3
收起左侧

[Android 讨论] System.load 和 System.loadLibrary的检测

[复制链接]
回不去的时光 发表于 2024-6-19 01:49
System.load 和 System.loadLibrary 除了使用时有点小区别,还有没有其他特征区别?
因为我发现某些游戏检测里,在注入某个so时,使用System.load会被检测,而使用System.loadLibrary注入则正常(以前做360加固的过签也遇到过)
有人研究过吗?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

debug_cat 发表于 2024-6-19 09:26
跟踪了Android12的代码,他们2个函数最后都会调用nativeLoad这个函数,但是参数不一样。
load:
[Java] 纯文本查看 复制代码
String error = nativeLoad(filename, fromClass.getClassLoader());

后者是:
[Java] 纯文本查看 复制代码
String error = nativeLoad(filename, loader, callerClass);


也就是callerClass多了这个。
https://aosp.app/android-12.0.0_ ... g/Runtime.java#1086
但是最后他们都是调用了同一个函数:
[Java] 纯文本查看 复制代码
1120      private static String nativeLoad(String filename, ClassLoader loader) {
1121          return nativeLoad(filename, loader, null);
1122      }
1123  
1124      private static native String nativeLoad(String filename, ClassLoader loader, Class<?> caller);



nativeLoad三个参数的,只不过load函数传递了caller为null。

至于区别,就要到c++里面看实现了。

https://aosp.app/android-12.0.0_ ... native/Runtime.c#80
这里就是:
[C++] 纯文本查看 复制代码
JVM_NativeLoad(env, javaFilename, javaLoader, caller);


如果继续挖,就只能追JVM_NativeLoad这个函数。根据这个思路一直往下追就可以了。我要搬砖了。
 楼主| 回不去的时光 发表于 2024-6-19 13:40
debug_cat 发表于 2024-6-19 09:26
跟踪了Android12的代码,他们2个函数最后都会调用nativeLoad这个函数,但是参数不一样。
load:
[mw_shl_ ...

感谢大佬,膜拜下
lazycat6833 发表于 2024-6-19 16:51
插个眼, 最近也在学习native层的知识,感谢各位大佬
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-21 19:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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