Skip to content
 
 

Latest commit

 

History

128 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

  1. Clone the repository and initialise the cryptopp-cmake submodule (the IDA SDK is no longer part of the tree):

    git clone https://github.com/KasperskyLab/hrtng.git
    cd hrtng
    git submodule update --init --recursive
    
  2. Obtain the IDA SDK (>= 7.3) and point the build system to it. You can either export environment variables before running CMake:

    export IDASDK_DIR=/path/to/ida-sdk/src
    export IDASDK_VER=92        # optional, defaults to 92
    

    or pass the values directly to CMake:

    cmake -DIDASDK_DIR=/path/to/ida-sdk/src -DIDASDK_VER=92 <other-args>
    

    If you use IDA < 9.0/8.5, copy IDA_DIR/plugins/hexrays_sdk/include/hexrays.hpp into the SDK include directory before building.

  3. Build the project via CMake (or simply run ./build.sh):

    mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ../src
    cmake --build . --config Release --clean-first
    
  4. 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

About

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

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages