Меняем промежуточное представление кода на лету в Ghidra
Когда мы разрабатывали модуль ghidra nodejs для инструмента Ghidra, мы поняли, что не всегда получается корректно реализовать опкод V8 (движка JavaScript, используемого Node.js) на языке описания ассемблерных инструкций SLEIGH. В таких средах исполнения, как V8, JVM и прочие, один опкод может выполнять достаточно сложные действия. Для решения этой проблемы в Ghidra предусмотрен механизм динамической инъекции конструкций P-code — языка промежуточного представления Ghidra. Используя этот механизм, нам удалось превратить вывод декомпилятора из такого:
Читать далееИсточник: Хабрахабр
Похожие новости
- Права в Linux: chown/chmod, SELinux context, символьная/восьмеричная нотация, DAC/MAC/RBAC/ABAC
- Как запустить VLESS + Reality на старом Intel iMac с macOS Catalina 10.15.8
- Кто выпустил гончую. Ищем следы коллекторов BloodHound в логах Windows
- HTML во вложении — это программа. Почему почтовые фильтры его пропускают и как SOC его ловит
- Как СМИ рождают “хакеров” и как сам Глава группировки слил секретные методы DDoS
- Погосян Марго: В топ-4 рынка с маскотом
- Пентест с помощью ИИ в России и материалы для сертификации по безопасности ИИ
- Интеграция MULTIDIRECTORY и MULTIFACTOR: двухфакторная аутентификация в Kerberos
- Глухарь ESPшный — мемуары охотника
- Когнитивная эргономика в веб-дизайне: Как не отупеть от собственного интерфейса