Back to rankings

KasperskyLab/hrtng

C++

IDA Pro plugin with a rich set of features: decryption, deobfuscation, patching, lib code recognition and various pseudocode transformations

binary-analysisdecryptiondeobfuscationhexraysidaida-pluginidapromalware-analysisreverse-engineering
Star Growth
Stars
1.9k
Forks
170
Weekly Growth
Issues
0
5001k1.5k
Aug 2024Mar 2025Nov 2025Jul 2026
README

hrtng IDA plugin

hrtng IDA plugin is a collection of tools, ideas and experiments I've found interesting and useful in my reversing work.

Special thanks to following peoples for their great plugins were used as base for my work:

The plugin requires Hex-Rays decompiler presence in your IDA installation.
Only latest version of IDA is supported and evolves. However the plugin can be compiled with IDA SDK >= 7.3 New features and fixes added for the current IDA usually not well tested with old versions.

Features of the plugin:

There is no one place in menu where all functionality of the plugin grouped together. The plugin's menu items placed closer to logically related standard IDA & Hex-Rays decompiler functions. Messages, menu items, popup windows and dialog boxes belong to this plugin are marked with "[hrt]" prefix.

Automation

Interactive pseudocode transformation

Decryption

Deal with obfuscated code

Code recognition

Type management assistance

Virtual/indirect calls assistance

Function name and type

IDA UI improvements

Misk features

Patching

IDA plugin developer help

Media

Reversing FinSpy

Analyzing PlugX

Building

  • Clone hrtng together with Crypto++® Library CMake submodule. Or put manually downloaded cryptopp-cmake source code to hrtng/src/cryptopp-cmake folder.
cd src
git clone --recurse-submodules https://github.com/KasperskyLab/hrtng.git
  • Copy IDA_DIR/plugins/hexrays_sdk/include/hexrays.hpp file to the include directory of the IDA SDK. (Not necessary since IDA 9.0/8.5)
  • Edit hrtng/src/CMakeLists.txt file to set correct path and version of used IDA SDK. To build later with another SDK version you may change cmake's IDASDK_VER variable with using cmake -D, ccmake or cmake-gui tools.
  • Create build directory, go into it, configure and build cmake project
mkdir bld && cd bld
cmake <path-to/hrtng/src>
cmake --build . --config Release -j 4 --clean-first
  • On the first build attempt with IDA SDK before version 9.1 there will be compiling error looks like:
hrtng/src/deob.cpp:912:60: error: ‘class rangeset_t’ has no member named ‘as_rangevec’
     fc.create("tmpfc2", ranges.as_rangevec(), 0);//!!! add line into range.hpp, class rangeset_t: "const rangevec_t &as_rangevec() const { return bag; }"
  • To fix the error, edit IDA_SDK/include/range.hpp file, adding line with as_rangevec function implementation into class rangeset_t declaration as in the following example:
class rangeset_t
{
  rangevec_t bag;
  ...
  public:
  const rangevec_t &as_rangevec() const { return bag; }
  ...
};
  • Copy built binaries into IDA_DIR/plugins folder together with apilist.txt and literal.txt files from hrtng/bin/plugins
  • Profit

License

This program is released under GPL v3 license

Author

  • Sergey.Belov at kaspersky.com
Related repositories
WerWolv/ImHex

🔍 A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM.

C++GNU General Public License v2.0hex-editorreverse-engineering
imhex.werwolv.net
54.2k2.4k
x64dbg/x64dbg

An open-source user mode debugger for Windows. Optimized for reverse engineering and malware analysis.

C++Otherdebuggerwindows
x64dbg.com
48.9k2.8k
radareorg/radare2

UNIX-like reverse engineering framework and command-line toolset

COtherradare2c
radare.org
24.4k3.3k
horsicq/Detect-It-Easy

Program for determining types of files for Windows, Linux and MacOS.

JavaScriptnpmMIT Licensedebuggerdetect
ntinfo.biz
11.2k929
mrexodia/ida-pro-mcp

AI-powered reverse engineering assistant that bridges IDA Pro with language models through MCP.

PythonPyPIMIT Licenseida-pluginida-pro
plugins.hex-rays.com/mrexodia/ida-pro-mcp
10.6k1.2k
We5ter/Scanners-Box

A powerful and open-source toolkit for hackers and security automation - 安全行业从业者自研开源扫描器合辑

pentesting-toolshacker-tools
9k2.4k
mandiant/capa

The FLARE team's open-source tool to identify capabilities in executable files.

PythonPyPIApache License 2.0malware-analysisreverse-engineering
mandiant.github.io/capa/
6.1k709
lief-project/LIEF

LIEF - Library to Instrument Executable Formats (C++, Python, Rust)

C++Apache License 2.0reverse-engineeringmalware-analysis
lief.re
5.5k739
JonathanSalwan/Triton

Triton is a dynamic binary analysis library. Build your own program analysis tools, automate your reverse engineering, perform software verification or just emulate code.

C++Apache License 2.0reverse-engineeringsymbolic-execution
triton-library.github.io
4.2k590
HyperDbg/HyperDbg

State-of-the-art native debugging tools

CGNU General Public License v3.0hypervisorhyperdbg
hyperdbg.org
3.9k492
trailofbits/manticore

Symbolic execution tool

PythonPyPIGNU Affero General Public License v3.0symbolic-executionz3
blog.trailofbits.com/2017/04/27/manticore-symbolic-execution-for-humans/
3.9k498
e-m-b-a/emba

EMBA - The firmware security analyzer

ShellGNU General Public License v3.0firmwarelinux
securefirmware.de
3.6k312