ADD file via upload
This commit is contained in:
parent
540490365b
commit
1003bfcf28
|
@ -0,0 +1,55 @@
|
|||
package com.nii.soot.CFGCamera2Analyser;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
import soot.*;
|
||||
import soot.jimple.InvokeExpr;
|
||||
import soot.jimple.InvokeStmt;
|
||||
import soot.options.Options;
|
||||
|
||||
public class Checker2 {
|
||||
|
||||
// private final static String androidJAR = "D:\\Android\\Android SDK\\platforms";
|
||||
// private final static String appApk = "C:\\Users\\32082\\Desktop\\soot\\soot-android-static-analysis-master\\apk\\F-droid\\pins.apk";
|
||||
|
||||
public static void main(String[] args) {
|
||||
// 设置 Soot 的配置
|
||||
Options.v().set_src_prec(Options.src_prec_apk);
|
||||
Options.v().set_android_jars("D:\\Android\\Android SDK\\platforms");
|
||||
Options.v().set_process_dir(Collections.singletonList("C:\\Users\\32082\\Desktop\\soot\\soot-android-static-analysis-master\\apk\\F-droid\\CameraAlign.apk"));
|
||||
|
||||
|
||||
Options.v().set_allow_phantom_refs(true);
|
||||
Options.v().set_prepend_classpath(true);
|
||||
// Options.v().set_validate(true);
|
||||
|
||||
// 初始化 Soot
|
||||
Scene.v().loadNecessaryClasses();
|
||||
|
||||
// 遍历所有类
|
||||
for (SootClass sootClass : Scene.v().getApplicationClasses()) {
|
||||
// 遍历类中的所有方法
|
||||
for (SootMethod method : sootClass.getMethods()) {
|
||||
try {
|
||||
Body body = method.retrieveActiveBody();
|
||||
|
||||
// 遍历方法中的所有语句
|
||||
for (Unit unit : body.getUnits()) {
|
||||
if (unit instanceof InvokeStmt) {
|
||||
InvokeExpr invokeExpr = ((InvokeStmt) unit).getInvokeExpr();
|
||||
if (invokeExpr.getMethod().getSignature().contains("camera2")) {
|
||||
// 找到 camera2 的引用,处理结果
|
||||
System.out.println("Found camera2-related code in method: " + method);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (RuntimeException e) {
|
||||
// System.out.println("无法分析方法: " + method);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue