Coder Social home page Coder Social logo

taintdroid_runner's Introduction

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 ([email protected])
#
# 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

taintdroid_runner's People

Contributors

dbaeumges avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.