Меняем промежуточное представление кода на лету в Ghidra
Когда мы разрабатывали модуль ghidra nodejs для инструмента Ghidra, мы поняли, что не всегда получается корректно реализовать опкод V8 (движка JavaScript, используемого Node.js) на языке описания ассемблерных инструкций SLEIGH. В таких средах исполнения, как V8, JVM и прочие, один опкод может выполнять достаточно сложные действия. Для решения этой проблемы в Ghidra предусмотрен механизм динамической инъекции конструкций P-code — языка промежуточного представления Ghidra. Используя этот механизм, нам удалось превратить вывод декомпилятора из такого:
Читать далееИсточник: Хабрахабр
Похожие новости
- 69,5 млрд тенге в digital: что происходит с медиарынком Казахстана в 2025 году
- Легитимный язык в руках злоумышленников: декомпиляция ВПО на AutoIt
- Как мыслит дизассемблер: внутренняя логика decompiler-инструментов на примере Ghidra и RetDec
- Как мы автоматизируем рекрутинг с помощью ИИ
- Архитектура ошибочного мышления: как баги рождаются в голове, а не в коде
- [Перевод] [Перевод] Никто не останется позади — Руководство по ручному патчингу угнанного сервера SharePoint/Exchange
- Кораллы, жара, российский смартфон: как я собрал самое неожиданное рабочее место
- [Перевод] [Перевод] Поиск способов закрепления в Linux (Часть 3). Systemd, таймеры и Cron
- Надо ли digital-агентствам запускать свою франшизу
- Spark_news: Средняя сумма покупки в розничных магазинах увеличилась на 10%