Могу я вас попросить сделать мне отзыв за красивые глаза?

Недавно меня попросили сделать одну простую вещь со скриптами на сайте. Естественно там все оказалось сложнее чем хотелось бы. Чуть позже я узнал что мой предшественник, что пытался разобраться с этим скриптом, не осилил уличной магии Javasсript. Основной затык, как я понимаю, был в функции eval(function(p,a,c,k,e,r){ …всякая хрень… )). Я думаю веб-разработчики видели это и знают как с этим обращаться. А для тех кто не знает, я попытаюсь пролить немного света.
Архивирование Javasсript-а дело на мой взгляд неблагодарное. Бо разархивировать его придется средствами того-же Javasсript. При этом достигается эффект некого шифрования. Как показывает практика - далеко не у всех хватает ума или знаний расшифровать подобный заархивированный скрипт. Но о расшифровке я расскажу потом. Сейчас речь о шифровании или архивирвоании. Не суть важно как назвать
Для того чтобы сделать из вашего скрипта какую-то неудобочитаемую хрень, которая однако будет работать, можно написать подобный архиватор самому. А можно воспользоваться уже готовым скриптом и быстренько зашифровать свой Javasсript. Пользоваться сим делом достаточно просто - нужно скопировать свой код в верхнее поле, не забыть поставить галочку Base62 encode, скопировать получившийся код из нижнего окошка.
Стоит понимать - чем меньше скрипт, тем меньше эффект. Как от архивации так и от шифрования. На практике это имеет смысл использовать только для больших файлов. Этак от 300 строчек кода. К примеру сим инструментом очень активно пользуются jQuery-сты
как для самой библиотеки так и для плагинов к ней разнообразных.
У большинства людей, что интересуются P.A.C.K.E.R-ом обычно стоит задача не заархивировать свой код, а разархивировать чужой. Внимательные или опытные веб-разработчики без труда смогут это сделать. Для криптоаналитиков это тоже не составит никаких проблем. А вот для начинающих программистов будет очень полезно узнать что такое команда eval и что возвращает эта страшная function(p,a,c,k,e,r){ … }
На самом деле все очень просто. Функция eval выполняет код, переданный ей в параметрах в виде строки. Функция пакера - function(p,a,c,k,e,r){ … } - возвращает строчку с кодом, который нужно выполнить. Соответственно если мы хотим прочитать код, мы можем использовать один из трех следующих вариантов:
// 1. Выводим в текстовое поле, откуда потом копируем это все
document.write('<textarea style="width:100%;height:100%">')
document.write(function(p,a,c,k,e,r){ ... всякая хрень ... })
document.write('</textarea>')
// 2. Выводим в firebug, откуда копируем код.
// Естественно firebug должен быть установлен
console.debug('Этот код был разархивирован:', function(p,a,c,k,e,r){ ... всякая хрень ... })
// 3. Просто выводим это в диалоговое окно.
// Но не все браузеры позволяют копировать текст из диалоговых окон.
alert(function(p,a,c,k,e,r){ ... всякая хрень ... })
К сожалению полученный код получится неотформатированным. Если хочется его комфортно читать и редактировать, придется перебрать код руками, сделав отступы везде где это нужно. Хотя если вам лень перебирать код руками, или вы двумя руками голосуется за автоматизацию рутинных операций - можно воспользоваться автоформатированием в своем любимом редакторе, или сходить на сайт автоформатирования для Javasсript
Вот так легко и просто мы можем получить красивый исходный код, чтобы иметь возможность сотворить с ним все, что пожелает наша душа.
Запись опубликована Эту запись также можно прочитать или откоммунтировать в моем "Неком недоблоге".Вы можете оставить комментарии здесь или тут
"Прогресс сделал электрические розетки недоступными для детей. Умирают самые одарённые". (с)
Юный гений получил радиационное облучение на самодельном аппарате
читать дальше