Caesar, криптор-обфускатор для JS
Caesar, криптор-обфускатор для JS
Код товара: 102-9348-582 4 305Добавлен: 25.11.2019

Защита Javascript кода от анализа, модификаций и использования на чужих сайтах. Вы можете привязать защищенный скрипт к своему домену, задать время жизни скрипта в минутах, регулировать объем кода после обработки и степень его защиты. Открытый исходный код.

Цена:2379
есть в наличии
Есть вопросы о товаре? Напишите продавцу на странице магазина
Магазин

Общие слова

Как известно, скрипты на Javascript невозможно скомпилировать в исполняемый файл. Поэтому исходный код ваших скриптов легко читаем и, к тому же, потенциально доступен неограниченному числу лиц.

А значит всегда найдется тот, кто будет анализировать ваши скрипты без вашего разрешения. Копировать их части или весь исходный код целиком. Иногда для поиска уязвимостей в структуре вашего сайта, чтобы провести его взлом. Иногда, чтобы украсть, изменить или перепродать ваш код.

Подобный анализ проводится не только в ручную, но часто в автоматическом режиме 24 часа в сутки. Чем менее открыт исходный код Ваших скриптов, тем меньше риск.

Способ защиты

Для защиты JS скриптов от любопытных глаз, вредных рук и непрошеных ботов используют крипторы и обфускаторы.

Крипторы проводят над всем исходным кодом некоторое общее преобразование, переводящее текст скрипта в нечитабельный вид. Например, в простом случае это base64 или XOR. Затем к полученным данным добавляется специальный код распаковщика, который при запуске скрипта в браузере переводит данные в исходный вид и полученный код каким-то образом запускает.

Обфускаторы необратимо меняют сами конструкции исходного кода скрипта. Добавляют между операторами исходного кода "мусорные" инструкции, заменяют читабельные и логичные названия функций, констант и переменных на бессмысленные, с точки зрения человека, имена.

Например: if (BrowserName == "IE") SendRequest(1); превращается if (Е2А==eSx)Pl1(iF0);

Caesar - сочетает в себе возможности и криптора, и обфускатора с дополнительными возможностями.

Результат

Обработав криптором/обфускатором Caesar свой скрипт, вы можете сделать его:

  • Сложным для чужого анализа. Пропадает прежняя структура кода, имена переменных и их значения в понятном виде. Появляются новые, не влияющие на функционал, но отвлекающие на себя внимание участки кода.
  • Неопознанным для ботов. Caesar обеспечивает частичный полиморфизм. Структура и размер защищенного кода меняются при каждом запуске. Автоматические средства анализа и боты поисковых систем будут считать, что видят защищенный код впервые.
  • Защищенным от копирования. Вы можете привязать ваш JS скрипт к вашему домену и на другом сайте он работать не будет.
  • "Живущим" только указанное время. Если нужно, через указанное число минут после создания защищенный скрипт перестанет работать.

При этом для браузера, где этот скрипт выполняется, мало что изменится. Если ваш код создавал на экране форму с кнопками или проводил редирект на другой сайт, это он и будет делать после обфускации.

Ограничения и риски

При разработке все обфускаторы тестируются на безошибочную работу в современных браузерах (Chrome, Firefox, Edge) на общих примерах (манипуляции DOM, редиректы по условию, вычисления в цикле, работа с XMLHttpRequest). Проверяется также работа с jQuery, как с самой популярной библиотекой JS. Полная совместимость с другими библиотеками и старыми браузерами не гарантируется.

Обфускация - это сложный процесс, который требователен к качеству исходного кода и отсутствию ошибок. Защитные решения обфускатора могут быть несовместимы с конкретно вашим кодом.

Запуск

Для запуска криптора-обфускатора Caesar нужен установленный интерпретатор Python версии 3.5 и выше.

В большинстве Linux систем (Debian, Ubuntu, Fedora, Mint и т.д.) Python уже установлен.

Для работы под Windows или MacOS рекомендуется установить бесплатный пакет интерпретатора Python 3. После установки нужно обязательно перезагрузить ОС.

Также Вы можете получить обфускатор под вашу платформу (Windows, Linux) в виде одного бинарного исполняемого файла. В этом случае установка интерпретатора Python не требуется и все работает "из коробки". Для заказа бинарника после покупки криптора свяжитесь с нами через чат.

При успешном запуске Caesar без параметров в консоль выводится краткая справка о параметрах примерно такого вида:

-==[Caesar v2.5]==-

Use syntax: python caesar.py input_file_name output_file_name -d=domain_name -t=live_time_in_minutes -n=yes -cp=cp1251

Parameter -d:
optional, for enable domain guard.
Script will not work on another domain.

Parameter -t:
optional, for enable time guard.
Script will not work after live_time_in_minutes.

Parameter -n:
optional, for disable trash code.
Small size, but low security.

Parameter -cp:
optional, for change default codepage utf8 to another codepage.
Typical change variant: cp1251 (russian text in Windows).
Don't forget to change HTML codepage where script running.
Sample: <META http-equiv="Content-Type" content="text/html; charset=windows-1251">

Example 1: python caesar.py script.js guard.js
Example 2: python caesar.py script.js guard.js -d=supersite.com -t=95
Example 3: python caesar.py script.js guard.js -t=30

Описание параметров

параметр описание

input_file_name* имя файла с исходным Javascipt кодом

output_file_name* имя файла для записи кода после обработки

-d=domain_name включает привязку к домену domain_name (без http://) или IP. При запуске из другого окружения скрипт работать не будет

-t=live_time_in_minutes включает таймер времени жизни защищенного скрипта после создания (live_time_in_minutes - целое число в минутах). После истечения времени - скрипт перестает работать-

n=yes отключает генерацию части мусорного кода для снижения размера выходного файла

-cp=cp1251 меняет кодировку для обработки не латинских символов с дефолтной utf8 на указанную. Например: cp1251 для скрипта при использовании <meta charset='windows-1251'> для основного HTML документа.

* - обязательный параметр.

Особенности использования

  • Убедитесь, что ваш исходный Javascript код написан БЕЗ ОШИБОК перед применением обфускатора. Обфускация - это очень сложный процесс и небольшая ошибка может послужить причиной сбоя в работе скрипта после обфускации. И найти ее потом будет гораздо тяжелее.
  • Внешние кавычки для строк должны быть ДВОЙНЫМИ - "bla-bla". Внутри строки в двойных кавычках можно использовать одинарные"bla-bla 'tra-la-la' bla" или экранированные двойные "bla-bla \"tra-la-la\" bla"
  • Обфускатор изолирует все переменные из исходного скрипта в локальной области видимости. Если задать какую-то переменную внутри исходного скрипта, то из другого скрипта того же html документа ее получить уже будет нельзя. При острой необходимости передачи каких-то значений внутрь/наружу обфусцированного скрипта можно использовать присвоение/чтение свойства глобального объекта window с незанятым ранее именем, например window.blablaname=5; но это может снижать степень защиты.
  • Из исходного javascript кода нужно удалить ВСЕ комментарии, перед применением обфускатора.

Убедитесь, что Ваш javascript код корректно работает, если его записать в одну строку. Добавьте недостающие символы точка-с-запятой там, где они нужны, но иногда опускаются, в надежде, что транслятор JS поймет все сам по символу перевода сроки. Например:

var showmsg=function (msg){
console.log(msg)
}; <--
log("123"); <--
log("321");
  +++ криптор замечательно работает через докер, то что надо!
Ответ продавца Мы рады, что криптор вам понравился!
Anvar
0e5a8aed81854da61952
19.03.2020
  Работает, ошибок пока не нашел. Документацию сделайте поподробнее
Ответ продавца Напишите, пожалуйста в чат, какие вопросы следует описать подробнее
Михаил
8aa5fda5653eb6f3b8d5
25.11.2019

Нет.

Крипторы проводят над всем исходным кодом Javascript некоторое общее преобразование, переводящее текст скрипта в нечитабельный вид. Например base64 или XOR по фиксированному или динамическому значению. Затем к полученным данным добавляется специальный код распаковщика, который при запуске скрипта в браузере переводит данные в исходный вид и полученный код каким-то образом запускает.

Обфускаторы необратимо меняют сами конструкции исходного кода скрипта. Добавляют между операторами исходного кода "мусорные" инструкции, заменяют читабельные и логичные названия функций, констант и переменных на бессмысленные, с точки зрения человека, имена.

Например: if (BrowserName == "IE") SendRequest(1); превращается if (Е2А==eSx)Pl1(iF0);

Взломать можно любую защиту. Как обычно - это вопрос времени и денег.

Задача Caesar поднять планку затрат "взломщика" до такого уровня, когда на взлом придется потратить больше ресурсов, чем на поиск аналогичного скрипта без защиты (или защищенного массовым бесплатным обфускатором, для которого уже есть автоматические распаковщики) или на написание нового кода с нуля.

Человек с начальными знаниями Javascript (и тем более без них) не сможет снять защиту со скрипта средних и более размеров за несколько дней.

Опытному JS кодеру придется потратить от нескольких дней до недель напряженного труда (в зависимости от его квалификации и размера исходного кода), чтобы частично восстановить исходный вид вашего скрипта.

Пробной версии нет. Напишите в чат для какой задачи нужен обфускатор, мы подскажем - подойдут ли наши обфускаторы и если да, то какой из них будет лучше