目录导航
hrtng IDA插件简介
hrtng IDA 插件是来自不同来源的工具、想法和实验的集合,我发现它们在我的逆向工作中很有趣且有用。
菜单中没有一个地方将插件的所有功能组合在一起。hrtng 菜单项放置在逻辑上更接近相关的标准 IDA 和 Hex-Rays 反编译器功能的位置。属于此插件的消息、菜单项、弹出窗口和对话框都标有“ [hrt]
”前缀。
该插件需要 IDA 安装中存在 Hex-Rays 反编译器。该插件可以使用 IDA SDK >= 7.3 进行编译,但旧版本尚未经过充分测试。
特别感谢以下人员,他们的出色插件成为我工作的基础:
- Milan Bohacek、hexrays_tools和hexrays_hlight
- Rolf Rolles和Takahiro Haruyama创作的 HexRaysDeob
- Karthik Selvaraj Krypton 插件
- Ali Rahbar、Ali Pezeshk 和 Elias Bachaalany GraphSlick 插件
- Markus Gaasedelen AVX 对 Hex-Rays x64 反编译器的支持

插件特点:
自动化
交互式伪代码转换
解密
处理混淆代码
代码识别
结构援助
虚拟/间接呼叫协助
IDA UI 改进
错误特征
修补
IDA 插件开发人员帮助
构建
- 将Crypto++® 库 CMake源代码克隆或下载到
hrtng/src/cryptopp-cmake
文件夹。
cd src
git clone https://github.com/abdes/cryptopp-cmake
- 将文件复制
IDA_DIR/plugins/hexrays_sdk/include/hexrays.hpp
到include
IDA SDK 目录。(IDA 9.0 不需要) - 编辑
hrtng/src/CMakeLists.txt
文件以设置所用 IDA SDK 的正确路径和版本。要稍后使用其他 SDK 版本进行构建,您可以使用 或IDASDK_VER
工具cmake -D
更改cmake 的变量。ccmake
cmake-gui
- 创建build目录,进入,配置并build cmake项目
mkdir bld && cd bld
cmake <path-to/hrtng/src>
cmake --build . --config Release -j 4 --clean-first
- 第一次构建尝试时将出现如下编译错误:
hrtng/src/deob.cpp:912:60: error: ‘class rangeset_t’ has no member named ‘getbag’
fc.create("tmpfc2", ranges.getbag(), 0);//!!! add line into range.hpp, class rangeset_t: "const rangevec_t &getbag() const { return bag; }"
- 要修复错误,请编辑
IDA_SDK/include/range.hpp
文件,getbag
在声明中添加包含函数实现的行class rangeset_t
,如下例所示:
class rangeset_t
{
rangevec_t bag;
...
public:
const rangevec_t &getbag() const { return bag; }
...
};
- 将构建的二进制文件连同文件
IDA_DIR/plugins
一起复制到文件夹中apilist.txt
literal.txt
hrtng/bin/plugins
- 收获
作者
- kaspersky.com 的 Sergey.Belov