Giter Site home page Giter Site logo

crackercat / samsung-trustzone-research Goto Github PK

View Code? Open in Web Editor NEW

This project forked from quarkslab/samsung-trustzone-research

0.0 0.0 0.0 88 KB

Reverse-engineering tools and exploits for Samsung's implementation of TrustZone

License: Other

Makefile 0.43% Python 82.63% Batchfile 0.59% CSS 4.42% HTML 1.46% Java 10.47%

samsung-trustzone-research's Introduction

Security Research on Kinibi

In this repository, you will find the tools that we have developed during our research to help us reverse engineer and also exploit Samsung's implementation of TrustZone, which is based on a Trusted OS called Kinibi.

Bindings

In the bindings/ folder, you will find Python bindings for the libMcClient.so library that is used to communicate with Trusted Applications and Secure Drivers. They were developed because we found it easier to write our exploits in Python, and they proved especially useful for the exercises given during our training sessions.

Emulator

In the emulator/ folder, you will find a Python script that makes use of the Unicorn engine to emulate a trustlet. This tool was mainly used to test our exploits as it can print the instructions executed, register values and stack content.

Fuzzer

In the fuzzer/ folder, you will find a Python script that makes use of the afl-unicorn project to fuzz trustlets. It is heavily based on the emulator. You will need to implement more tlApis/drApis if you intend to do some serious fuzzing.

Scripts

In the scripts/ folder, you will find various things:

  • mclf_loader, a loader for trustlet binaries using the MCLF file format
  • tbase_loader, a loader that extracts the various components of a SBOOT image
  • find_symbols, a script that finds and renames the various tlApis/drApis stubs within trustlets
  • find_symbols_mclib, a script that finds and renames the various tlApis/drApis functions within the McLib

The scripts are available both for IDA Pro and Ghidra, as we wanted our trainees to be able to use a free SRE.

Tainting

In the tainting/ folder, you will find a Python script that makes use of Manticore to find vulnerabilities in trustlets using symbolic execution. This was just an experiment, so the script is really basic.

Contact

samsung-trustzone-research's People

Contributors

patateqbool 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.