Попался мне на глаза ресурс, рекомендующий разные обфускаторы и деобфускаторы JavaScript. Решил проверить свои силы и самому поработать деобфускатором. А для проверки нашёл простенький вредоносный файлик. Обфускаторы и деобфускаторы. Первые это приложения (также, утилиты, сервисы), которые изменяют код скрипта до неузнаваемости и усложняющие понимание кода, но при этом сохраняют его возможность всё также исполняться, а вторые - ровно наоборот, восстанавливают читаемость кода человеком. Для начала отметим, что JavaScript может встречаться в разных типах файлов. Начиная с .js, и как вставка в html, заканчивая .pdf и ещё чем-нибудь интересным. Я же остановился на .hta файлике. Это по сути исполняемый файл с кодом html внутри себя, который может быть запущен вне браузера, в приложении mshta.exe, входящем в состав Windows (c:\windows\system32\mshta.exe). Обычному смертному доступно не так много официальных ресурсов для поиска и получения вредоносного файла. Я воспользовался bazaar, где даже можно отфильтровать интересуемые файлики по разным параметрам. Вот прямая ссылка на страничку о сэмпле https://bazaar.abuse.ch/sample, где можно увидеть его хэши, кто и когда добавил его в базу, как детектируется и т.п.. Внимание! Если вы скачаете оттуда какой-нибудь файл, то будете действовать на свой страх и риск. Надо помнить о правилах работы с вредоносными и подозрительными файлами. Файл скачался с оригинальным расширением, поэтому я сразу его переименовываю, добавляю к концу имени файла какой-нибудь символ, чтобы Windows не определила, как его открывать (на случай неаккуратного действия, приводящего к запуску). Обычно это знак подчёркивания. Получилось что-то такое: c370f21f46389e056c8cb0e184422c50.hta_ Файл такого типа можно открыть в обычном текстовом редакторе, так как содержимое по сути является текстом. Видим: Несмотря на то, что я урезал вид файлика, можно увидеть его состав. Внутри html тэгов видны в самом начале base64 строки, за ними запутанный код, чтобы никто сразу не догадался, а антивирусы не смогли задетектировать потоковыми сигнатурами. Ну, поехали. Для того, чтобы увидеть исполняемый код в "первозданном" виде, нам нужно: преобразовать его в чистый код JavaScript, отбросив html конструкции; найти инструкции запуска обфусцированного кода и заменить их на вывод текста кода. Убираем открывающие и закрывающие тэги "html" и "body". Конструкции вида (благо, их не много):  <div id='data'>some_value</div>  ... var  var1 = method('data').innerHTML заменяем на: var data = some_value var var1 = data Убираем открывающие и закрывающие html тэги "script", заменив каждый открывающий тэг на перенос строки (для удобства отладки, если понадобится). У меня получилось вот так: Копируем полученный код в Pretifier и поправляем синтаксические ошибки. Можно и без него, но так нагляднее. В последней строке вызываются функции, им надо передавать значения в скобках, а не через пробел. А двоеточия, разделяющие вызовы функций, следует заменить на символ точки с запятой. Итог: Теперь код структурирован, хоть по-прежнему и не понятен. Но мы уже видим, что сначала у нас объявляются и определяются переменные, затем функции. И последней строкой у нас идёт их запуск. Давайте посмотрим, что запускается: Здесь видим, что создаётся ActiveX объект для запуска jscript кода. Просто заменим запуски в последней строке полученного кода на запуск функции console.log: Переходим, например, на jsconsole и копируем туда полученный на предыдущих шагах код. Нажимаем Enter и наблюдаем результат: В первом блоке мы видим, что отправляется GET запрос к определённому ресурсу, а результат записывается в файл c:\users\public...Во втором блоке мы уже видим, что созданный файл передаётся в качестве параметра к Regsvr32. То есть предполагается, что скаченный файл является COM-dll, что довольно часто встречается в мире вредоносного ПО. Я не претендую на то, что это единственное решение. Например, можно было бы в коде hta поменять строки запуска расшифрованных строк на добавление их в тело документа. Или декодировать base64 строки и потом слепить их как-нибудь, выяснив из алгоритма или интуитивно. Список решений можно продолжать. По хорошему, анализ файла этим не заканчивается. У нас есть в результате URL нового скачиваемого файла. Дальше надо работать с ним, обработав всю цепочку запуска. Можно также выяснить кто или какой регион является целью этих вредоносных файлов, как распространяется изначальный .hta, и т.д..