Code Monkey home page Code Monkey logo

hexag00n's Introduction

Hexag00n

Hexagon is Qualcomm's Digital Signal Processor included in the Snapdragon series System-on-a-Chip found in billions of cellphones and other consumer electronic devices worldwide.

The Hexagon processor is a hardware multi-threaded, variable instruction length, VLIW processor architecture developed for efficient control and signal processing code execution at low power levels. It runs a proprietary Real Time Operating System and it is commonly used for modem and media processing applications. According to the manufacturer: "As of 2012, multiple Hexagon cores form the processing engine behind virtually every commercially shipping 4G LTE modem by Qualcomm Technologies" .

This repository includes a collection of tools for security research and reverse engineering of the Qualcomm Hexagon (QDSP6) .

License

The BSD 2-Clause License. For more information, see LICENSE.

Collaborators

  • Lucas Molas
  • Iván Arce
  • Juan Heguiabehere
  • Christian Heitman
  • D.C.

Contact Us

The preferred way of participation is through the GitHub’s issue tracker, but for a private channel of communication send an email to stic at fundacionsadosky dot org dot ar.

hexag00n's People

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

hexag00n's Issues

mdt + bxx files need to be merged for hexagon elf?

trying to figure out how to use your tools

For android: my assumption is the mdt + bxx files need to be merged into a single file which would be the hexagon elf - is this incorrect? Are you assuming the user does the before running your toolset?

Executing REIL code going from one function to another

Continuing the development of #4, with the CFG and CG created for the factorial_example.elf, the next step would be to execute REIL code between two functions (arbitrarily chosen for now), that would include the execution path between the first function (e.g., main) and all the calls that happen until the second function (e.g., malloc) is reached. No specific execution environment (i.e., register or memory values) is neither set nor looked for.

@cnheitman What would be the BARF API/code for that? (there is some commented code in the current example that go towards that direction)

Strings do not appear to be properly handled in IDA

When loading an elf that has strings - such as the QSR_STRING section. The ASCII strings are not properly detected - and do not appear to show up as ASCII when trying to select as string. Not sure the cause...

Data references not working

As mentioned in issue #1, the data references feature in the IDA proc. module is causing IDA to misbehave, so it is disabled by default, which causes many data elements (like strings) not to be correctly identified by IDA.

BARF's REIL use case: find an execution path to a function

The translation for the Hexagon architecture is being developed in the reil branch in order to use BARF's REIL analysis tools. As first example of this use, the factorial_example.elf binary of this repository is being analyzed, in order to find all possible execution paths to a chosen function (e.g., malloc) with a particular execution environment (e.g., a specific value as its argument).

This example has as a final application the check of the reachability of CVE-2016-5080 in modem binaries, but it is also useful as a test case to add Hexagon architecture support dynamically to BARF.

Modifications to the BARF source code are being done in a forked repository, and will later be merged to the original project.

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.