Static Analysis of Android Apps Using Soot
Related Work
There are some previous works were done on this fields but all are yet to be conclusive to fully analysis android application. Some of the research that follows parital analysis works are:
Flow Droid: It is a context-sensitive, flow-based, field-based, object-sensitive, and lifecycle aware static taint analysis tool for java as well as android programming. Unlike many other static-analysis approaches for android it aims for an analysis with very high recall and accuracy of android programs To achieve the main goal it accomplished two main challenges as increase in precision and builds an analysis that is context-, flow-, field- and object-sensitive; to increase recall It create a complete model of program lifecycle.
However, the analysis [10] uses the application instrumentation tools such as Soot and Heros. The Flow Droid uses a very precise call graph which helps us to ensure flow-sensitive and context-sensitivity. Its IFDS-based flow functions guarantee field and object sensitivity. As a result of the highly precise and efficient alias, the procedure for searching is crucial for contextsensitivity in conjunction with field-sensitivity.
Inter-procedural Analysis: While analyzing the resemblance of the efficiency and effectiveness for the inter-procedural class analysis based on the Cartesian product algorithm and profileguided class which are predicted for the optimizing self-program[8].
But it is the fact that it has very little difference in term of the outcome or performance among the three configurations optimization i.e. using only profile-guided class prediction, using only inter-procedural class analysis, and using both techniques [8].
Iterative algorithms: As of now, the main iterative algorithm that has really been executed is Plevyak's iterative algorithms [9]. Various papers proposing new call graph generating calculations have exactly surveyed the adequacy of their calculation by executing them in an improving compiler and utilizing the subsequent control flow graph to perform at least one or more inter-procedural analyses
Soot
Soot [1] was created at McGill University as a java compiler, further developed and become an android static analysis and transformation tool. Soot can be used for multiple tasks i.e. code analyze, transformation of java programs or android apps, instrumentation of an android apps, check that certain properties hold or guarantee correctness of programs.
Multiple tools based on Soot have been developed to perform transformations such as translation of Java to C, instrumentation of android apps or java programs, obfuscator for Java, software watermarking, Soot accepts Java source code, Java bytecode and Jimple source code as input files[1].
Any input format is converted into Soot’s internal representation: Jimple, Baf Grimph and Shimple. Java SIMPLE, is a stack-less, three address representation which features only 15 instructions. Any method code can be viewed as a graph of Jimple statements associated with a list of Jimple local variables.
Dalivk bytecode
Android uses Dalvik Virtual Machine [2, 3] as a main component which is a kind of Java Virtual Machine specially designed and optimized for Android applications. The Dalvik VM makes uses features like memory management and multi-threading, which is intrinsic in the Java language from Linux core system.
The Dalvik VM enables every Android application to run in its own process, with its own instance of the Dalvik virtual machine. Android application developers write Android applications using standard Java programming language with the set of core libraries, which enabled by the Android runtime.
No comments:
Post a Comment