欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

安卓的检测与反检测通过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