Высокая производительность через многопоточность
IxeRam позиционируется как инструмент для реверс-инжиниринга и отладки, оптимизированный для работы в терминале или через SSH. Ключевое отличие от аналогов — использование многопоточного движка, который распараллеливает сканирование памяти, задействуя все доступные ядра CPU. Это обеспечивает молниеносные результаты даже при обработке гигабайтных объемов данных, не блокируя интерфейс благодаря асинхронной архитектуре на базе FTXUI.
Ключевые технические возможности
Инструмент поддерживает работу с различными типами данных (Int8-64, Float, Double, строки) и массивами байтов с подстановочными знаками (AOB). Важной особенностью является использование системных вызовов process_vm_readv и process_vm_writev для высокоскоростного прямого доступа к памяти процесса, что требует прав root. Также реализован поиск статических указателей (Chain-link), позволяющий находить пути указателей, сохраняющиеся после перезапуска процесса.
Интеграция с Ghidra и визуализация
IxeRam предлагает не только терминальный интерфейс, но и современную GUI-оболочку на Qt 6 с темой Tokyo Night. Инструмент умеет синхронизировать ImageBase с Ghidra и экспортировать Python-скрипты для автоматической маркировки найденных адресов. Встроенный Live Execution Tracer визуализирует пути выполнения кода в реальном времени, меняя цвет стрелок (зеленый → оранжевый → красный) в зависимости от частоты выполнения, а также позволяет инспектировать регистры CPU прямо на графе.
Сравнение с традиционными подходами
| Характеристика | IxeRam | Традиционные GUI-отладчики |
|---|---|---|
| Зависимости | Zero Dependencies (статическая линковка FTXUI, Capstone, Keystone) | Требуют установки множества библиотек |
| Доступ к памяти | process_vm_readv/writev (высокая скорость) | Часто используют более медленные методы |
| Работа в SSH | Нативная поддержка терминального режима | Требуют X11-forwarding или VNC |
| Live Patching | nВстроенный через Keystone Engine | Обычно требует внешних плагинов |
Установка и использование
Проект распространяется под лицензией MIT. Сборка осуществляется через CMake (версия 3.14+) с использованием компиляторов C++17 (g++ или clang++). Система сборки автоматически подтягивает и статически линкует все зависимости. Для работы требуется запуск с привилегиями root. Также реализован встроенный Speedhack через библиотеку LD_PRELOAD, позволяющий управлять скоростью выполнения целевого приложения.
Источник: Github ↗
