Giter Site home page Giter Site logo

radareorg / r2hexagon Goto Github PK

View Code? Open in Web Editor NEW
12.0 4.0 5.0 518 KB

Hexagon disassembler code generator from the official instruction manual.

License: BSD 2-Clause "Simplified" License

C 97.88% Python 2.09% Makefile 0.03% C++ 0.01%
radare2 hexagon-disassembler hexagon qdsp

r2hexagon's Introduction

Overview

This is a Hexagon disassembly and analysis plugin generator for radare2. It uses text file of the specification as a source (recognized from PDF file), and some additional text files with some amendments.

It processes the files and generate C code in r2 directory. Just run importer.py.

The parsing part based largely on hexag00n importer.

Contributors

  • Anton Kochkov

  • Lucas Molas

  • Iván Arce

  • Juan Heguiabehere

  • Christian Heitman

  • D.C.

r2hexagon's People

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

r2hexagon's Issues

Inconsistent C-files when executing import.py multiple times

There seems to be a weird bug in the script. At least on my machine the generated hexagon_disas.c stays not consistent over multiple executions of the script:

$> git clone https://github.com/radareorg/r2hexagon && cd r2hexagon
$> ./import.py > /dev/null
$> git diff --numstat r2/hexagon_disas.c
$> 
$> ./import.py > /dev/null
$> git diff --numstat r2/hexagon_disas.c
8       9       r2/hexagon_disas.c
$>
$> ./import.py > /dev/null
$> git diff --numstat r2/hexagon_disas.c
32      33      r2/hexagon_disas.c

Try it again.

$> git clone https://github.com/radareorg/r2hexagon && cd r2hexagon
$> ./import.py > /dev/null
$> git diff --numstat r2/hexagon_disas.c
10      10      r2/hexagon_disas.c

$> ./import.py > /dev/null
$> git diff --numstat r2/hexagon_disas.c
33      33      r2/hexagon_disas.c

const_extenders.txt is missing instructions

The const_extenders.txt file is missing some instructions which therefor get not extended through immext(#u26).
This leads occasionally to disassembly like that:
ss-struct
Which is not correct because the immext() instruction is always applied to the following instruction (see: Chapter 10.9 - Constant extenders Reference Manual V62)

The const_extenders.txt looks generated. @XVilka Is this is the case?
If so, can you push it please?

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.