secure-software-engineering / android-instrumentation-tutorial

10 stars 11 forks source link

android-instrumentation-tutorial

The VM will be provided at the workshop! You do not have to download anything in advance!

Program instrumentation is a widely used mechanism in different software engineering areas. It can be used for creating profilers and debuggers, for detecting programming errors at runtime, or for securing programs through inline reference monitoring. This is a tutorial on instrumenting Android applications using Soot and the AspectBench compiler (abc). We show how two well- known monitoring languages –Tracematches and AspectJ– can be used for instrumenting Android applications. Furthermore, we also describe the more flexible approach of manual imperative instrumentation directly using Soot’s intermediate representation Jimple. In all three cases no source code of the target application is required.