[Soot-list] Generating Android APK CallFlowGraph

arashalavi29m at gmail.com arashalavi29m at gmail.com
Mon Jun 13 19:52:22 EDT 2016


Hi all,

I am using the code that Modhi posted but I get this error:

Exception in thread "main" java.lang.Error: Unresolved compilation 
problems: 
    The type 
soot.jimple.infoflow.entryPointCreators.AndroidEntryPointCreator cannot be 
resolved. It is indirectly referenced from required .class files
    The method getEntryPointCreator() from the type SetupApplication refers 
to the missing type AndroidEntryPointCreator

Any idea how to resolve that?

Thanks

On Saturday, July 5, 2014 at 10:34:49 AM UTC-7, Modhi Alsobiehy wrote:
>
> Hi all,
> I need to traverse the call flow graph of android apps( apk files).
> I understand that I must set an entry point so to start, I tried the 
> following code :
>
>
> ----------------------------------------------------------------------------------------------------
>
> *mport* java.io.IOException;
>
> *import* java.util.Collections;
>
> *import* org.xmlpull.v1.XmlPullParserException;
>
> *import* soot.PackManager;
>
> *import* soot.Scene;
>
> *import* soot.SootMethod;
>
> *import* soot.jimple.infoflow.android.SetupApplication;
>
> *import* soot.options.Options;
>
> *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(
> "D:/AndroidADT/adt-bundle-windows-x86_64-20131030/sdk/platforms",
> "D:/APKs/location.apk");
>
> *try* {
>
> app.calculateSourcesSinksEntrypoints("D:/FlowDroid/SourcesAndSinks.txt");
>
> } *catch* (IOException e) {
>
> // *TODO* Auto-generated catch block
>
> e.printStackTrace();
>
> } *catch* (XmlPullParserException 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*(
> "D:/APKs/location.apk"));
>
> Options.*v*().set_android_jars(
> "D:/AndroidADT/adt-bundle-windows-x86_64-20131030/sdk/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());
>
> }
>
> }
>
>
> ---------------------------------------------------------------------------------------------------------------------
>
> Unfortunately, I am getting the following error:
>
> Exception in thread "main" java.lang.NoClassDefFoundError: 
> pxb/android/axml/NodeVisitor
>
> at soot.jimple.infoflow.android.manifest.ProcessManifest.handle(Unknown 
> Source)
>
> at soot.jimple.infoflow.android.manifest.ProcessManifest.<init>(Unknown 
> Source)
>
> at soot.jimple.infoflow.android.manifest.ProcessManifest.<init>(Unknown 
> Source)
>
> at 
> soot.jimple.infoflow.android.SetupApplication.calculateSourcesSinksEntrypoints(Unknown 
> Source)
>
> at 
> soot.jimple.infoflow.android.SetupApplication.calculateSourcesSinksEntrypoints(Unknown 
> Source)
>
> at apkCFG.CFG.main(*CFG.java:25*)
>
> Caused by: *java.lang.ClassNotFoundException*: 
> pxb.android.axml.NodeVisitor
>
> at java.net.URLClassLoader$1.run(Unknown Source)
>
> at java.net.URLClassLoader$1.run(Unknown Source)
>
> at java.security.AccessController.doPrivileged(*Native Method*)
>
> at java.net.URLClassLoader.findClass(Unknown Source)
>
> at java.lang.ClassLoader.loadClass(Unknown Source)
>
> at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
>
> at java.lang.ClassLoader.loadClass(Unknown Source)
>
> ... 6 more
>
>
> Any help or advise on how to do that would be deeply appreciated!
>
> Thanx!!
>
>
> Sent from Windows Mail
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20160613/e6b92011/attachment-0003.html 


More information about the Soot-list mailing list