Как мы обошли bytenode и декомпилировали байткод Node.js (V8) в Ghidra
«Да я роботов по приколу изобретаю!» Рик Санчес
Многим известно, что в 2019 году АНБ решило предоставить открытый доступ к своей утилите для дизассемблирования (реверс-инжиниринга) под названием Ghidra. Эта утилита стала популярной в среде исследователей благодаря высокой «всеядности». Данный материал открывает цикл статей, посвященных плагину ghidra_nodejs для Ghidra, разработанному нашей командой (https://github.com/PositiveTechnologies/ghidra_nodejs). Задача плагина — десериализовать содержимое jsc-файлов, дизассемблировать байткод функций и декомпилировать их. В первой статье мы обсудим сущности и байткод движка V8, а также тезисно опишем сам плагин, про который подробно расскажем в последующих статьях.
Рано или поздно все сталкиваются с программами на языке JavaScript, их так и называют скриптами. JavaScript — это полноценный язык со своим стандартом ECMA Script, скрипты которого выполняются не только в браузере, но и на сервере.
Скрипты исполняются с помощью специальной программы, которую называют движком (engine) JavaScript. За годы движкостроения их понапридумывали предостаточно: V8, SpiderMonkey, Chakra, Rhino, KJS, Nashorn и т. д.
Читать далееИсточник: Хабрахабр
Похожие новости
- Сбор событий Linux: есть цель – ищем путь
- Разворачивая свой WAF: открытые инструменты
- Я написал свой VPN-клиент для Android. Зачем, если их сотни, и что скрывается под капотом?
- Введение в обслуживание АСУ ТП на примере эффективных предприятий
- RainLoop: от шелла через аттач, до кэша в инбоксе
- Превратили корпоративный блог в медиаплощадку для всего диджитал-рынка и получили 5500 статей за 10 месяцев
- В рейтинг Forbes в 4 года! Рассуждаем о тренде на кидфлюенсеров
- Как придумывать и запоминать пароли для разных сервисов
- Руководство по pgcrypto — шифрование внутри PostgreSQL. Часть 1
- Дайджест ИБ-регулирования. Апрель-июнь 2025