retdec-python
retdec-python copied to clipboard
A Python library and tools providing easy access to the retdec.com decompilation service through their REST API.
retdec-python
.. image:: https://readthedocs.org/projects/retdec-python/badge/?version=latest :target: https://retdec-python.readthedocs.io/en/latest/ :alt: Documentation Status
.. image:: https://travis-ci.org/s3rvac/retdec-python.svg :target: https://travis-ci.org/s3rvac/retdec-python :alt: Build Status
.. image:: https://coveralls.io/repos/s3rvac/retdec-python/badge.svg :target: https://coveralls.io/r/s3rvac/retdec-python :alt: Code Coverage Status
.. image:: https://badge.fury.io/py/retdec-python.svg :target: https://pypi.python.org/pypi/retdec-python :alt: PyPI Version
WARNING
The retdec.com <https://retdec.com>
_ decompilation service is to be disabled
(see the official announcement <https://retdec.com/news/2018-06-07-new-version-3-1/>
_). This will render the
library and tools in the present repository non-functional. I will keep the
repository online in case it is helpful to anyone.
Description
A Python library and tools providing easy access to the retdec.com <https://retdec.com>
_ decompilation service through their public REST API <https://retdec.com/api/>
_.
You can either incorporate the library in your own scripts:
.. code-block:: python
from retdec.decompiler import Decompiler
decompiler = Decompiler(api_key='YOUR-API-KEY')
decompilation = decompiler.start_decompilation(input_file='file.exe')
decompilation.wait_until_finished()
decompilation.save_hll_code()
or you can use the provided script for stand-alone decompilations:
.. code-block:: text
$ decompiler -k YOUR-API-KEY file.exe
v23bmYb67R
----------
Waiting for resources (0%)... [OK]
Pre-Processing:
Obtaining file information (5%)... [OK]
Unpacking (10%)... [OK]
Front-End:
Initializing (20%)... [OK]
[..]
Done (100%)...
Downloading:
- file.c
Either way, file.c
then contains the decompiled C code:
.. code-block:: text
$ cat file.c
//
// This file was generated by the Retargetable Decompiler
// Website: https://retdec.com
// Copyright (c) 2016 Retargetable Decompiler <[email protected]>
//
#include <stdio.h>
[..]
Status
The library provides support for the decompilation <https://retdec.com/api/docs/decompiler.html>
, fileinfo <https://retdec.com/api/docs/fileinfo.html>
, and test <https://retdec.com/api/docs/test.html>
_ services. For a more detailed list,
see the status <https://retdec-python.readthedocs.io/en/latest/status.html>
_
page in the documentation.
Requirements
- Python >= 3.4 (CPython or PyPy)
-
requests <http://docs.python-requests.org>
_ module for making HTTPS calls to theretdec.com API <https://retdec.com/api/>
_
Installation
The recommended way of installing is from Python Package Index <https://pypi.python.org/pypi/retdec-python>
_ (PyPI) with pip <http://www.pip-installer.org/>
_:
.. code-block:: shell
$ pip install retdec-python
This will install the latest stable version, including all dependencies. You can also install the latest development version directly from GitHub:
.. code-block:: shell
$ pip install git+https://github.com/s3rvac/retdec-python
Documentation
The documentation is available on readthedocs.io <https://retdec-python.readthedocs.io>
_:
-
latest (master) <https://retdec-python.readthedocs.io/en/latest/>
_ -
stable (0.5.2) <https://retdec-python.readthedocs.io/en/stable/>
_
Contact and Support
I will be very glad to get your feedback, pull requests <https://github.com/s3rvac/retdec-python/pulls>
, issues <https://github.com/s3rvac/retdec-python/issues>
, or just a simple Thanks.
Feel free to contact me for any questions you might have!
License
Copyright (c) 2015 Petr Zemek ([email protected]) and contributors.
Distributed under the MIT license. See the LICENSE <https://github.com/s3rvac/retdec-python/blob/master/LICENSE>
_ file for more
details.
Access from Other Languages
If you want to access the retdec.com <https://retdec.com>
_ decompilation
service from other languages, check out the following projects:
-
retdec-rust <https://github.com/s3rvac/retdec-rust>
_ - A library and tools for accessing the service from Rust. -
retdec-cpp <https://github.com/s3rvac/retdec-cpp>
_ - A library and tools for accessing the service from C++. -
retdec-sh <https://github.com/s3rvac/retdec-sh>
_ - Scripts for accessing the service from shell.