[Soot-list] Generating Android APK CallFlowGraph

Modhi Alsobiehy m99m20 at hotmail.com
Wed Jul 9 10:01:56 EDT 2014


Thanx a lot Stefan it is working now..


Best,

Modhi






Sent from Windows Mail





From: Stefan Gommer
Sent: ‎Wednesday‎, ‎July‎ ‎9‎, ‎2014 ‎8‎:‎04‎ ‎AM
To: Modhi Alsobeihy




Hi Modhi,



just put the AndroidCallbacks.txt file to your main project directory (the same directory the bin and src folders are).




Cheers,

Stefan




Am 09.07.2014 um 14:17 schrieb Modhi Alsobiehy <m99m20 at hotmail.com>:




Hi Steven, thanks for responding!

I have been trying to add it but could not figure it out!

would you please clarify what method is associated with it?




Thanx again!






Sent from Windows Mail




From: Steven Arzt
Sent: ‎Tuesday‎, ‎July‎ ‎8‎, ‎2014 ‎2‎:‎25‎ ‎AM
To: Modhi Alsobeihy, soot-list at CS.McGill.CA, soot-list at sable.mcgill.ca






Hi Modhi,

 

You are missing the AndroidCallbacks.txt file which defines the callback interfaces there are in Android. You can obtain it from:

 

https://raw.githubusercontent.com/secure-software-engineering/soot-infoflow-android/develop/AndroidCallbacks.txt

 

Best regards,

  Steven

 



Von: soot-list-bounces at CS.McGill.CA [mailto:soot-list-bounces at CS.McGill.CA] Im Auftrag von Modhi Alsobiehy
Gesendet: Dienstag, 8. Juli 2014 03:51
An: soot-list at CS.McGill.CA; soot-list at sable.mcgill.ca
Betreff: Re: [Soot-list] Generating Android APK CallFlowGraph

 



Problem resolved! some jars were added twice with different paths!


however now another error appeared!


 


Exception in thread "main" java.lang.RuntimeException: Callback definition file not found


at soot.jimple.infoflow.android.AnalyzeJimpleClass.loadAndroidCallbacks(Unknown Source)

at soot.jimple.infoflow.android.AnalyzeJimpleClass.<init>(Unknown Source)

at soot.jimple.infoflow.android.SetupApplication.calculateCallbackMethods(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)

I checked the classes and these methods don’t appear in the browser tab, I tried another nightly build jars and still having the same error!

any idea how to resolve this issue??

Thank you!

 



 


Sent from Windows Mail


 


From: Modhi Alsobeihy
Sent: ‎Saturday‎, ‎July‎ ‎5‎, ‎2014 ‎12‎:‎34‎ ‎PM
To: soot-list at CS.McGill.CA, soot-list at sable.mcgill.ca


 



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


 
_______________________________________________
Soot-list mailing list
Soot-list at CS.McGill.CA
https://mailman.CS.McGill.CA/mailman/listinfo/soot-list
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20140709/727775d9/attachment-0003.html 


More information about the Soot-list mailing list