Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.IOException;
- import java.util.Collections;
- import soot.PackManager;
- import soot.Scene;
- import soot.SootMethod;
- import soot.options.Options;
- import soot.jimple.infoflow.android.SetupApplication;
- public class CFG {
- public CFG() {
- // TODO Auto-generated constructor stub
- }
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- SetupApplication app = new SetupApplication("/home/user/Documents/android-sdk-linux/platforms",
- "/home/user/common.apk");
- try {
- app.calculateSourcesSinksEntrypoints("/home/trance/tools/soot-infoflow-android/SourcesAndSinks.txt");
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- soot.G.reset();
- Options.v().set_src_prec(Options.src_prec_apk);
- Options.v().set_process_dir(Collections.singletonList("/home/user/common.apk"));
- Options.v().set_android_jars("/home/user/Documents/android-sdk-linux/platforms");
- Options.v().set_whole_program(true);
- Options.v().set_allow_phantom_refs(true);
- Options.v().set_output_format(Options.output_format_none);
- Options.v().setPhaseOption("cg.spark", "on");
- Scene.v().loadNecessaryClasses();
- 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());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement