用jadx逆向某app为java代码时遇到个奇怪的类
import anet.channel.entity.ConnType;
各种搜索也不确定是什么用的,最后大概确定是阿里开发的跟网络相关的库,大部分用在国内阿里系的产品上。
但还有个问题就是发现
//忽略语法
import anet.channel.entity.ConnType;
String str = ConnType.PK_AUTO;
parameters.setPreviewSize(previewSize.width, previewSize.height);
List<String> supportedFocusModes = parameters.getSupportedFocusModes();
if (supportedFocusModes != null) {
if (!supportedFocusModes.contains(str)) {
if (supportedFocusModes.contains("continuous-picture")) {
str = "continuous-picture";
} else if (supportedFocusModes.contains("continuous-video")) {
str = "continuous-video";
}
getSupportedFocusModes()
本应该是android自带的关于相机的method,竟然会和
ConnType.PK_Auto
扯上关系,查询Android开发者文档发现有类似参数
FOCUS_MODE_AUTO
接着又在
com.google.android.gms.measurement.internal
类中也发现import了anet相关的类,同样是
private static final List<String> zzc = Arrays.asList(new String[]{ConnType.PK_AUTO, "app", "am"});
,觉得有点蹊跷
最后只能查看smali代码,找到对应的地方,发现
ConnType.PK_AUTO
对应
const-string v0, "auto"
,两个都是这样,而且smali代码也搜不到anet相关的。
因此推测就是jadx把
"auto"
关联到
ConnType.PK_AUTO
上了,并且自动添加了
import anet.channel.entity.ConnType;
总结
jadx逆向apk得到的java虽然方便些,但可靠性还得是smali,而且jadx经常处理不了switch结构