Smalien is an information flow analysis and information leakage detection tool for Android application analysts. Smalien performs static taint analysis of Android applications on a Linux machine as well as dynamic taint analysis, detection of information leakage due to implicit information flows, and privacy policy enforcement on an Android device at runtime.
Note: New version of Smalien is now available at SaitoLab-Nitech/VTDroid !!
- Analyzing an Android application statically and gathers information of classes, methods, variables, etc.
- Presenting the results of the analysis graphically such as a method call graph and an information flow diagram.
- Performing dynamic taint analysis on an Android device.
- Enforcing privacy policy specified by an analyst.
- Detecting information leakage due to implicit information flows.
- Logging actual information operated by any bytecode or API call, such as http request, at runtime to encourage an analyst in his/her inspection.
Currently, we are working on another branch, demo-master. Please check it out to get programs that we have used at the Arsenal.
- Apktool
- jarsigner
- keytool
- adb
Check our Wiki for full instructions.
python main.py <apk_path>
It generates parsed_data.json and data_flows.json as the results.
python generate_graphs.py parsed_data.json data_flows.json
It generates output_class_calls.md and output_data_flows.md as the results. These files includes scripts for mermaid. You may use a markdown viewer such as Haroopad to check the graphs.
New apk file implanted.apk is placed in smalien/hive/workspace/. Install it to your Android device by following command and run it.
adb install -g hive/workspace/implanted.apk
Currently, Smalien is a prototype of our academic research and doesn't have full-function. We are working on it!