JavaScript — это не только язык для создания интерактивных сайтов. Это ещё и удобный инструмент для злоумышленников, которые хотят скрыть свои действия.
Вредоносные скрипты часто шифруют, переименовывают, оборачивают в сложные конструкции, чтобы их невозможно было прочитать с первого взгляда.
Такой приём называется обфускация. Он мешает анализу и делает код непонятным даже опытным разработчикам.
Но любой маскировке можно противопоставить деобфускацию — процесс восстановления читаемого вида кода. Для пентестеров, аналитиков и специалистов по безопасности это важнейший навык.
Что такое обфускация и зачем её используют
Обфускация — это преднамеренное усложнение кода:
-
Переименование переменных и функций в бессмысленные наборы символов.
-
Разделение логики на множество мелких функций.
-
Шифрование строк (Base64, Hex, XOR).
-
Многослойные конструкции
eval
иfunction(p,a,c,k,e,d)
.
Цель — затруднить анализ, скрыть вредоносные действия, обойти автоматические сканеры.
Как находить и извлекать обфусцированный код
Злоумышленники прячут JavaScript:
-
Внешних файлах (
script src
). -
В закодированных строках (Base64, Hex).
-
Через динамическую вставку в HTML.
Первый шаг деобфускации — вытащить код из этих источников и сохранить для анализа.
Базовые и продвинутые приёмы обфускации
-
Базовая — переименование переменных, лишние конструкции, уплотнение кода в одну строку.
-
Продвинутая — несколько слоёв кодирования, использование
eval
, динамическая генерация функций.
Чем сложнее обфускация, тем больше времени уйдёт на её разбор — но при правильном подходе читаемый код можно получить всегда.
Пошаговая деобфускация
-
Форматирование — привести код к читаемому виду.
-
Переименование — восстановить понятные имена переменных и функций.
-
Удаление лишнего — убрать ненужные обёртки и конструкции.
-
Декодирование строк — распознать и расшифровать Base64, Hex, XOR.
-
Ручной анализ логики — понять, что делает каждая часть скрипта.
Анализ поведения без запуска
Чтобы не активировать вредоносный код:
-
Используйте консоль браузера для пошагового анализа.
-
Заменяйте опасные функции на безопасные заглушки.
-
Отслеживайте, какие запросы код отправляет на сервер.
HTTP-запросы и серверное взаимодействие
Многие вредоносные скрипты общаются с сервером:
-
Получают дополнительные инструкции.
-
Отправляют украденные данные.
-
Подгружают новые части кода.
Понимание структуры и содержания этих запросов помогает выявить суть атаки.
Декодирование строк
Часто ключевая логика спрятана в зашифрованных строках.
Популярные методы:
-
Base64 — стандартное кодирование.
-
Hex — шестнадцатеричное представление символов.
-
XOR — побитовое шифрование.
-
Кастомные подстановки.
Почему деобфускация — навык must-have
-
Помогает быстро понять, опасен ли код.
-
Позволяет обнаружить скрытые механизмы атак.
-
Дает возможность разрабатывать защиту на основе реальных угроз.
-
Используется при расследовании инцидентов и анализе фишинговых страниц.
Хотите научиться читать даже самый запутанный JavaScript?
В модуле «JavaScript: Деобфускация» вы пройдёте путь от простых примеров обфускации до сложных многослойных головоломок. 9 практических заданий помогут закрепить навыки и научат распутывать код в реальных кейсах.
📘 Понравилась статья?
Больше практики и реальных заданий — в Kraken Academy.
А чтобы точно ничего не пропустить — подпишись на наш Telegram-канал.