Git Product home page Git Product logo

deepiler's Introduction

deepiler

A neural-based decompiler using a Transformer model for decompilation tasks.

  • The model only supports mips assembly decompilation for now.
  • The model has been trained on examples from math.h so it is not usable for now with other corpus of code.

Intuition

In this project, we want to demonstrate if Deep Learning and especially Transformer models can be applied to decompilation tasks. Transformer models are used for common NLP tasks and is the state of the art in this field. We think that decompilation can be seen as a translation task, where we want to translate a low level programming language (PL) to a higher level programming language. For now, the model uses as low level PL the MIPS Assembly and as high level PL the C language.

Usage

Training

python3 decompile.py --train --model-path path_to_save

Decompilation

python3 decompile.py --decompile path/to/asm-file.s --model-path path_to_save

Architecture

The architecture used in this project is the same transformer used in the orginial paper All you need is attention with some improvements and adaptatations to be applied to the decompilation task.

deepiler's People

Contributors

tristanbilot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

vikneo2017

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.