Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/avast/retdec-idaplugin

RetDec plugin for IDA
https://github.com/avast/retdec-idaplugin

Last synced: 3 days ago
JSON representation

RetDec plugin for IDA

Awesome Lists containing this project

README

        

# RetDec IDA plugin

RetDec plugin for IDA (Interactive Disassembler).

The plugin is compatible with the IDA 7.5+ versions.
The plugin does NOT work with IDA 6.x, IDA 7.0-7.4, or freeware version of IDA 7.0.
The plugin comes at both 32-bit and 64-bit address space variants (both are 64-bit binaries). I.e. it works in both `ida` and `ida64`.
At the moment, it can decompile the following architectures:
* 32-bit: x86, arm, mips, and powerpc.
* 64-bit: x86-64, arm64.

## Installation and Use

Currently, we officially support only Windows and Linux. It may be possible to build macOS version from the sources, but since we do not own a macOS version of IDA, we cannot create a pre-built package, or continually make sure the macOS build is not broken.

1. Either download and unpack a pre-built package from the [latest release](https://github.com/avast/retdec-idaplugin/releases/latest), or build and install the RetDec IDA plugin by yourself (the process is described below).
2. Follow the user guide (`user_guide.pdf`) that is part of the downloaded package, or use the [current version](https://github.com/avast/retdec-idaplugin/blob/master/doc/user_guide/user_guide.pdf) from this repository.
3. Don't forget to install the required dependencies mentioned in the user guide.

## Build and Installation

### Requirements

**Note: These are requirements to build the RetDec IDA plugin, not to run it. See our [User Guide](https://github.com/avast/retdec-idaplugin/blob/master/doc/user_guide/user_guide.pdf) for information on plugin installation, configuration, and use.**

* A compiler supporting C++17
* On Windows, only Microsoft Visual C++ is supported (version >= Visual Studio 2017).
* CMake (version >= 3.6)
* IDA SDK (version >= 7.7)

### Process

* Clone the repository:
* `git clone https://github.com/avast/retdec-idaplugin.git`
* Linux:
* `cd retdec-idaplugin`
* `mkdir build && cd build`
* `cmake .. -DIDA_SDK_DIR=`
* `make`
* `make install` (if `IDA_DIR` was set, see below)
* Windows:
* Open a command prompt (e.g. `C:\msys64\msys2_shell.cmd` from [MSYS2](https://github.com/avast/retdec/wiki/Windows-Environment))
* `cd retdec-idaplugin`
* `mkdir build && cd build`
* `cmake .. -DIDA_SDK_DIR= -G`
* `cmake --build . --config Release -- -m`
* `cmake --build . --config Release --target install` (if `IDA_DIR` was set, see below)
* Alternatively, you can open `retdec-idaplugin.sln` generated by `cmake` in Visual Studio IDE.

You must pass the following parameters to `cmake`:
* `-DIDA_SDK_DIR=` to tell `cmake` where the IDA SDK directory is located.
* (Windows only) `-G` is `-G"Visual Studio 15 2017 Win64"` for 64-bit build using Visual Studio 2017. Later versions of Visual Studio may be used. Only 64-bit build is supported.

You can pass the following additional parameters to `cmake`:
* `-DIDA_DIR=` to tell `cmake` where to install the plugin. If specified, installation will copy plugin binaries into `IDA_DIR/plugins`, and content of `scripts/idc` directory into `IDA_DIR/idc`. If not set, installation step does nothing.
* `-DRETDEC_IDAPLUGIN_DOC=ON` to enable the `user-guide` target which generates the user guide document (disabled by default, the target needs to be explicitly invoked).

## User Guide

The [User Guide](https://github.com/avast/retdec-idaplugin/blob/master/doc/user_guide/user_guide.pdf) in a PDF form is located in `doc/user_guide/user_guide.pdf`.

You can build your own guide by enabling and invoking the `user-guide` target:
* `cmake .. -DRETDEC_IDAPLUGIN_DOC=ON`
* Linux: `make user-guide`
* Windows: `cmake --build . --config Release --target user-guide`
* Requires [LaTeX](https://www.latex-project.org/), LaTeX packages, and related tools.
* The resulting PDF will overwrite the original `user_guide.pdf` in `doc/user_guide`.

## License

Copyright (c) 2020 Avast Software, licensed under the MIT license. See the `LICENSE` file for more details.

RetDec IDA plugin uses third-party libraries or other resources listed, along with their licenses, in the `LICENSE-THIRD-PARTY` file.

## Contributing

See [RetDec contribution guidelines](https://github.com/avast/retdec/wiki/Contribution-Guidelines).