secure-software-engineering / android-instrumentation-tutorial

10 stars 11 forks source link

Difficulty occurred when continuing with the example #1

Open maldil opened 6 years ago

maldil commented 6 years ago

Thank you very much for giving this detailed example about android application instrumentation.

I need a help to figure out a problem when continuing with the the example. This is what I am trying The following exception fired when I call the method PackManager.v().runPacks();

java.lang.RuntimeException: no active body present for method <android.app.Activity: void <clinit>()> at soot.SootMethod.getActiveBody(SootMethod.java:332) at soot.toolkits.scalar.ConstantInitializerToTagTransformer.transformClass(ConstantInitializerToTagTransformer.java:88) at soot.PackManager.runPacksNormally(PackManager.java:464) at soot.PackManager.runPacks(PackManager.java:384)

This fires even before invoking the callback internalTransform. Could you please kindly help me to figure this out.

maldil commented 6 years ago

Since I am eager to find a solution for this, @ericbodden @nguyenLisa will you be able to looking to this matter ? At least, can you please provide a generalize answer for this ? Even though I catch the exception, the callback internalTransform was not invoked.

maldil commented 6 years ago

The problem here is, calling 'Soot.getAnalyzer().constructCallgraph()`. This should not be called, if you call the method PackManager.v().runPacks(). The source was helped to understand this. Thanks for the description. The changed application was created successfully. Thanks for the example as well.