HRTNG Плагин IDA
Плагин HRTNG IDA - это коллекция инструментов, идей и экспериментов из разных источников, которые я нашел интересным и полезным в моей обратной работе.
Практическое руководство по обратной стороне сложного вредоносного ПО, используя пример рассечения модуля Finspy с помощью плагина HRTNG IDA на SecureList
В меню нет единого места, где все функциональные возможности плагина сгруппированы вместе. Элементы меню HRTNG, расположенные ближе к логически связанным стандартным функциям декомпилятора IDA & Hex-Rays. Сообщения, элементы меню, всплывающие окна и диалоговые окна принадлежат этому плагину, помечены префиксом « [hrt] ».
Плагин требует присутствия декомпилятора шестигранника в вашей установке IDA. Плагин может быть скомпилирован с IDA SDK> = 7.3, но не хорошо протестирован со старыми версиями.
Особая благодарность за следующие народы за их отличные плагины были использованы в качестве базы для моей работы:
- Милан Бохачек, hexrays_tools и hexrays_hlight
- Hexraysdeob от Rolf Rolles и Takahiro Haruyama
- Картик Сельварадж Криптон Плагин
- Али Рахбар, Али Пезешк и Элиас Бахаалани Графсплик Плагин
- Markus Gaadeselen Avx Поддержка для декомпилятора шестигранника x64
Особенности плагина:
Автоматизация
- Поднимать комментарии от дискости в псевдокодный вид
- Автоматическое переименование локальных и глобальных переменных, элементы struct
- Автоматическая замена
- Com Helper
Интерактивное преобразование псевдокода
- Пользовательская интерактивная переименование/помощь в переименовании
- Помогает с изменяющимся типом структурного элемента или локальной/глобальной переменной
- Reinterpret_cast
- Выбор коллапса
- «Offsetoft» конвертор
Дешифрование
- Строки/Данные/Констан дешифрование
- Строите строки стека (опционально с расшифрованием)
- Строки массивов (опционально с расшифрованием)
- Массовые струны дешифрование
Иметь дело с запутанным кодом
- Декомпилированный запутанный код
- Сканирование на имена API HASHE
- Нерадознание
Распознавание кода
- Подписи микрокодов
- De -inline - обнаружение вставленных функций
Структурные помощь
- Создайте фиктивные структуры
- Помогать разделить пробелы в структурах
Виртуальные/косвенные вызовы помощи
- Виртуальные звонки помощи
- Прыгайте в пункт назначения непрямого звонка
- Исправить указатель стека для непрямого вызова
Улучшения IDA UI
- Расширенные Xrefs
- Соответствующая скобка
- Auto включить синхронизация содержимого окна «функции»
MISK функции
- Получите помощь API
- Avx reafter
- Струны сброса, комментарии и имена из базы данных IDA
- Создание таблицы смещений
- Преобразовать функцию в __usercall, обнаружить испорченные регистры
- Установить конвенции о вызовах немного ближе к Go-Lang
Исправление
- Плачковая область с NOPS
- Исправление от отладчика / патча из файла
- Поиск и патч
- Создать файл Patched (DEC)
Developer Plugin
Здание
- Клонировать или скачать 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, вы можете изменить переменную Cmake's IDASDK_VER с использованием инструментов cmake -D , ccmake или cmake-gui . - Создать каталог сборки, перейти в него, настраивать и построить проект 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 Togeter с файлами apilist.txt и literal.txt из hrtng/bin/plugins - Выгода
Лицензия
Эта программа выпущена по лицензии GPL V3
Авторы
- Sergey.belov на kaspersky.com