MCPcopy Create free account
hub / github.com/KasperskyLab/hrtng

github.com/KasperskyLab/hrtng @v3.9.105

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.9.105 ↗ · + Follow
854 symbols 2,441 edges 63 files 195 documented · 23% updated 6d agov3.9.105 · 2026-06-25★ 1,878

Browse by type

Functions 805 Types & classes 49
What it actually does AI analysis from the code graph — generated when you open this
loading…
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: * Hex-Rays SA ida-sdk examples * Milan Bohacek, hexrays_tools and hexrays_hlight * J.C. Roberts and Alexander Pick: IDB2PAT * HexRaysDeob by Rolf Rolles and Takahiro Haruyama * Karthik Selvaraj Krypton plugin * Ali Rahbar, Ali Pezeshk and Elias Bachaalany GraphSlick plugin * Markus Gaasedelen AVX support for the Hex-Rays x64 Decompiler

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

Core symbols most depended-on inside this repo

Shape

Function 735
Method 70
Class 41
Enum 8

Languages

C++99%
Python1%

Modules by API surface

src/hrtng.cpp78 symbols
src/deinline.cpp73 symbols
src/unflat.cpp63 symbols
src/helpers.cpp40 symbols
src/microavx.cpp36 symbols
src/opt.cpp35 symbols
src/MicrocodeExplorer.cpp35 symbols
src/cast.cpp33 symbols
src/refactoring.cpp30 symbols
src/deob.cpp29 symbols
src/structures.cpp28 symbols
src/apihashes.cpp27 symbols

For agents

$ claude mcp add hrtng \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page