
Lucid является ориентированным на разработчиком плагином IDA Pro для изучения микрокода Hex-Rays. Он был разработан для обеспечения бесшовного, интерактивного опыта для изучения трансформаций микрокода в трубопроводе декомпилятора.
Этот плагин помечен только как прототип и кодовый ресурс для сообщества. Обратите внимание, что это помощь в разработке, а не инструмент обратной инженерии общего назначения.
Особое спасибо Genmc / @pat0is et al. для вдохновения.
Lucid-это кроссплатформенный (Windows, Macos, Linux) плагин Python 2/3. Это требует нулевых сторонних зависимостей, что делает код как портативным, так и простым в установке.
Из консоли Python вашего Disesssembler запустите следующую команду, чтобы найти свой каталог плагинов:
os.path.join(idaapi.get_user_idadir(), "plugins") Скопируйте содержимое /plugins/ плагины репозитория в список.
Перезагрузите свой разборщик.
Этот плагин поддерживается только для IDA 7.5 и новее.
Lucid будет автоматически загружаться для любой архитектуры с присутствующим декомпилятором шестигранника. Просто щелкните правой кнопкой мыши в любом месте в окне псевдокода и выберите View microcode , чтобы открыть проводник Lucid MicroCode.

По умолчанию проводник микрокода будет синхронизироваться с активным окном псевдокода шестнадцатеричных лучей.
Lucid заставляет легко проследить микроинструкции по всему трубопроводу декомпилятора. Просто выберите микроинструкцию и прокрутите (или нажмите ... если нужно) через список зрелости микрокода.

Посмотрите, как исследователь остается сосредоточенным на выбранной инструкции, в то время как окружающий ландшафт микрокода тает. Это в основном магия.
Отслеживание курсора может работать на уровне суб-операции / поднструктивы. Размещение курсора на разные части одной и той же микроинструкции может отслеживать субкомпоненты обратно до их соответствующих происхождений.

Если инструкции по отслеживанию адреса будут оптимизированы, Lucid попытается сохранить ваш курсор в том же приблизительном контексте. Это изменит цвет курсора с зеленого на красный, чтобы указать потерю точности.
По мере того, как микрокод шестигранного луча увеличивается в зрелости, трубопровод декомпиляции начинает гнездовать микрокод в виде подинструкций и суб-операций, которые образуют структуры на основе деревьев.

Вы можете просмотреть эти отдельные деревья, щелкнув правой кнопкой мыши и выбрав View subtree .
Поскольку это первоначальный выпуск, вероятно, будет несколько небольших причуд и ошибок. Вот несколько известных проблем во время выпуска:
Если вы столкнетесь с какими -либо сбоями или плохим поведением, пожалуйста, подайте проблему.
Время и разрешение на мотивацию, будущая работа может включать в себя:
Я приветствую внешние взносы, проблемы и запросы функций. Пожалуйста, сделайте любые запросы на привлечение в develop отрасли этого репозитория, если вы хотите, чтобы они были рассмотрены для будущего выпуска.