[Soot-list] Soot Class not founded creating dummy Main
Tanzirul Azim
tanzir.buet at gmail.com
Tue Jul 26 03:08:16 EDT 2016
Hi,
I am trying to get the CG for an APK using soot programmatically. But for every APK each time doing the CG creation in Eclipse I am encountering the error for my complete code:
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import org.xmlpull.v1.XmlPullParserException;
import soot.*;
import soot.jimple.infoflow.android.SetupApplication;
import soot.jimple.toolkits.callgraph.CallGraph;
import soot.options.Options;
import soot.toolkits.graph.ExceptionalUnitGraph;
import soot.util.Chain;
//import oracle.jrockit.jfr.Options;
public class TestInside {
//@SuppressWarnings("deprecation")
public static void main(String[] args) {
// TODO Auto-generated method stub
soot.G.reset();
Options.v().set_keep_line_number(true);
Options.v().set_src_prec(Options.src_prec_apk);
Options.v().set_process_dir(Collections.singletonList(Constants.APK_PATH));
Options.v().set_android_jars(Constants.PLATFORM_PATH);
Options.v().set_whole_program(true);
Options.v().set_allow_phantom_refs(true);
Options.v().set_keep_line_number(true);
Options.v().set_allow_phantom_refs(true);
List <String> list = new ArrayList<>();
list.add(Constants.APK_PATH);
Options.v().set_process_dir(Collections.singletonList(Constants.APK_PATH));
Options.v().set_output_format(Options.output_format_none);
Options.v().setPhaseOption("cg.spark verbose:true", "on");
Scene.v().loadNecessaryClasses();
SetupApplication app = new SetupApplication(Constants.PLATFORM_PATH, Constants.APK_PATH);
try {
app.calculateSourcesSinksEntrypoints(Constants.SOURCE_SINK_PATH);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//
SootMethod entryPoint = app.getEntryPointCreator().createDummyMain();
Options.v().set_main_class(entryPoint.getSignature());
Scene.v().setEntryPoints(Collections.singletonList(entryPoint));
System.out.println(entryPoint.getActiveBody());
PackManager.v().runPacks();
System.out.println(Scene.v().getCallGraph().size());
CallGraph cg = Scene.v().getCallGraph();
//app.runInfoflow();
}
}
Exception in thread "main" soot.SootResolver$SootClassNotFoundException: couldn't find class: com.dictionary.paid.Serp (is your soot-class-path set properly?)
I would like to know what things are messed up here. The error occurs in the line where I call createDummyMain()
--
Tanzirul Azim
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20160726/ec47572c/attachment.html
More information about the Soot-list
mailing list