Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.07.2010, 23:07
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Как защитить свои скрипты (обфускация)
Потребовалось мне тут срочно запутать код для, так сказать, защиты от воров. И вот что пришло в голову за пол часа ваяния.

берём файл скрипта:
script.js


файл список функций для замены, по штуке на строку:
arr.txt


вида:
Block
Checker
...
Loader


а далее заменяем все функции из списка arr.txt в файле script.js на нечто следующее:
Block на ththththththhhthht
Checker на thththththhhhhthht
Loader на thhhthththhhhhthht


Ну надеюсь смысл понятен. Чем больше замен тем сложнее расшифровка.

Защита не идеальная, но реализация проста.

Что думаете?
Ответить с цитированием
  #2 (permalink)  
Старый 01.07.2010, 23:14
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Можно прогнать через обфускатор, а потом через jsbeautifier, и читать визуально различимые имена функций.
Ответить с цитированием
  #3 (permalink)  
Старый 01.07.2010, 23:36
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

то, что эта "защита" уже реализована например в packer-е
а вообще, кто захочет украсть-сделает это
Ответить с цитированием
  #4 (permalink)  
Старый 01.07.2010, 23:49
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Тут смысл в том, что очень трудно отличать названия функций, а после пакера будут просто однобуквенные имена, ориентироваться по которым не так сложно.
Ответить с цитированием
  #5 (permalink)  
Старый 01.07.2010, 23:52
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от Gvozd Посмотреть сообщение
а вообще, кто захочет украсть-сделает это
Логику придется понять, а это самое главное.
Ответить с цитированием
  #6 (permalink)  
Старый 02.07.2010, 00:11
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

А еще лучше - использовать только символы _ и $. Или юникодовые закорючки.
Но, как заметил Octane, повторная обфускация исправит названия переменных.
Ответить с цитированием
  #7 (permalink)  
Старый 02.07.2010, 01:57
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от B@rmaley.e><e
Или юникодовые закорючки.
вы таки читаете мои мысли)))
Ответить с цитированием
  #8 (permalink)  
Старый 02.07.2010, 09:34
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://utf-8.jp/public/jjencode.html
Ответить с цитированием
  #9 (permalink)  
Старый 02.07.2010, 11:12
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от B@rmaley.e><e Посмотреть сообщение
А еще лучше - использовать только символы _ и $. Или юникодовые закорючки.
чем лучше? пример, пожалуйста.

Сообщение от B@rmaley.e><e Посмотреть сообщение
Но, как заметил Octane, повторная обфускация исправит названия переменных.
дело в затраченном времени на это.

Сообщение от Kolyaj Посмотреть сообщение
http://utf-8.jp/public/jjencode.html
не всё будет работать после применения, хотя этот вариант мне больше всего нравиться.

Я не претендую на шифрование кода, а только на приведение в плохо-читабельный вид.
Ответить с цитированием
  #10 (permalink)  
Старый 02.07.2010, 11:59
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от Gozar
чем лучше?
Нечитабельностью.
__ = __.____()[___.__]


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

Последний раз редактировалось B@rmaley.e><e, 02.07.2010 в 12:05.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие div блока при первом визите на сайт Nushaba Общие вопросы Javascript 28 20.12.2013 21:24
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20
Как писать скрипты под Opera? ucsus (X)HTML/CSS 2 15.04.2009 13:07
Как защитить файл js от скачивания с сервера? slon Общие вопросы Javascript 2 02.07.2008 01:14