Как защитить свои скрипты (обфускация)
Потребовалось мне тут срочно запутать код для, так сказать, защиты от воров. И вот что пришло в голову за пол часа ваяния.
берём файл скрипта: script.js файл список функций для замены, по штуке на строку: arr.txt вида: Block Checker ... Loader а далее заменяем все функции из списка arr.txt в файле script.js на нечто следующее: Block на ththththththhhthht Checker на thththththhhhhthht Loader на thhhthththhhhhthht Ну надеюсь смысл понятен. Чем больше замен тем сложнее расшифровка. Защита не идеальная, но реализация проста. Что думаете? |
Можно прогнать через обфускатор, а потом через jsbeautifier, и читать визуально различимые имена функций.
|
то, что эта "защита" уже реализована например в packer-е
а вообще, кто захочет украсть-сделает это |
Тут смысл в том, что очень трудно отличать названия функций, а после пакера будут просто однобуквенные имена, ориентироваться по которым не так сложно.
|
Цитата:
|
А еще лучше - использовать только символы _ и $. Или юникодовые закорючки.
Но, как заметил Octane, повторная обфускация исправит названия переменных. |
Цитата:
|
|
Цитата:
Цитата:
Цитата:
Я не претендую на шифрование кода, а только на приведение в плохо-читабельный вид. |
Цитата:
__ = __.____()[___.__] Кстати, от приведения переменных к нормальному виду спасет использование свойств объекта. Правда тут может помешать компрессор гугля. |
Цитата:
tftftftftftftttf = tftftftftftfttff.tftftffftftftttf()[tftftftttftftttf.tffftftftftftttf] |
Лучше l1 или O0.
|
Kolyaj,
+1 в некоторых моноширинных шрифтах, эти символы выглядят идентично, что делает вообще невозможным читать код. или можно пойти по стопам Whitespace |
Цитата:
|
Пробельные символы нельзя использовать в именах идентификаторов, но можно любой (или не любой) юникодный символ
var 丠 = 1, 田 = 2; alert([丠, 田]); |
Цитата:
Gozar, а это требование клиента? |
Цитата:
Цитата:
window[' ']=function(){ var scope={}; scope[' ']=123; alert(scope[' ']); } window[' '](); если у вас есть чем порезать JS на токены, то проблемы преобразовани локальных переменных в свойства одной локальной перменной в принципе нету |
Gvozd,
это не идентификаторы :) |
Цитата:
но ведь могут полноценно использоваться вместо них. или я не прав? |
Код в таком стиле писать не вариант, автоматический транслятор написать будет тоже не так просто.
|
Цитата:
|
имхо, не парься и не создавай себе проблем. В большинстве сулчаев это просто не имеет смысла ;)
http://phpclub.ru/talk/showthread.ph...284#post903284 http://phpclub.ru/talk/showthread.ph...548#post903548 и в конце концов, в каких единицах ты будешь оценивать сложность взлома? Думаю, в баксах самое оно: выложить на какой-то хакеро-форум, типа ребята, за сколько вломаете. А потом ведь надо еще прикинуть, на какую цену не согласятся потенциальные взломщики. Хотя можно, конечно, сделать настолько, насколько на _это_ есть время, но это не мой путь ниндзя :) Не люблю не знать, зачем я что-то делаю p.s. интересно было бы узнать, что необходимо защитить для более предметной беседы |
Цитата:
Цитата:
Я просто пытаюсь выиграть время, сколько возможно и получить всё что успею. Любые идеи устаревают или крадутся большинством, как только это произойдет защищать будет нечего. |
ps: хотя можно никому не показывать, а только давать пользоваться, но тут свои сложности.
|
Цитата:
|
Цитата:
|
Я считаю, что защита клиентских скриптов бесполезна. Можно еще защитить серверные скрипты, но клиентские просто не имеет смысла, разве что усложнить чтение, что бы вору в лом было разбираться как что где работает и он со сложностью мог расширить функциональность.
|
я считаю что нужно путать все и клиентские и серверные и может даже базу :)
|
Цитата:
надо не базы путать, а приложение защищать, чтобы никто к ним доступа не смогу получить(кроме тебя, хостера, и отдела К;) ) |
Цитата:
они же разделы create table razdel22555создают. Я когда такой код вижу, аж дрожь пробирает :( |
ドキュメント.で要素を取得するidを('log').内部のHTML:) |
давайте обфусцируем форум, будем общаться на японском или хотя бы на английском, а? (: А то идеи начнут распространятся O.o
|
x-yuri, достаточно просто всех забанить.
|
С садистским блеском в глазах
TRUNCATE TABLE `users`; |
Часовой пояс GMT +3, время: 23:36. |