Giter Site home page Giter Site logo

borntohonk / falcon-tools Goto Github PK

View Code? Open in Web Editor NEW

This project forked from camadeus/falcon-tools

1.0 0.0 0.0 468 KB

Some tools and exploits for the NVIDIA Falcon v5 TSEC engines

License: GNU General Public License v2.0

Python 1.25% Assembly 1.88% Makefile 0.30% M4 0.02% Shell 0.04% C 75.08% C++ 21.44%

falcon-tools's Introduction

falcon-tools

A toolbox for researching and hacking NVIDIA Falcon microprocessors used in TSEC engines on the Tegra X1.

The generic goal is to provide a collection of tools, exploits and code for demystifying the Falcon and its cryptographic functionality to ease up research for people interested in the cryptosystem and in reversing Nintendo's TSEC firmwares in Package1 and nvservices.

Components

  • requiem: A template for writing fake-signed Falcon microcode that runs a payload in Heavy Secure mode; Useful for research and reversing

  • dump_readable_secrets: Example for dumping acl 0x03 secrets, using requiem as a base

  • launcher gpvl2 launcher borrowed from here: https://gitlab.com/Nxyoom/tsec-exploration/-/tree/main/launcher credits: @EliseZeroTwo

  • libfaucon: A standard library for Falcon firmware development; Features implementations of commonly used functions and definitions for MMIO registers

  • payloads: A placeholder directory for Falcon firmware blobs which are exploited through other components in this repository

  • tools: Helper scripts for working with TSEC firmware blobs

Usage

With the components out of the way, the order for using these ROP chains on hardware is as following:

Prerequisites: Install Python 3.6+ on your machine and get the PyCryptodome, PyCryptodomex packages via pip. Additionally, you will need envytools, make, m4 on your system.

  1. Clone this repository and set up an environment for controlling a TSEC engine, e.g. through RCM payloads on the Nintendo Switch.

  2. run dump_readable_secrets.sh with PyCryptodome, PyCryptodome in your pip enviroment or venv.

  3. launch the output tsec_payload.bin on an erista console, and obtain acl 0x03 (Insecure Readable) or acl 0x13 secrets (csigenc)

  4. Refer to this writeup to learn about fake-signing.

  • Reverse engineering the behavior of certain crypto commands

  • Dumping all the ACL 0x13 csecrets to SOR1 HDCP registers where they can be read out

Credits

The exploits and tools collected in this repository were developed by Thog and vbe0201.

We credit the following people for their great contributions to this project:

  • Elise for help and advise in the early stages

  • SciresM and hexkyz for being very helpful and informative throughout our research

Licensing

This software is licensed under the terms of the GNU GPLv2.

See the LICENSE file for details.

falcon-tools's People

Contributors

vbe0201 avatar marysaka avatar borntohonk avatar

Stargazers

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