Распаковка и расшифровка скриптов JavaScript
Эта статья - дополнение к статье про деобфускацию скриптов. Здесь будут рассмотрены основные принципы шифровки и упаковки, слабые места защит, способы ручного снятия, а также универсальные инструменты для автоматического снятия упаковщиков и навесной защиты со скриптов JavaScript. В последнее время все чаще исходный код скриптов шифруется или пакуется. Этим начали увлекаться Яндекс, DLE и другие популярные проекты, а красивые байки про "заботу о пользователях", "экономию трафика" и прочую чушь выглядят очень смешно. Что ж, если кому-то есть что скрывать, значит наша задача вывести их на чистую воду.Начнем с теории. Из-за особенностей выполнения JavaScript все шифровщики и упаковщики, несмотря на их разнообразие, имеют всего два варианта алгоритма:
Code (JavaScript) : Убрать нумерацию
- var encrypted='зашифрованные данные';
- function decrypt(str) {
- // функция расшифровки или распаковки
- }
- // Выполнить расшифрованный скрипт
- eval(decrypt(encrypted));
Code (JavaScript) : Убрать нумерацию
- var encrypted='зашифрованные данные';
- function decrypt(str) {
- // функция расшифровки или распаковки
- }
- // Вывести на экран расшифрованные данные
- document.write(decrypt(encrypted));
В обеих случаях получается, что функциям eval() и document.write() передаются полностью расшифрованные данные. Как их перехватить? Попробуйте заменить eval() на alert(), и в открывшемся MessageBox'е вы сразу увидите расшифрованный текст. Некоторые браузеры позволяют копировать текст из MessageBox'ов, но лучше воспользоваться таким вот полуавтоматическим декодером:
Code (HTML) : Убрать нумерацию
- <html>
- <head><title>JavaScript Decoder</title></head>
- <body>
- <script type="text/javascript">
- // Функция записи в лог результатов расшифровки
- function decoder(str) {
- document.getElementById('decoded').value+=str+'\n';
- }
- </script>
- <!-- Окно лога -->
- <textarea id="decoded" style="width:900px; height:500px;"></textarea>
- <script type="text/javascript">
- // Сюда вставить зашифрованный скрипт, предварительно
- // заменить в нем все вызовы eval() и document.write() на decoder().
- </script>
- </body>
- </html>
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(
c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!
''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e
){return r[e]}];e=function(){return'\w+'};c=1};while(c--)if(k[c])
p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c]);return p}('$.1e
.18=8(j){3 k=j["6-9"]||"#6-9";3 l=j["6-L"]||".u-L";3 m=j["6-L-17"]
||"";3 n=j["1d"]||0;$(5).2(".6-9").14("7");$(5).2(".6-9").Z("7",8(
){3 a=$(5).x();3 o=$(5).x();3 h=$(5).B("C");$(5).v("g-4");$(5).16(
$(k).q());3 t=$(o).2("15");3 c=$(o).2(".b-r");3 d=$(o).2(".b-12");
[остальной такой же бред отрезан]
Сразу скажу, что этот скрипт обработан JavaScript Compressor, его легко узнать по сигнатуре - характерному названию фукнции в начале скрипта. Копируем целиком исходный текст скрипта, заменяем первый eval на decoder, вставляем в декодер и сохраняем его как html-страничку.
Code (HTML) : Убрать нумерацию
- <script type="text/javascript">
- // Сюда вставить зашифрованный скрипт, предварительно
- // заменить в нем все вызовы eval() и document.write() на decoder().
- decoder(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e...
- </script>
Второй пример. Вот html-страничка, накрытая программой HTML Protector. Это страница, демонстрирующая возможности программы, поэтому там задействованы все опции: блокировка выделения и копирования текста, запрет правой кнопки мыши, защита картинок, скрытие строки состояния, шифрование html-кода и т.д. Открываем исходный код, смотрим. В самом верху уже знакомый нам document.write и зашифрованный скрипт. Запускаем его через декодер, получаем функцию расшифровки основного содержимого:
Code (JavaScript) : Убрать нумерацию
- hp_ok=true;function hp_d01(s){ ...вырезано... o=ar.join("")+os;document.write(o)
Code (JavaScript) : Убрать нумерацию
- <script type="text/javascript">
- // Сюда вставить зашифрованный скрипт, предварительно
- // заменить в нем все вызовы eval() и document.write() на decoder().
- hp_ok=true;function hp_d01(s){ .... o=ar.join("")+os;decoder(o);
- hp_d01(unescape(">QAPKRV%22NCLEWC ....
- hp_d01(unescape(">QAPKRV%22NCLEWCEG? HctcQa ...
- hp_d01(unescape(">`mf{%22`eamnmp? !DDDDDD %22v ...
- </script>
От ручной расшифровки перейдем к автоматической. Для снятия защит первого типа я немного модифицировал уже известный вам скрипт Beautify Javascript и откомпилировал его в exe-файл. Он без проблем справляется с большинством виденных мной защит и упаковщиков JavaScript.
Eval JavaScript Unpacker 1.1 (pass: manhunter.ru)
Eval.JavaScript.Unpacker.1.1-PCL.rar (12,124 bytes)
Eval.JavaScript.Unpacker.1.1-PCL.rar (12,124 bytes)
Для более сложных случаев придется пускать в ход тяжелую артиллерию. Это бесплатный проект Malzilla, предназначенный для исследования троянов и другого вредоносного кода. Поскольку все программы, предназначенные для защиты авторского права, являются однозначно вредоносными, Malzilla поможет нам в борьбе с ними. Качаем последнюю версию (на сегодняшний день это 1.2.0), распаковываем, запускаем. Открываем вторую вкладку Decoder, в верхнее окно вставляем код зашифрованного скрипта, нажимаем кнопочку Run script.
Malzilla за работой
В папке eval_temp складываются все результаты выполнения функций eval(), в том числе и промежуточные. Их можно посмотреть, нажав на кнопку Show eval() results, текст откроется в нижнем окне. Его можно скопировать, вставить в верхнее окно и сразу же отформатировать нажатием кнопки Format code. Кроме декодера Malzilla имеет еще множество инструментов и настроек, позволяющих легко снять любую защиту со скриптов JavaScript.
Скрипт успешно расшифрован и отформатирован
Также можно обратить внимание на еще один бесплатный инструмент для работы с зашифрованными скриптами - FreShow. Функций в нем поменьше, но вполне имеет место быть. С офсайта можно скачать демонстрационный ролик, показывающий пример работы с программой.
Как видите, нет ничего сложного в снятии защиты со скриптов JavaScript и с html-страниц. Вы все еще продолжаете защищать свои поганые "аффтарские права"? Тогда мы идем к вам!
Просмотров: 95171 | Комментариев: 83
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(04.07.2024 в 21:46):
by_matrixa, потому что это не шифрование, а обфускация. При шифровании первоначальные данные восстанавливаются в абсолютно точном виде, сохраняется исходный код и логика работы. При обфускации нет никакой возможности, даже теоретической, восстановить исходный код, сохраняется только логика работы.
by_matrixa
(04.07.2024 в 21:43):
Увы, но код с такими строками " (function(_0x5cc5d1,_0x40a908) " не подаются ни чем расшифровке
Елена
(04.11.2020 в 00:14):
Можно повторить https://www.upload.ee/files/11...50.zip.html?
ManHunter
(03.06.2020 в 13:49):
asdf
(03.06.2020 в 13:43):
Линка на FreShow не прожила эти 10 лет. Гуглинг дает мусор. Не подскажете, где сиё творение добыть?
artyr
(22.10.2016 в 04:13):
Спасибо огромное за статью! А то никак не мог поменять настройки модуля из-за зашифрованности js, Malzilla меня спасла.
ManHunter
(09.10.2015 в 13:50):
Выйди в окно, придурок, не засоряй собой генофонд планеты.
asd
(09.10.2015 в 13:22):
ШЛЯПА СТАТЬЯ!!! И ШЛЯПО ПРОГИ!!!! АФТОР ВЫПЕЙ ЧОНИТЬ ИЛИ УБЕЙСЯ ОБ ЧОНИТЬ!!!!
Михаил
(08.07.2015 в 15:38):
Обратиться к сожалению не к кому, придётся как то выкручиваться самому, скрипт обновляется довольно таки часто и защита постоянно меняется. А без него никуда и альтернативы у него тоже нет. Буду лопатить значит кучи мусора в гугле. Данная статья дала возможность продвинуться на 9 шагов из десяти к цели, последний шаг растянется на недели) Ещё раз спасибо и всего вам наилучшего.
ManHunter
(08.07.2015 в 15:16):
Напоминает "я не умею водить машину, покажите мне педали". Результат предсказуем - до первого столба. Поэтому и совет один: обратиться к тем, кто умеет.
Михаил
(08.07.2015 в 14:55):
Опыта просто совсем никакого в таком деле не имеется. Может есть ключевые слова какие то, по которым стоит поискать место отвечающее за безопасность? Буду благодарен за любой совет в данном направлении.
ManHunter
(08.07.2015 в 12:57):
Только глазами. Других способов нет и быть не может.
Михаил
(08.07.2015 в 12:52):
Статья очень познавательная. Большое спасибо за неё автору.
Но есть вотпрос, вот скрипт приведёт в читабельный вид, а как определить место которое отвечает в нём за проверку защиту. Чтоб удалить жто место и он стал фри.
Но есть вотпрос, вот скрипт приведёт в читабельный вид, а как определить место которое отвечает в нём за проверку защиту. Чтоб удалить жто место и он стал фри.
жумабай
(19.06.2015 в 18:43):
отличная статья.давно искал где,как расшифровать скрипты, а то
появились типа Абу и.т.д. умельцы со своими зараженными скриптами.
спасибо!
появились типа Абу и.т.д. умельцы со своими зараженными скриптами.
спасибо!
Ольга
(06.07.2013 в 19:05):
Вот спасибо!!!! Очень-очень полезная статья, и главное как вовремя я ее нашла)))) За три секунды решила проблему как убрать из модуля ненужную ссылку.
фира
(22.01.2013 в 17:34):
а может ли вместо eval() написанно event?
LikeThisBlog
(21.01.2013 в 10:39):
Видимо чекер лажанулся. Просто мои познания в js в крайней степени минимальны, по сему и приходится доверять подобным сервисам, которые могут выдавать ложные срабатывания. =/
В любом случае, спасибо за ответ. ManHunter, всегда приятно читать Ваш блог. ;)
В любом случае, спасибо за ответ. ManHunter, всегда приятно читать Ваш блог. ;)
ManHunter
(19.01.2013 в 20:22):
Это вообще ничем не упаковано, даже обфукскации нет. Максимум что сделано - просто убраны переносы строк. Остальное целиком и полностью какие-то математические расчеты, похоже на модификацию какой-то исходной картинки и последующий ее вывод на страницу.
LikeThisBlog
(19.01.2013 в 20:12):
Озадачился тут расшифровкой одного интересного кода. По затее это вроде б как некая модификация либы StackBlur одним персонажем. При подключении либы к сайту, решил чекнуть её через http://sitecheck.sucuri.net/scanner выдало предупреждение о вложенной обфускации кода, есессно, сия "модификация" была послан нах и взята с офсайта, но любопытство взяло верх, захотелось выяснить что именно зашифрованно в либе. Начал рыть инет, нарыл туеву кучу онлайн говносервисов, которые ничего не смогли сделать, потом вспомнил о блоге ManHunter`а. =) Попробовал Unpackerom, результата не принесло. =( Решил написать сюда. В общем, вопрос так и остаётся открытым, чем это запаковано?? Линк на PasteBin - http://pastebin.com/CgUXYjFL
Анрейко
(22.10.2012 в 01:49):
Malzilla Помогла моментально!!)))) очень хороша
Ilya
(21.10.2012 в 21:14):
Спастбо большое, прекрасная статься очень помогла мне!, благодарю!
Spektrum
(17.08.2012 в 21:26):
Очень интересная статья.Вы мне очень помогли.Респект!!!
Виталий
(01.08.2012 в 02:26):
http://use.pp.ua/code/ сервис шифрования
-Kaizer-
(29.07.2012 в 06:24):
Огромное спасибо!
Все получилось, дешифровал и деобфусцировал скрипт, работает! :)
Все получилось, дешифровал и деобфусцировал скрипт, работает! :)
ManHunter
(24.07.2012 в 17:46):
Ну так и не качай ничего, не мне же надо, а тебе.
tun
(24.07.2012 в 17:27):
а тройнец то лежит)
андр.
(30.03.2012 в 23:03):
а чё за тип?
фигня такая же..ток не могу понять как раскодировать
фигня такая же..ток не могу понять как раскодировать
ManHunter
(12.01.2012 в 16:58):
Это не скрипт, а набор букв.
Gwynbleidd
(12.01.2012 в 16:57):
FFE51C7BFE5C849FFE9106EA4CD подскажете чем ето ява скрит кодирован? и как розкодировать зарание благодарен
Алексей
(23.07.2011 в 19:44):
Хотел бы узнать можно ли скрипт, перенастроить? И кто это может сделать?
ManHunter
(18.01.2011 в 23:34):
Здесь ничего не удаляется. Качай браузером и будет тебе счастье.
AK
(18.01.2011 в 23:25):
Не качается Unpacker :(
Удален?
Удален?
Алексей
(18.01.2011 в 11:37):
очень жаль
ManHunter
(18.01.2011 в 07:23):
Не мог бы.
Алексей
(18.01.2011 в 06:21):
Здравствуйте.
Не могли бы Вы немного доработать Eval JavaScript Unpacker, чтобы можно было его использовать в командной строке, примерно в виде:
eval.javascript.unpacker.exe in=input-file.js out=output-file.js
https://github.com/rhoney/jsBeautifier.net эта утилитка должна делать то, что мне нужно, но почему-то просто молча завершается :(
malzilla всё четко раскодирует, но не умеет обрабатывать файлы из командной строки
Если можете помочь, напишите мне, пожалуйста, на alein.taseevo[at]gmail[dot]com
Заранее спасибо
Не могли бы Вы немного доработать Eval JavaScript Unpacker, чтобы можно было его использовать в командной строке, примерно в виде:
eval.javascript.unpacker.exe in=input-file.js out=output-file.js
https://github.com/rhoney/jsBeautifier.net эта утилитка должна делать то, что мне нужно, но почему-то просто молча завершается :(
malzilla всё четко раскодирует, но не умеет обрабатывать файлы из командной строки
Если можете помочь, напишите мне, пожалуйста, на alein.taseevo[at]gmail[dot]com
Заранее спасибо
ManHunter
(21.09.2010 в 23:38):
Это не вордпресс, тут все написано своими руками.
Beginner
(16.09.2010 в 23:46):
А где взять такой хайлайтер синтаксиса под Wordpress как у вас?
А то мне не нравятся ссылки с хайлайтера на [спам],
а сам не могу убрать, там eval(function(p,a,c,k,e,d)
А то мне не нравятся ссылки с хайлайтера на [спам],
а сам не могу убрать, там eval(function(p,a,c,k,e,d)
Евгений
(29.08.2010 в 00:32):
Спасибо большое!Как и Guron_utf8 хотел рсшифровать это меню, и получилось!Благодаря вашим рекомендациям,Malzille и включённым мозгам!)))
Олег
(18.08.2010 в 16:35):
я имел в виду усложнит "Заменой имен переменных и функций".
Кстати, есть джава-приложение этого компилера. Оно может несколько взаимосвязанных файлов обработать.
А вообще, говорят, что код, получаемый этим компилиром работает быстрее.
ну по крайней мере польза от него уже есть. Код меньше места занимает.
Кстати, есть джава-приложение этого компилера. Оно может несколько взаимосвязанных файлов обработать.
А вообще, говорят, что код, получаемый этим компилиром работает быстрее.
ну по крайней мере польза от него уже есть. Код меньше места занимает.
ManHunter
(18.08.2010 в 15:17):
Каким образом усложнит? Удалением пробелов и переносов строк? Ну так это решается им же самим, достаточно просто отформатировать код. Заменой имен переменных и функций? Это тоже не новость, так делают 99% обфускаторов и оптимизаторов JS. А вот синтаксическая оптимизация кода мне понравилась.
Олег
(18.08.2010 в 15:10):
Усложнить задачу разбора твоего js-Кода (только усложнить, а не защититить)
поможет Google compiler, http://closure-compiler.appspot.com/home
кстати, он может работать как beautifer.
поможет Google compiler, http://closure-compiler.appspot.com/home
кстати, он может работать как beautifer.
Isaev
(21.07.2010 в 01:54):
Отличная статья!
Malzilla - зверь вообще! Ещё бы научиться пользовать весь её функционал...
И остальной софт довольно интересный, всё новое никогда не слышал :)
Malzilla - зверь вообще! Ещё бы научиться пользовать весь её функционал...
И остальной софт довольно интересный, всё новое никогда не слышал :)
ManHunter
(25.06.2010 в 18:53):
Плохо старался. Eval JavaScript Unpacker разбирает это за секунду.
Михаил
(25.06.2010 в 18:51):
сам не смог получить рабочий код, используя Ваши рекомендации а код такой:
[удалено]
[удалено]
tasy
(02.06.2010 в 01:16):
Ламеры, блин...
Евгений
(27.05.2010 в 11:53):
Спасибо!
ManHunter
(02.04.2010 в 17:03):
Можно. Меньше чем за минуту.
Sundin
(02.04.2010 в 17:02):
Можно ли по этой статье расшифровать это:
[удалено]
[удалено]
ManHunter
(27.03.2010 в 14:18):
В мире есть просто оптимисты, есть неисправимые наивные оптимисты, а есть такие, которые пишут "постучи мне в аську", "напиши мне на мыло" и т.п.
Сергей
(27.03.2010 в 14:12):
Как расшифровать вот это ?????
отпишите в асю [del]
[удалено]
Мля я не то скачал....)))...По скринам догнал что интерфейс другой должен быть ............АХаах....
отпишите в асю [del]
[удалено]
Мля я не то скачал....)))...По скринам догнал что интерфейс другой должен быть ............АХаах....
Guron_utf8
(19.03.2010 в 19:09):
спс огромное,в 20 сек расшифровал скрипт меню http://apycom.com/,
pompey
(03.03.2010 в 00:15):
Ваууу! Вот это статья! Спасибо большое! Respect man!
ManHunter
(11.02.2010 в 23:27):
А в голове мозгов нет. Мои соболезнования.
also
(11.02.2010 в 23:26):
бугага! в архиве трой.
Komyak
(27.01.2010 в 09:47):
ManHunter, спасибо!
Меня сюда привел поиск deIonCube, его я не нашёл, зато увидел много интересного. Только что удалил, с помощью этой фичи, сткчалку из скрипта.
Меня сюда привел поиск deIonCube, его я не нашёл, зато увидел много интересного. Только что удалил, с помощью этой фичи, сткчалку из скрипта.
ManHunter
(22.01.2010 в 17:26):
А какой смысл в полной деобфускации? Распаковал, вынес нафиг всю защиту типа триала, привязки к домену, баннеров и прочей хни, причесал исходник до читаемого состояния и пользуйся на здоровье. Тем более с тех пор, как человечество придумало деньги, количество нерешаемых проблем резко сократилось.
BasTaller
(22.01.2010 в 17:24):
Всё конечно хорошо для простых скриптов на несколько переменных...
А когда это более-менее приличный класс, - замучаешься расставлять переменные...
А когда это более-менее приличный класс, - замучаешься расставлять переменные...
ManHunter
(29.12.2009 в 19:38):
Камменты подчистил. Нужна помощь в распаковке и исследованиях - готовьте деньги. А все халявщики могут идти лесом.
Alexandr
(24.11.2009 в 10:22):
Благодаря статье, открыл для себя Malzilla. Спасибо за статью.
Ismail
(11.11.2009 в 15:06):
Огромное спасибо, все работает!
p.s. буду частым гостем...
p.s. буду частым гостем...
ManHunter
(11.11.2009 в 14:52):
Можно. Затрачено времени около 10 секунд, включая копирование.
Ismail
(11.11.2009 в 14:50):
Можно ли руководствуясь вашим постом расшифровать это:
<script type="text/javascript">document.write(unescape('%3C%6C%69 %6E% 6B%20%72%65%6C%3D%22%73%74%79%6C%65%73%68%65%65%74 %22%20%74%79%70%65%3D%22%74%65%78%74%2F%63%73%73%2 2%20%68%72%65%66%3D%22%68%74%74%70%3A%2F%2F%66%65% 6E%69%78%6F%6E%65%2E%72%75%2F%64%69%7A%61%69%6E%2F %66%6C%65%73%68%69%6E%66%6F%72%6D%65%72%2F%74%61%6 2%63%6F%6E%74%65%6E%74%2E%63%73%73%22%20%2F%3E')); </script>
<script type="text/javascript">document.write(unescape('%3C%6C%69 %6E% 6B%20%72%65%6C%3D%22%73%74%79%6C%65%73%68%65%65%74 %22%20%74%79%70%65%3D%22%74%65%78%74%2F%63%73%73%2 2%20%68%72%65%66%3D%22%68%74%74%70%3A%2F%2F%66%65% 6E%69%78%6F%6E%65%2E%72%75%2F%64%69%7A%61%69%6E%2F %66%6C%65%73%68%69%6E%66%6F%72%6D%65%72%2F%74%61%6 2%63%6F%6E%74%65%6E%74%2E%63%73%73%22%20%2F%3E')); </script>
ManHunter
(30.08.2009 в 00:41):
Вообще-то там jQuery, но не суть :)
coolhaXOR
(29.08.2009 в 13:38):
Допедрил наконец-то как все работает в этом скрипте. Здесь используется знаменитый prototype (яваскрипт для упращения работы вебмастеров). При помощи него и свойства innerHTML производится проверка всей страницы посимвольно и если символ входит в русский аски (АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя) то производится замена на символ из строки подстановки, которая указывается явно, в ней только производится сдвиг для отвода глаз.
Осталось только написать программу на дельфях для замены содержимого файлов аналогично яваскрипту. Ура!
Осталось только написать программу на дельфях для замены содержимого файлов аналогично яваскрипту. Ура!
ManHunter
(14.08.2009 в 18:30):
Регулярки тут не помогут, символы по таблице соответствия надо менять одновременно за один проход, а не по очереди. Программ с такой табличной заменой я тоже не видел. Если б подобная задача стояла передо мной, то я б нарисовал скрипт на php из десятка строчек, там есть хорошая функция strtr, она как раз и выполняет подобное действие.
А JS лучше исследовать головой и руками, иначе ничему не научишься.
А JS лучше исследовать головой и руками, иначе ничему не научишься.
coolhaXOR
(14.08.2009 в 16:13):
Все верно, работает. Я в первый раз попробывал через malzilla-у поэтому не вышло. А при помощи Eval.JavaScript.Unpacker все получилось, интересно почему?
Прошу совета: мне нужно около 200 зашифрованных страниц привести в нормальный вид, предполагаю что это можно сделать "массово" через регулярные выражения, но при помощи какой программы?
И чем удобнее всего исследовать яваскрипты?
Кстати, спасибо за оперативность!
Прошу совета: мне нужно около 200 зашифрованных страниц привести в нормальный вид, предполагаю что это можно сделать "массово" через регулярные выражения, но при помощи какой программы?
И чем удобнее всего исследовать яваскрипты?
Кстати, спасибо за оперативность!
ManHunter
(14.08.2009 в 14:10):
Распаковал, сохранил, запустил, все работает. Что я делаю не так?
http://ifolder.ru/13539093
И можно обойтись вообще без расшифровки скриптов. Символы повторяются, делаешь таблицу какому символу соответствует исходный зашифрованный и после этого легко можешь преобразовать любой текст в обе стороны. Тем более, что подменяются только русские буквы.
http://ifolder.ru/13539093
И можно обойтись вообще без расшифровки скриптов. Символы повторяются, делаешь таблицу какому символу соответствует исходный зашифрованный и после этого легко можешь преобразовать любой текст в обе стороны. Тем более, что подменяются только русские буквы.
coolhaXOR
(14.08.2009 в 13:53):
Ну по-крайней мере попытка копи-паста на такой странице не возможна для неподготовленного человека (выдает мусор), и текстовую информацию на странице без шифровщика добавить нельзя.
Попробуй распаковать оба скрипта jquery.js и globals.js, сохранть их распакованными и запустить страницу - работать не будет.
Защита не моя, просто я попытался вскрыть ее чтобы перешифровать учебник но из-за недостатка знаний не смог.
Попробуй распаковать оба скрипта jquery.js и globals.js, сохранть их распакованными и запустить страницу - работать не будет.
Защита не моя, просто я попытался вскрыть ее чтобы перешифровать учебник но из-за недостатка знаний не смог.
Василий
(16.07.2009 в 14:44):
Огромное спасибо за статью. Весь инет облазил (скрипт попался закодированый). Решение нашел только здесь. Все вскрыл и посмотрел. Спасибо.
ManHunter
(01.07.2009 в 18:11):
DiFor, кинь мне, пожалуйста, пример такого кода, если найдешь. Посмотрим за какое время я его по косточкам разберу.
DiFor
(01.07.2009 в 18:08):
что даст? нууу может быть какое-нибудь самоутверждение типа: "я написал, а они не смогли снять, уии, ляляля))".
ManHunter
(26.06.2009 в 08:44):
DiFor, и что это даст? Один фиг все эти навороты в конечном итоге сведутся к банальному eval('расшифрованная строка'). Стало быть это действие может быть легко перехвачено. А любое усложнение алгоритма шифровки никак не добавляет стабильности приложению.
DiFor
(26.06.2009 в 07:13):
насчет того, что нельзя усложнить рип кода - сильное заблуждение, усложнить можно очень сильно. в итоге процентов 90 просто забьют и даже не будут пытатся, как насчет не обфускации, а непосредственного шифрования+ разделения шифро-кода и самого ключа шифрования по разным подгружаемым файлам имеющим "время жизни", кукам, етк. если сильно заморочиться, то можно сильно помешать копи-паст =\
64-ядерный процессор
(17.06.2009 в 19:56):
Ненавижу веб-мастеров, которые занимаются этой дрянью! Я имею в виду шифровку своих страниц. Тут тегов-то с гулькин нос, а после шифровки получается цдоровый и никому не нужный код.
Hamman
(02.06.2009 в 18:11):
Спасибо огромное за статью! А то никак не мог поменять настройки модуля из-за зашифрованности js, Malzilla меня спасла.
Константин
(13.05.2009 в 17:30):
За программку спасибо!
Опыта пока маловато в таких делах, а скрипты коммерческие изучать охота!
Опыта пока маловато в таких делах, а скрипты коммерческие изучать охота!
ManHunter
(13.02.2009 в 23:00):
коля, тут нет ничего зашифрованного. Теперь ты мне очень срочно должен $100 за консультацию. А русский язык учи, пригодится.
коля
(12.02.2009 в 17:16):
пожалуста помогите рашифровать это я пробывал у меня не чего не выходит очь срочно надо в долгу не останусь
[вся тупая херня удалена]
[вся тупая херня удалена]
Игорь Авдеев
(29.01.2009 в 12:46):
Спасибо большое за статью и ссылку на malzilla. Задолбали вирусописатели. Теперь есть инструмент, чтобы посмотреть куда ведут зашифрованные ссылки.
ManHunter
(10.01.2009 в 11:10):
Павел, а разве из статьи непонятно, что все эти потуги бессмысленны? JS - это не тот язык, в котором можно поставить серьезную защиту. Не хочешь чтобы твой код рипали - не показывай его никому, вот и все решение.
Павел
(10.01.2009 в 06:33):
Хотелось бы, теперь наоборот - узнать как можно максимально усложнить задачу тем, кто пытается скопировать у тебя наработки на js?
ManHunter
(04.11.2008 в 21:49):
Nutscracker, тут смысл в том, чтобы показать как это делается ручным способом, без привлечения аддонов и черной магии :) А когда уже у людей будет понимание самого процесса, вот тогда они смогут снять любую известную и неизвестную защиту.
Nutscracker
(04.11.2008 в 17:34):
> http://www.antssoft.com/htmlpr...d_sample.htm
Вялая защита. Впрочем, я сильно сомневаюсь, что тут возможна неснимаемая защита.
Нужно только вытянуть document.body.innerHTML (или document.body.textContent – по ситуации) и поиграться с заменой через регулярные выражения (видел похожую штуку, но со скрытым мусором среди полезного текста).
А тут можно даже через
Выделить всё – Копировать или Исходный код выделенного фрагмента (нужен правильный браузер и запрет перехвата контекстного меню)
А в Opera можно воспользоваться кнопкой вызова контекстного меню на клавиатуре.
А вообще, такие безобразия неплохо лечатся с помощью NoScript ( https://addons.mozilla.org/ru/...ox/addon/722 ):
отключить в настройках автообновление страницы – разрешить скрипты – получить страничку с текстом – запретить скрипты
:)
Вялая защита. Впрочем, я сильно сомневаюсь, что тут возможна неснимаемая защита.
Нужно только вытянуть document.body.innerHTML (или document.body.textContent – по ситуации) и поиграться с заменой через регулярные выражения (видел похожую штуку, но со скрытым мусором среди полезного текста).
А тут можно даже через
Выделить всё – Копировать или Исходный код выделенного фрагмента (нужен правильный браузер и запрет перехвата контекстного меню)
А в Opera можно воспользоваться кнопкой вызова контекстного меню на клавиатуре.
А вообще, такие безобразия неплохо лечатся с помощью NoScript ( https://addons.mozilla.org/ru/...ox/addon/722 ):
отключить в настройках автообновление страницы – разрешить скрипты – получить страничку с текстом – запретить скрипты
:)
Добавить комментарий
Заполните форму для добавления комментария