GithubHelp home page GithubHelp logo

samsung / adbi Goto Github PK

View Code? Open in Web Editor NEW
295.0 41.0 82.0 588 KB

Android Dynamic Binary Instrumentation tool for tracing Android native layer

License: Apache License 2.0

Makefile 1.15% Python 30.31% C 52.16% Assembly 1.64% C++ 13.61% PLSQL 0.37% Logos 0.03% Shell 0.72%

adbi's Introduction

Android Dynamic Binary Instrumentation (ADBI) is a tool for dynamically tracing Android native layer. Using this tool you can insert tracepoints (and a set of corresponding handlers) dynamically into the process address space of a running Android system. When the tracepoint is hit your custom handler (which can be written in C) is executed. You can deliver your own code through the handlers. It is possible to access process variables and memory. Host side tool written in Python communicates with the native adbiserver process (which resembles the gdb-server in its operation) and translates source level symbols into addresses within the final binaries. As of authors knowledge this is a first such tool for ARM (including ARM64) architecture.
ADBI tool was developed in Samsung Poland R&D Center located in Warsaw, Poland as a research project for new development tools and process improvement.

Sample features:
Generates function trace from Android native user space
Allows for dynamically driven trace configuration
Can measure time between instructions for profiling
Injects custom code into running process
Can modify and reimplement running native applications

Benefits:
No recompilation of debugging application is needed
Can see what exactly happens in Android native layer
Finding problem areas, tracking down strange bugs more manageable
Better system knowledge, faster product delivery

adbi's People

Contributors

bzator avatar minjung978 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

adbi's Issues

Anyone build successfully?

Trying build the server, I got this:

---- inj ----
| Traceback (most recent call last):
|   File "/Volumes/AndroidSrcCode/adbi/ADBI/idk/inj", line 16, in <module>
|     from elftools.elf.elffile import ELFFile
| ImportError: No module named elftools.elf.elffile

But, can't find elftools.zip in the project.

ASDD repository server does not work

Hi, I am interested in your tool and want to use it.
I try to build the tool according to the document. However, ASDD repository server does not work, thus I cannot get necessary source code with the following command.

sudo wget -P /etc/apt/sources.list.d/ http://asdd.sprc.samsung.pl/ubuntu/asdd.list

Can you solve this problem?
Thanks,
Seoyoon Choi

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.