Skip to content

Commit

Permalink
bug fix
Browse files Browse the repository at this point in the history
  • Loading branch information
hanada31 committed Jan 26, 2024
1 parent 9f7aca5 commit 8d9e981
Show file tree
Hide file tree
Showing 19 changed files with 453 additions and 362 deletions.
31 changes: 16 additions & 15 deletions CrashTracker/src/main/java/com/iscas/crashtracker/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -189,25 +189,26 @@ private static void analyzeArgs(CommandLine mCmd) {
MyConfig.getInstance().setOutputIR(true);
}

if(mCmd.getOptionValue("frameworkVersion")!=null) {
if(mCmd.getOptionValue("frameworkVersion")!=null)
MyConfig.getInstance().setAndroidOSVersion(mCmd.getOptionValue("frameworkVersion"));
String appName = MyConfig.getInstance().getAppName();
String exceptionFolder = MyConfig.getInstance().getResultFolder() + File.separator + appName + File.separator;
if(mCmd.getOptionValue("client").equals("ExceptionInfoClient")){
MyConfig.getInstance().setPermissionFilePath(exceptionFolder + "Permission" + File.separator + "permission.txt");
MyConfig.getInstance().setExceptionFilePath(exceptionFolder + "exceptionInfo" + File.separator);
MyConfig.getInstance().setAndroidCGFilePath(exceptionFolder + "CallGraphInfo" + File.separator + "cg.txt");
MyConfig.getInstance().setMethodInfoFilePath(exceptionFolder+"CodeInfo"+File.separator+"methodInfo.json");

}else {
MyConfig.getInstance().setPermissionFilePath(mCmd.getOptionValue("permissionPath", exceptionFolder + "Permission" + File.separator + "permission.txt"));
MyConfig.getInstance().setExceptionFilePath(mCmd.getOptionValue("exceptionPath", exceptionFolder + "exceptionInfo" + File.separator));
MyConfig.getInstance().setAndroidCGFilePath(mCmd.getOptionValue("androidCGPath", exceptionFolder + "CallGraphInfo" + File.separator + "cg.txt"));
MyConfig.getInstance().setMethodInfoFilePath(mCmd.getOptionValue("CodeInfoPath", exceptionFolder + "CodeInfo" + File.separator + "methodInfo.json"));
String appName = MyConfig.getInstance().getAppName();
String exceptionFolder = MyConfig.getInstance().getResultFolder() + File.separator + appName + File.separator;
if(mCmd.getOptionValue("client").equals("ExceptionInfoClient")){
MyConfig.getInstance().setPermissionFilePath(exceptionFolder + "Permission" + File.separator + "permission.txt");
MyConfig.getInstance().setExceptionFilePath(exceptionFolder + "exceptionInfo" + File.separator);
MyConfig.getInstance().setAndroidCGFilePath(exceptionFolder + "CallGraphInfo" + File.separator + "cg.txt");
MyConfig.getInstance().setMethodInfoFilePath(exceptionFolder+"CodeInfo"+File.separator+"methodInfo.json");

}else {
MyConfig.getInstance().setPermissionFilePath(mCmd.getOptionValue("permissionPath", exceptionFolder + "Permission" + File.separator + "permission.txt"));
MyConfig.getInstance().setExceptionFilePath(mCmd.getOptionValue("exceptionPath", exceptionFolder + "exceptionInfo" + File.separator));
// System.err.println("qq "+MyConfig.getInstance().getExceptionFilePath());
MyConfig.getInstance().setAndroidCGFilePath(mCmd.getOptionValue("androidCGPath", exceptionFolder + "CallGraphInfo" + File.separator + "cg.txt"));
MyConfig.getInstance().setMethodInfoFilePath(mCmd.getOptionValue("CodeInfoPath", exceptionFolder + "CodeInfo" + File.separator + "methodInfo.json"));

}
}


String limit = mCmd.getOptionValue("conditionLimit");
if (limit != null) {
switch(limit) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.iscas.crashtracker.model.analyzeModel.AppModel;

public class Global {
private int exceptionCount = 0;
private static final Global instance = new Global();
private AppModel appModel;
/**
Expand All @@ -28,4 +29,12 @@ public AppModel getAppModel() {
public void setAppModel(AppModel appModel) {
this.appModel = appModel;
}

public int getExceptionCount() {
return exceptionCount;
}

public void addExceptionCount() {
this.exceptionCount++;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ protected void clientAnalyze() {
@Override
public void clientOutput() {
/** call graph, if needed, open output**/
// String summary_app_dir = MyConfig.getInstance().getResultFolder() + Global.v().getAppModel().getAppName()
// + File.separator;
// FileUtils.createFolder(summary_app_dir + ConstantUtils.CGFOLDETR);
// CgClientOutput.writeCG(summary_app_dir + ConstantUtils.CGFOLDETR,
// Global.v().getAppModel().getAppName()+"_cg.txt", Global.v().getAppModel().getCg());
String summary_app_dir = MyConfig.getInstance().getResultFolder() + Global.v().getAppModel().getAppName()
+ File.separator;
FileUtils.createFolder(summary_app_dir + ConstantUtils.CGFOLDETR);
CgClientOutput.writeCG(summary_app_dir + ConstantUtils.CGFOLDETR,
Global.v().getAppModel().getAppName()+"_cg.txt", Global.v().getAppModel().getCg());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,11 @@ protected void clientAnalyze() {

@Override
public void clientOutput() {
// String summary_app_dir = MyConfig.getInstance().getResultFolder() + Global.v().getAppModel().getAppName()
// + File.separator;
// FileUtils.createFolder(summary_app_dir + ConstantUtils.CGFOLDETR);
// CgClientOutput.writeCG(summary_app_dir + ConstantUtils.CGFOLDETR,
// Global.v().getAppModel().getAppName()+"_cg.txt", Global.v().getAppModel().getCg());
String summary_app_dir = MyConfig.getInstance().getResultFolder() + Global.v().getAppModel().getAppName()
+ File.separator;
FileUtils.createFolder(summary_app_dir + ConstantUtils.CGFOLDETR);
CgClientOutput.writeCG(summary_app_dir + ConstantUtils.CGFOLDETR,
Global.v().getAppModel().getAppName()+"_cg.txt", Global.v().getAppModel().getCg());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.iscas.crashtracker.base.MyConfig;
import com.iscas.crashtracker.client.BaseClient;
import com.iscas.crashtracker.client.cg.cgApk.CallGraphofApkClient;
import com.iscas.crashtracker.client.exception.ExceptionAnalyzer;
import com.iscas.crashtracker.client.soot.SootAnalyzer;
import com.iscas.crashtracker.utils.FileUtils;
import lombok.extern.slf4j.Slf4j;
Expand All @@ -31,6 +32,7 @@ protected void clientAnalyze() {
new CallGraphofApkClient().start();
MyConfig.getInstance().setCallGraphAnalyzeFinish(true);
}

log.info("Start analyze with CrashAnalysisClient.");
Analyzer analyzer = new CrashAnalysis();
analyzer.analyze();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,7 @@ public BuggyCandidate(String candi, String candidateSig, int score){
}

public void addReasonTrace(JSONObject reason) {
if(reasonTrace.contains(reason.toJSONString()))
return;
//
reasonTrace.add(reason.toJSONString());
reasons.add(reason);
}
Expand Down
Loading

0 comments on commit 8d9e981

Please sign in to comment.