Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
uEmu — Крошечный милый плагин-эмулятор для IDA на основе unicorn. | Kitploit
Инструменты/GitHubGitHub/alexhude/uemu
Безопасность встроенных системДинамический анализ (песочница)Обратная инженерияОтладчикиАнализ Бинарных ФайловАнализ Прошивок
GitHubalexhude/uemu

uEmu

Крошечный милый плагин-эмулятор для IDA на основе unicorn.

Репозиторий
1.2k18322 ч 48 мин назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Обзор

uEmu — это крошечный милый плагин-эмулятор для IDA на основе движка Unicorn.

Поддерживает следующие архитектуры "из коробки": x86, x64, ARM, ARM64, MIPS, MIPS64

Для чего это ХОРОШО?

  • Эмулировать "голый" код (загрузчики, встроенное ПО и т.д.)
  • Эмулировать отдельные функции

Для чего это ПЛОХО?

  • Эмулировать сложный код ОС (динамические библиотеки, процессы и т.д.)
  • Эмулировать код с большим количеством системных вызовов

Что можно улучшить?

  • Найти способ эмулировать доступ к специфическим регистрам вендора (например, MSR S3_x, X0 для ARM64)
  • Добавить больше регистров для отслеживания

Установка

  • Настройте IDAPython через idapyswitch
  • brew install unicorn для установки бинарников Unicorn
  • pip install unicorn для установки привязок Python для Unicorn
  • Используйте File / Script file... или ALT+F7 в IDA для загрузки uEmu.py

Опционально uEmu может быть загружен автоматически как плагин IDA. В этом случае поместите его в папку [IDA]/Plugins и измените USE_AS_SCRIPT на False внутри uEmu.py

Возможности

Всплывающее меню

  • Команда Start инициализирует эмулятор, выполняя маппинг всех сегментов и настраивая Unicorn
  • Команда Run эмулирует инструкции до достижения точки останова или возникновения ошибки
  • Step эмулирует одну или N инструкций (удерживайте ALT/OPTION для указания количества)
  • Stop прерывает эмуляцию
  • Reset сбрасывает движок эмуляции и отменяет маппинг всех областей памяти
  • Jump To PC просто переходит к текущему PC
  • Set PC перемещает PC на курсор
  • Можно обновить контекст CPU вручную или через JSON-файл (см. ниже)
  • Show Controls отображает окно с кнопками Start/Run/Step/Stop
  • Show CPU Context отображает окно с доступными регистрами
  • Show CPU Extended Context отображает окно с расширенными регистрами (FP/SIMD)
  • Show Stack отображает окно с текущим стеком
  • Show Memory Range позволяет отобразить конкретную область памяти

Start

Start начинает эмуляцию с курсора. Сначала необходимо указать начальный контекст CPU (см. Update CPU Context). После этого все сегменты из базы данных IDA будут отображены (mapped) в эмулятор (инициализированные данные также будут скопированы).

Run

Выполняет код до достижения точки останова по коду или памяти, или до события, требующего действия пользователя.

Step

Выполняет один шаг. Удерживайте ALT/OPTION для указания количества шагов.

Stop

Когда эмуляция активна, эту команду можно использовать для прерывания выполнения.

Reset

Сбрасывает экземпляр эмулятора и отменяет маппинг всех областей памяти.

Точки останова

Вы можете использовать точки останова IDA для указания мест, где эмуляция должна быть прервана. Это включает точки останова по коду и памяти. Обычно используются вместе с командой Run.

Действия во время выполнения

Немаппированная память

Когда эмулятору требуется доступ к памяти, которая еще не смаплена, плагин покажет следующий диалог.

  • Нажмите YES, чтобы предоставить дамп памяти для загрузки в память.

  • Нажмите NO, чтобы отобразить одну пустую страницу (0x1000), заполненную нулями.
  • Нажмите Cancel, чтобы остановить эмуляцию.

Неизвестные инструкции

Когда эмулятор сталкивается с неизвестной инструкцией, можно пропустить ее и восстановить контекст CPU вручную.

Представления

Управление

Просто панель для управления выполнением.

Контекст CPU

Текущий контекст CPU.

Каждый раз при остановке эмуляции измененные регистры будут подсвечены. Регистры можно отображать в 1, 2 или 3 столбца через контекстное меню.

Можно обновить контекст CPU через контекстное меню (см. ниже).

Расширенный контекст CPU

Текущий расширенный контекст CPU.

Каждый раз при остановке эмуляции измененные регистры будут подсвечены. Регистры можно отображать в 1, 2 или 3 столбца через контекстное меню.

Можно обновить контекст CPU через контекстное меню (см. ниже).

Память

Используйте это представление для просмотра областей памяти по указанному адресу и размеру. Комментарий будет отображаться в заголовке для удобства.

Каждый раз при остановке эмуляции измененные блоки памяти будут подсвечены.

Обновление контекста CPU

Значения регистров можно изменять по отдельности или все сразу с помощью JSON-файла через контекстное меню. Текущий контекст также можно сохранить в JSON-файл для последующего использования.

Главное меню плагина

Помимо всех функций, перечисленных в контекстном меню, есть несколько новых команд.

Показать отображенную память

Отображает все отображенные области. Используйте контекстное меню для отображения памяти для конкретной области или дампа в файл.

Загрузить сегменты

Эта команда пытается синхронизировать сегменты IDA с отображенной памятью, создавая новые отображения или объединяя с существующими, если это возможно. Это помогает добавлять новые сегменты IDA в эмулятор во время выполнения без перезапуска эмулятора.

Загрузить проект

Загрузить состояние uEmu из файла.

Сохранить проект

Сохранить состояние uEmu в файл. Обратите внимание, что сохраняются только регистры, определенные в плагине.

Настройки

  • Follow PC прокручивает представление IDA к текущему PC во время эмуляции
  • Convert to Code automatically преобразует данные IDA под курсором в код, если это не код
  • Trace instructions выводит каждую инструкцию, выполняемую эмулятором
  • Lazy mapping добавляет страницы по запросу вместо отображения всех существующих областей при запуске

Расширения

Также можно добавить новый функционал или построить свой проект на основе uEmu, используя систему расширений.
Описание с примером можно найти здесь

  • crauEmu — расширение для разработки и анализа полезных нагрузок для атак с повторным использованием кода.
Скачать инструмент