安卓的检测与反检测通过Method-解析为什XP之类框架重新构建后就不能检测出来
程序员文章站
2022-06-25 12:02:03
《安卓的检测与反检测 》通过检测扫描包名来获取需要的信息,这篇阐述一下方法的扫描改包名容易改方法费事要多点。方法的扫描要用到反射。有什么意义呢,只要源代码不调整顺序枚举方法名和顺序组,合运算出来哈希值,只要是这个值嗯就是你。先看一下源文件https://www.androidos.net.cn/android/8.0.0_r4/xref/libcore/ojluni/src/main/java/java/lang/Class.javapublic Method[] getMethods() throw...
《安卓的检测与反检测 》通过检测扫描包名来获取需要的信息,这篇阐述一下方法的扫描改包名容易改方法费事要多点。方法的扫描要用到反射。有什么意义呢,只要源代码不调整顺序枚举方法名和顺序组,合运算出来哈希值,只要是这个值嗯就是你。
先看一下源文件https://www.androidos.net.cn/android/8.0.0_r4/xref/libcore/ojluni/src/main/java/java/lang/Class.java
public Method[] getMethods() throws SecurityException {
List methods = new ArrayList();
getPublicMethodsInternal(methods);
/*
* Remove duplicate methods defined by superclasses and
* interfaces, preferring to keep methods declared by derived
* types.
*/
CollectionUtils.removeDuplicates(methods, Method.ORDER_BY_SIGNATURE);
return methods.toArray(new Method[methods.size()]);
}
获取的是数组形式列举出来方法代码如下:
try{
Class clas = Class.froName("xx.xxxxx.xxx");
Method[] methods = clas.getMethods();
for(Method method :methods ){
System.out.println("methodlist :" method.toString());
}
}catch(ClassNotFoundException e){
}
到这里核心已经完成,枚举了所有方法。结合《安卓的检测与反检测 》提到的包名检测。通过分析也自然就知道我只要改类名改方法名就可以避开这个检测。这个反过来想我也可以调用别人的写好的方法。
本文地址:https://blog.csdn.net/u012571756/article/details/107443789