All Projects → vanhauser-thc → dynTaintTracer

vanhauser-thc / dynTaintTracer

Licence: AGPL-3.0 license
a taint tracer based on DynamoRIO, currently ARM only

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to dynTaintTracer

libdft64
libdft for Intel Pin 3.x and 64 bit platform. (Dynamic taint tracking, taint analysis)
Stars: ✭ 174 (+443.75%)
Mutual labels:  taint-analysis, taint, taint-tracking
peekaboo
An standalone execution trace library built on DynamoRIO.
Stars: ✭ 17 (-46.87%)
Mutual labels:  dynamorio, dynamorio-client
instrumentation
Assorted pintools
Stars: ✭ 24 (-25%)
Mutual labels:  taint-analysis, taint
Dynamic-Rabbits
No description or website provided.
Stars: ✭ 13 (-59.37%)
Mutual labels:  taint-analysis, dynamorio
taint-with-frida
just an experiment
Stars: ✭ 17 (-46.87%)
Mutual labels:  taint-analysis, taint
Pyt
A Static Analysis Tool for Detecting Security Vulnerabilities in Python Web Applications
Stars: ✭ 2,061 (+6340.63%)
Mutual labels:  taint-analysis, taint
stm32 template
这是一个stm32f103 和 stm32f407单片机在Unix、Linux等系统下使用的模版,可以使用make编译、下载、调试。
Stars: ✭ 48 (+50%)
Mutual labels:  arm
ws-ldn-3
DIY Synth / ARM baremetal workshop (London, 5-6 December 2015)
Stars: ✭ 20 (-37.5%)
Mutual labels:  arm
rasa-docker-arm
Rasa Docker image for ARMv7. Runs on a Raspberry Pi.
Stars: ✭ 19 (-40.62%)
Mutual labels:  arm
ncnn-android-benchmark
ncnn android benchmark app
Stars: ✭ 78 (+143.75%)
Mutual labels:  arm
Firmware Over The Air
graduation project of ITI, flashing a new firmware over the air for automotive industry
Stars: ✭ 18 (-43.75%)
Mutual labels:  arm
human robot collaboration
Yet another repo for the baxter collaboration task.
Stars: ✭ 18 (-43.75%)
Mutual labels:  arm
equinix-metal-arm64-cluster
Arm and Equinix Metal have partnered to make powerful Neoverse based Armv8 bare metal infrastructure including latest generation Ampere systems — available for open source software developers to build, test and optimize for Arm64 architecture.
Stars: ✭ 71 (+121.88%)
Mutual labels:  arm
ARMStrong
A fast and simple ARM Simulator made for education based upon Unicorn and Keystone engines
Stars: ✭ 99 (+209.38%)
Mutual labels:  arm
V2releases
A friendly ARM assembler and simulator for educational use
Stars: ✭ 46 (+43.75%)
Mutual labels:  arm
rpi-tvheadend
TVheadend server for the ARM based Raspberry PI
Stars: ✭ 21 (-34.37%)
Mutual labels:  arm
docker-elasticsearch
Multi-architecture (arm, x86) Docker image for Elasticsearch
Stars: ✭ 14 (-56.25%)
Mutual labels:  arm
deollvm64
deobfuscator llvm arm64 script
Stars: ✭ 67 (+109.38%)
Mutual labels:  arm
drone-stm32-map
STM32 peripheral mappings for Drone, an Embedded Operating System.
Stars: ✭ 16 (-50%)
Mutual labels:  arm
data-product-streaming
Template to deploy a Data Product for data stream processing into a Data Landing Zone of the Data Management & Analytics Scenario (former Enterprise-Scale Analytics). The Data Product template can be used by cross-functional teams to ingest, provide and create new data assets within the platform.
Stars: ✭ 32 (+0%)
Mutual labels:  arm

dynTaintTracer

a tain tracer based on DynamoRIO, currently ARM only (but might already work with AARCH64 too). I wrote this in Summer 2018 for a few automotive pentest/reversing projects, but what the heck, lets release this to the world as others might find it useful too.

Note the AGPL3 license.

Building dynTaintTracer

  1. set the environment variable DYNAMORIO_HOME to the build directory of DynamoRIO.
  2. type make and sudo make install

You must compile on ARM (not Intel!) (and might work on AARCH64)

Running

Use the helper script dynTaintTracer.sh. The following options are supported:

--taint-accept	 taint accept() and recvfrom()
--taint-connect	 taint connect() sendto()
--taint-sslread	 taint SSL_read()
--taint-stdin	 taint stdin
--taint-file     taint reads from this file
--workaround	 work around a bug in dynamorio concerning strex
--report-debug	 debug output
--report-unknown report unknown instructions
--report-problem report problems
--report-untaint report untainting instructions
--trace-inst	 report all instructions when there is taint
--trace-bb	 report all basic blocks when there is taint
--trace-indirect report all indirect call/jmp when there is taint
--outfile	 where to write the trace output to

e.g.

# dynTaintTracer.sh --taint-file /tmp/foo.txt --outfile /tmp/trace.log --report-untaint -- /target/program -f /tmp/foo.txt

And then?

You can load the results into IDA with the included IDC script dynTaintTracer.idc. Just run the script which opens a file select window, select the trace and it is then applied to the loaded binary.

Caveats

Works fine, but neon instructions are not supported currently.

Future

It is easy to expand to AMD64, i686, etc. - "just" the instructions have to be added to ops_intel.c and for AARCH64 to ops_aarch.c.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].