Giter Club home page Giter Club logo

idp_hexagon's Introduction

Hexagon Processor Module

This is Hexagon (aka QDSP6) processor module for IDA Pro disassembler. Features:

  • Supports all Hexagon versions: V4, V5, V55, V60, V61, V62, V65, V66, V67, V67t
  • Supports Hexagon Vector Extensions (HVX), audio extensions, NN extensions
  • Supports all known instructions
  • Supports ELF relocations (both static and dynamic)
  • Supports IDA v7.0 and v7.2

Information on instructions was mainly gathered from LLVM, whereas missing system-level instructions were taken from Programmer's Reference Manual.

Compilation

You will need the IDA 7.0 SDK or IDA 7.2 SDK (password protected).
You will also need a C++17 compiler, like Visual Studio 2015/2017, or any recent GCC or Clang.

Install target IDA SDK, copy hexagon folder into $SDK/module folder, and modify $SDK/module/makefile to include hexagon in ALLDIRS.
Build SDK, the resulting binary will be in $SDK/bin/procs/hexagon.dll.

Binary download

Binaries for Windows can be found under releases

Installation

Copy the hexagon.dll file to the procs subdirectory of your IDA installation.

Usage

Start IDA, load binary and select 'Qualcomm Hexagon DSP [QDSP6]' from the processor type. In case of ELF binary just press the "Set" button.
Otherwise IDA would still sucessfully load binary, but will complain about unknown relocations.

Issues

  • Switches are not recognized yet
  • In case of mixed code and data the former may have incorrect packet boundaries
  • Some rare relocation types are not properly recognized
  • Does not distinguish between different Hexagon versions; will disassemble instructions not supported by a particular version
  • IDA stores flags for two operands only, and all subsequent operands will have the same flag. For example, if the 2nd operand is an offset, then 4th will be treated as offset too.

Other Hexagon Processor modules

Author

n-o-o-n ([email protected])

License

LGPLv3. For more information see LICENSE.

History

2020-06-29 version 1.0
2020-06-30 added support for FP-based stack vars

idp_hexagon's People

Contributors

n-o-o-n 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.