Advertisement
Guest User

Untitled

a guest
Mar 2nd, 2015
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. import java.io.IOException;
  2. import java.util.Collections;
  3. import soot.PackManager;
  4. import soot.Scene;
  5. import soot.SootMethod;
  6. import soot.options.Options;
  7. import soot.jimple.infoflow.android.SetupApplication;
  8.  
  9. public class CFG {
  10.  
  11. public CFG() {
  12. // TODO Auto-generated constructor stub
  13. }
  14.  
  15. public static void main(String[] args) {
  16. // TODO Auto-generated method stub
  17.  
  18. SetupApplication app = new SetupApplication("/home/user/Documents/android-sdk-linux/platforms",
  19. "/home/user/common.apk");
  20. try {
  21. app.calculateSourcesSinksEntrypoints("/home/trance/tools/soot-infoflow-android/SourcesAndSinks.txt");
  22. } catch (IOException e) {
  23. // TODO Auto-generated catch block
  24. e.printStackTrace();
  25. } catch (Exception e) {
  26. // TODO Auto-generated catch block
  27. e.printStackTrace();
  28. }
  29. soot.G.reset();
  30. Options.v().set_src_prec(Options.src_prec_apk);
  31. Options.v().set_process_dir(Collections.singletonList("/home/user/common.apk"));
  32. Options.v().set_android_jars("/home/user/Documents/android-sdk-linux/platforms");
  33. Options.v().set_whole_program(true);
  34. Options.v().set_allow_phantom_refs(true);
  35. Options.v().set_output_format(Options.output_format_none);
  36. Options.v().setPhaseOption("cg.spark", "on");
  37. Scene.v().loadNecessaryClasses();
  38. SootMethod entryPoint = app.getEntryPointCreator().createDummyMain();
  39. Options.v().set_main_class(entryPoint.getSignature());
  40. Scene.v().setEntryPoints(Collections.singletonList(entryPoint));
  41. System.out.println(entryPoint.getActiveBody());
  42. PackManager.v().runPacks();
  43. System.out.println(Scene.v().getCallGraph().size());
  44. }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement