Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Running TaintDroid from the command line and analyze output

branch: master
README
This directory contains a prototype called TaintDroid Runner.

Goal of the TaintDroid Runner is to automatically run Android applications in an
emulated TaintDroid 2.3 environment and analyze their behavior.
To use the TaintDroid Runner you also need the modified TaintDroid 2.3 sources. How 
to get and build them can be found on 
https://sites.google.com/site/taintdroid23/.

The TaintDroidRunner is written in Python and comes with its main file 
taintdroid_runner.py and a bunch of helper files.


################################################################################
#
# Copyright (c) 2011-2012, Daniel Baeumges (dbaeumges@googlemail.com)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
################################################################################

Log files:
----------
* without options:
** log: no file
** logcat: yyyyMMdd-HHmm_<apkname>_logcat.log

* with logPathSuffix:
** log: no file 
** logcat: <logPathSuffix>_yyyyMMdd-HHmm/<apkname>_logcat.log

* with storeLogInFile:
** log (main): yyyyMMdd-HHmm_taintdroid_runner_main_log.log
** log (app): yyyyMMdd-HHmm_<apkname>_log.log
** logcat: yyyyMMdd-HHmm_<apkname>_logcat.log

* with storeLogInFile and logPathSuffix
** log (main): <logPathSuffix>_yyyyMMdd-HHmm/taintdroid_runner_main_log.log
** log (app): <logPathSuffix>_yyyyMMdd-HHmm/<apkname>_log.log
** logcat: <logPathSuffix>_yyyyMMdd-HHmm/<apkname>_logcat.log

* report mode
** log (main): <reportPathSuffix>_yyyyMMdd-HHmm/taintdroid_runner_main_log.log
** log (app): <reportPathSuffix>_yyyyMMdd-HHmm/<apkname>_log.log
** logcat: <reportPathSuffix>_yyyyMMdd-HHmm/<apkname>_logcat.log
** html (main): <reportPathSuffix>_yyyyMMdd-HHmm/report.html
** html (app): <reportPathSuffix>_yyyyMMdd-HHmm/report_app_<id>.html

* json mode
** log (main): <reportPathSuffix>_yyyyMMdd-HHmm/taintdroid_runner_main_log.log
** log (app): <reportPathSuffix>_yyyyMMdd-HHmm/<apkname>_log.log
** logcat: <reportPathSuffix>_yyyyMMdd-HHmm/<apkname>_logcat.log
** json (main): <reportPathSuffix>_yyyyMMdd-HHmm/report.json
** html (main): <reportPathSuffix>_yyyyMMdd-HHmm/report.html
** html (app): <reportPathSuffix>_yyyyMMdd-HHmm/report_app_<id>.html


Version 0.5:
------------
* Changes
** Make TaintDroid Runner more error resistant
*** New methods for killing processes
*** Do not ignore crashes
*** Remove possible deadlocks in pprocess usage and logging
** Change logcat behavior
*** Use log redirection instead of direct read of logcat

* New features
** Log GSM call activites
** New JSON mode which generates JSON main files
** New MS mode for storing data in database

* Files
** helper_unify_apps.py


Version 0.4:
------------
* Changes
** Change multi-threading behaviour
*** Do not assign apps to threads in advance but 
    start a thread per app (but not more than defined threads)
*** Possibility to define a maximum thread runtime after which thread is killed

* New features
** Report mode which generates a very basic HTML report containing the results
** Calculated MD5 and Sha256 Hash for APK file
** Allow to set properties for TaintDroid logging

* Files:
** rename utils.py to common.py
** report_generator.py: Generate a basic HTML report 

* Todos and ideas
** Store results in database


Version 0.3:
------------
* New features
** Allow to skip simulations
** New interactive mode
** Prepare multi-threading
** Logging of all network activities
** Sent SMS are logged
** Logging of crypto activities

* Todos and ideas
** Store results in database
** Run multiple TaintDroid Runners in parallel


Version 0.2:
------------
* New files
** apk_wrapper.py: Wrapper class for the .apk file extracing information out of the AndroidManifest.xml
** utils.py: Helper class providing util methods as well as a common logger

* New features
** Run all apps in one folder
** Use clean environment for every run
** Extract package out of APK
** Better error handling and tracing

* Todos and ideas
** Store results in database
** Run multiple TaintDroid Runners in parallel


Version 0.1:
------------
* Files
** taintdroid_runner.py: Main class for running the TaintDroid Runner. Use --help to get all options
** emulator_client.py: Wrapper class for the emulator
** emulator_telnet_client.py: Wrapper class for the emulator's telnet client
** taintlog_analyzer.py: Implements log parsing and analyzing
** taintlog_json.py: Wrapper class for all TaintDroid log entries

* Features
** Analyze one Android app and print out results

* Todos and ideas
** Run all apps in one folder
** For every application use new image files (initial environment)
** Extract package out of APK

Something went wrong with that request. Please try again.