I am working on a project to construct Call Graph of Android applications (in APKs) with SPARK transformation for Pointer Analysis. For the Pointer Analysis to be accurate, reflective calls inside the apk needs to be also considered. Thus I came across DroidRA tool that can be used to create boosted version of APKs that has reflective calls instrumented inside them.
On most of the APKs, init(...) method in the main() method of the DroidRA source code could successfully generate the DummyMainClass along with its dummy main() method. However, when reflectionAnalysis() method runs, DummyMainClass mysteriously disappears from the Scene.v(), showing the following error message:
Using the same DroidRA source code, I could successfully instrument and create boosted versions of a very small minority of the APKs in my dataset. With those APKs, I could observe, using breakpoints, that the DummyMainClass do not disappear when the reflectionAnalysis() method runs. However, I believe that something - possibly a tweak in options or some arguments - could be done to make it work more consistently.
Is there any special options/arguments in DroidRA that I could explore or is there any necessary updates needed to be made to the source code to analyze latest APKs since it has been a handful of years since the source code was last updated?
Aucun commentaire:
Enregistrer un commentaire