Как деобфусцировать js код?
Можно как-нибудь деобфусцировать данный код — jsfiddle ? Он из себя представляет смесь jq-плагина placeholder и каких-то других функций(функции).
- Вопрос задан более трёх лет назад
- 5221 просмотр
Комментировать
Решения вопроса 1
Для начала поменяйте eval на document.write, alert или console.log().
Вы получите пол файла.
В конце, где идут скобочные последовательности в консоли выполните строки в консоли без последних скобок (т.е. в конце без вызова «();») и вы получите код функции. Дальше все объединить и восстанавливать имена переменных.
Ответ написан более трёх лет назад
Нравится 2 4 комментария
Хотя я посмотрел это и первая часть есть например сдесь
www.xiper.net/examples/js-plugins/html5-and-css3/p.
И соответственно нормальная
www.xiper.net/examples/js-plugins/html5-and-css3/p.
А вот вторая часть со скобочной последовательностью вызывает интерес, поскольку не связана с первой частью и добавляет скрытые поля к форме с интригующем названием класса «important» и зависимостью от какого-то таймера. Откуда оно у вас?
Как то так
jsfiddle.net/Gw3Y7
Никита Гущин @iNikNik Автор вопроса
@maxaon пытался средствами php и curla автоматизировать действие, но наткнулся на то, что некий JS,замаскированный под плагин вставляет в форму ключ
Бесплатный онлайн деобфускатор Javascript
JavaScript — один из наиболее часто используемых языков программирования в мире веб-разработки.
Учитывая его широкое распространение, неудивительно, что многие разработчики предпочитают обфусцировать свой код для защиты своей интеллектуальной собственности. Однако это может затруднить понимание или изменение обфусцированного кода другими разработчиками. К счастью, существуют инструменты, помогающие деобфусцировать обфусцированный код JavaScript. Одним из таких инструментов является бесплатный онлайн-деобфускатор JavaScript.
Что такое деобфускатор кода JavaScript и как он работает?
Деобфускатор JS — это простой, но мощный деобфускатор для удаления распространенной обфускации Javascript. Он возвращает более читабельную и понятную версию файла.
Он легко переписывает техники обфускации, используемые в коде, и отменяет их.
Некоторые из часто применяемых техник включают обфускацию имен переменных, строк и функций.
Деобфускатор удаляет эти обфускации и заменяет их более осмысленными именами.
Как использовать деобфускатор JavaScript?
Деобфускатор — это простой, но мощный инструмент для удаления распространенных техник обфускации JavaScript.
Чтобы использовать этот инструмент, вам нужно просто скопировать и вставить обфусцированный код JavaScript в поле ввода инструмента.
Затем нажмите на кнопку «Deobfuscate», и результат будет отображен в окне вывода.
Как работает инструмент JS Deobfuscator Source Code Tool?
Программный инструмент работает полностью в браузере.
Для выполнения деобфускации вводимого JS он использует библиотеку с открытым исходным кодом.
Библиотека содержит функции для обнаружения и удаления опечаток, таких как имя переменной, строка и функция.
Деобфускатор также имеет простую панель конфигурации, которая позволяет пользователям выбирать типы техник, которые они хотят удалить.
Когда следует использовать деобфускатор JavaScript Decode?
Деобфускатор JavaScript — это незаменимый инструмент для любого разработчика, например, для тех, кому приходится работать с исходным кодом JavaScript.
Он может помочь вам прочитать и понять код, который был обфусцирован, что облегчает внесение изменений или улучшений.
Кроме того, деобфускатор может предоставить информацию для обнаружения вредоносного кода или понять, как работают методы защиты, что может быть полезно при разработке лучших пакетов для защиты интеллектуальной собственности.
Безопасен ли бесплатный онлайн-деобфускатор JavaScript для использования?
Деобфускатор полностью безопасен в использовании.
Это простой веб-инструмент, который не требует загрузки или установки.
Деобфускатор работает полностью в браузере, что означает, что ваш код не загружается ни на какие серверы.
Однако важно помнить, что деобфускатор может удалить только те методы обфускации, которые не являются вредоносными.
Если минификация вредоносна, она может быть не обнаружена деобфускатором.
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Деобфускация JavaScript кода
Что такое обфускация
Обфускация — это изменение исходного кода таким образом, чтобы он становился трудно понимаемым, но чтобы при этом не изменялась его функциональность. Обфускация применяется для исходного кода на интерпретируемых (а не компилируемых) языках программирования. То есть это JavaScript, PHP, обфускация может применяться для HTML (хотя это язык разметки, а не программирования), CSS и других, программы на которых не компилируют, а запускают в виде простых текстов.
Особенно актуальна обфускация для JavaScript, поскольку в отличии, например, от того же PHP, который выполняется на веб сервере, JavaScript загружается в браузер и каждый пользователь может иметь доступ к скриптам.
Обфускация использует разные приёмы. Один из них — это удаление пробелов. Это называется минимизацией кода и используется не только для запутывания, сколько для ускорения скачивания скриптов. Хотя в таком коде становится действительно трудно разобраться.
Часто при обфускации код превращается в бессмысленный набор функций и строк в которых невозможно разобраться, но которые в конечном счёте делают ровно то же самое, что и исходный код. Но есть и действительно потрясающие примеры обфускации, например, JSFuck может отобразить любой JavaScript код с помощью всего лишь шести следующих символов []()!+
К примеру, следующий код является рабочим JavaScript кодом:
Обфускация используется как легитимными пользователями, которые хотят защитить свои идеи и свой код от воровства, так и хакерами для затруднения анализа их приёмов и программ.
Что такое деобфускация
Деобфускация — это обратный обфускации процесс, то есть перевод кода из трудночитаемого вида в понятный для анализа.
Поскольку методов обфускации множество, то методов и инструментов деобфускации тоже немало и они имеют разные возможности и разную степень эффективности.
Деобфускация нужна как при анализе вредоносного кода, так и при исследовании целевого сайта для понимания логики его работы и поиска уязвимостей.
Пример использования деобфускации будет показан в следующей статье во время «взлома» сайта.
1. Читаемый вид JavaScript в браузере
Современные веб-браузеры умеют сжатый для экономии трафика код разворачивать в исходное состояние. Подробно об этом говориться в статье «Статический анализ исходного кода веб-сайта в браузере», поэтому рассмотрим эту возможность совсем кратко.
В Google Chrome (или Chromium) перейдите в Инструменты веб мастера (кнопка F12), выберите вкладку Sources и интересующий файл:
Нажмите на иконку с фигурными скобками и код будет преобразован в удобный для восприятия вид:
В Firefox эта кнопка доступна на вкладке «Отладчик»:
2. JStillery
JStillery это продвинутый деобфускатор JavaScript через частичное вычисление.
JStillery можно использовать без установки — программа доступна как в виде онлайн сервиса от автора: https://mindedsecurity.github.io/jstillery/.
Установка JStillery
Установка в Kali Linux
sudo apt install npm git clone https://github.com/mindedsecurity/JStillery cd JStillery sudo npm install
Для компиляции сервера (если вам нужен не только инструмент с интерфейсом командной строки, но вы ещё хотите использовать и веб интерфейс):
npm run build_server
Для запуска сервера:
npm run start_server
После этого веб-интерфейс будет доступен по адресу http://localhost:3001
Установка в BlackArch
sudo pacman -S jstillery
Использование очень простое, просто укажите путь до файла для деобфускации:
jstillery /путь/до/файла
3. Универсальный деобфускатор JavaScript кода de4js
de4js — это деобфускатор исходного кода JavaScript и распаковщик.
Поддерживает (деобфусцирует) результат работы следующих инструментов, сервисов, методов:
- Eval, используются, например, в Packer, WiseLoop
- Array, используются, например, в Javascript Obfuscator, Free JS Obfuscator
- _Number
- Packer
- Javascript Obfuscator
- Free JS Obfuscator
- Obfuscator.IO (но не всегда срабатывает, так как этот сервис часто обновляется, что требует обновление деобфускатора)
- My Obfuscate
- Кодирование URL, используются, например, в bookmarklet
- JSFuck
- JJencode
- AAencode
- WiseLoop
Информацию об установке и запуске вы найдёте на странице программы: https://kali.tools/?p=6514
de4js запускается как небольшой сервер к которому можно подключиться веб-браузером. То есть у программы веб-интерфейс.
Перейдите в папку с программой:
cd bin/de4js
npm start
В веб-интерфейсе выберите один из способов ввода обфусцированного исходного кода:
- String — вставить код в окно веб-интерфейса
- Local File — выбрать локальный файл на компьютере
- Remote File — указать адрес удалённого файла
Ниже вы можете указать способ, которым выполнялась обфускация кода JavaScript:
- None
- Eval
- Array
- Obfuscator IO
- _Number
- JSFuck
- JJencode
- AAencode
- URLencode
- Packer
- JS Obfuscator
- My Obfuscate
- Wise Eval
- Wise Function
- Clean Source
- Unreadable
Либо вы можете нажать кнопку «Auto Decode», чтобы de4js автоматически определила способ обфускации. Деобфусцированный код будет показан в окне ниже.
Дополнительные опции, которые вы можете включить или выключить:
- Line numbers — показывать номера строк
- Format Code — форматирование и подсветка синтаксиса кода
- Unescape strings — перевод строк из экранированных последовательностей в нормальный вид
- Recover object-path — восстановить object-path
- Execute expression — вычислить выражения
- Merge strings — объединить (слить) строки
- Remove grouping — удаление группировки
4. JavaScript онлайн деобфускатор deobfuscatejavascript.com
Исходный код этого сервиса не размещён на GitHub’е, но этот продукт тоже с открытым исходным кодом, поскольку все операции выполняются в браузере, а функции деобфускации вынесены в файл http://deobfuscatejavascript.com/deobfuscate.js.
Код, проанализированный этим инструментом, будет выполнен в вашем браузере. Этот инструмент предназначен только для перехвата вызовов, выполняемых функциями eval() и write(), которые обычно используются в качестве конечной функции во вредоносных JavaScript-скриптах. Некоторые вредоносные скрипты могут не использовать эти функции и поэтому могут заразить ваш браузер.
Этот инструмент предназначен для помощи аналитикам в деобфускации вредоносных JavasSripts. Он не интерпретирует HTML, поэтому любой HTML должен быть удалён для правильной деобфускации кода. Скрипт также не должен содержать синтаксических ошибок для получения правильных результатов.
Чёрные дыры, целевые страницы и наборы эксплойтов используют обфускацию для того, чтобы скрыть намерения кода при уменьшении вероятности обнаружения. Когда скрипты упакованы, исходный код становится данными, а видимый код — процедурой деобфускации. Во время выполнения данные распаковываются подпрограммой, и результатом является строка, которая должна быть обработана (исполнена) как код для выполнения. Этот инструмент во время процедуры деобфускации возвращая эту строку кода, но не запускает её выполнение. Полученный код показывается с подсветкой синтаксиса.
5. Деобфускация Obfuscator.IO
Автор сайта Obfuscator.IO ищет программы, которые способны деобфусцировать созданный на этом сервисе код и постоянно меняет, исправляет обфускацию, в результате чего инструменты по деобфускации перестают работать. Поэтому инструменты автоматической деобфускации (включая de4js) обычно отстают от самой последней версии, то есть могут деобфусцировать код созданный ранее на Obfuscator.IO, но не могут деобфусцировать последнюю версию кода. Но это не означает, что это надёжный инструмент чтобы обезопасить свой исходный код — регулярно появляются проекты, которые обходят все методы деобфускации. К тому же, специалисты на заказ могут деобфусцировать любой код.
6. JS Beautifier
Программа JS Beautifier улучшает внешний вид JavaScript кода за счёт переформатирования и проставления отступов. Также умеет распаковывать скрипты упакованные популярным пэкером от Dean Edward. Частично может деобфусцировать скрипты обработанные npm пакетом javascript-obfuscator. Применяется для улучшения читаемости JavaScript кода.
Программа доступна в виде онлайн сервиса от авторов: https://beautifier.io/
Установка JS Beautifier
Установка в Kali Linux
sudo apt install npm sudo npm -g install js-beautify js-beautify -h
Установка в BlackArch
Есть два варианта установки — из репозиториев и как NPM пакет. В репозиториях BlackArch доступна Python версия, её особенности в том, то html-beautify отсутствует вовсе, а css-beautify не устанавливается из-за ошибки. Также есть некоторые другие отличия.
Если вы хотите установить из стандартных репозиториев то выполните следующую команду:
sudo pacman -S python-jsbeautifier
Если вы хотите установить Node.js JavaScript версию, то выполните следующие команды:
sudo pacman -R python-jsbeautifier sudo pacman -S npm sudo npm -g install js-beautify js-beautify -h
Установка в Windows
После установки Python и PIP выполните команды:
sudo pip3 install jsbeautifier sudo pip3 install cssbeautifier
jsbeautifier.py [ОПЦИИ]
js-beautify -f medium.js
Все опции программ из набора инструментов JS Beautifier вы найдёте на странице https://kali.tools/?p=5581
7. UglifyJS
Набор инструментов UglifyJS выполняет различные действия с кодом, написанном на JavaScript не изменяя его функциональность. Программа умеет парсить, сжимать, обфусцировать или, наоборот, делать более читаемым скрипты JavaScript.
В плане деобфускации UglifyJS умеет делать сжатый код JavaScript читаемым.
Установка в Kali Linux
sudo apt install uglifyjs
Установка в BlackArch
sudo pacman -S uglify-js
Пример запуска: для улучшения вида файла используется опция -b; файл (или несколько файлов) нужно указывать перед опциями:
uglifyjs medium.js -b
Также программа может обрабатывать файлы переданные по стандартному вводу:
cat medium.js | uglifyjs -b
Другие опции и возможности на странице https://kali.tools/?p=5594
Заключение
Если я пропустил какой-то инструмент для деобфускации кода JavaScript, то пишите в комментариях!
В следующей статье мы будем стараться обойти защиту сайта, которая написана на JavaScript — мы будем использовать разные подходы, в самых сложных случаях нам пригодятся инструменты для деобфускации. Смотрите продолжение «Атаки на JavaScript».
Связанные статьи:
- Как увидеть JavaScript код, написанный с использованием непечатных символов (91%)
- Обратный инжиниринг с использованием Radare2 (Reverse Engineering) (52.6%)
- Обратный инжиниринг с использованием Radare2 (Reverse Engineering) (часть 2) (52.6%)
- Анализ трояна Snojan (52.6%)
- Анализ вредоносной программы под Linux: плохое самодельное шифрование (52.6%)
- Атаки на JavaScript на примере обхода Social Locker for WordPress (КЕЙС) (RANDOM — 1.8%)
факультете информационной безопасности от GeekBrains? Комплексная годовая программа практического обучения с охватом всех основных тем, а также с дополнительными курсами в подарок. По итогам обучения выдаётся свидетельство установленного образца и сертификат. По этой ссылке специальная скидка на любые факультеты и курсы!
Гайд Как деобфусцировать JavaScript код для вашего кряка.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Всем здарова!
Сегодня вы узнаете как сделать из нечитаемого говна хотя бы что-то человеческое.
За пример я возьму эту js:
Пожалуйста, авторизуйтесь для просмотра ссылки.
(noad взял рандомную)
Итак мы видим такую чертовщину:
Спойлер: SS
Пожалуйста, авторизуйтесь для просмотра ссылки.
Далее мы заходим на сайт
Пожалуйста, авторизуйтесь для просмотра ссылки.
(noad)
Вставляем туда наш код и нажимаем Auto-Decode
Спойлер: ДЛЯ СЛЕПЫХ
Затем мы копируем то, что получилось и вставляем сюда:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Нажимаем Beautify Code
Вуаля!
Но вы скажете: «Что за функции типа _0xe4f4?»
Эти функции мы должны заменить сами.
В своём текстовом редакторе нажимаем Ctrl+H (или же аналог).
После этого откроется вкладка «Заменить». Мы заменяем функции так, чтобы имена совпадали.
Profit!