[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