Как стать автором
Обновить

Комментарии 62

Неужели существуют такие параноики которые всем этим пользуются?
Ну, не знаю насчет паранойи, но кое-какие методы, описанные в этой статье, можно встретить в веб-части ДБО.
например существует фреймворк PhoneGap. Который позволяет на джаваскрипте писать под айфон, андроид и другие. Так вот если рапаковать зип готового приложения, там можно весь код прочитать. А когда у вас чуть сложная и закрытая логика — то подобное шифрование полезно.
НЛО прилетело и опубликовало эту надпись здесь
Прочитать часто и бинарник можно, поколдовав дизассемблером. Вопрос — какой ценой:)
НЛО прилетело и опубликовало эту надпись здесь
Да по-разному бывает. Вот я — не стану морочитсья с дизассемблером, хотя выдавал бы он мне магически «исходный» например с++ код с нормальными именами переменных, с удовльствием бы копался. У многих, очень у многих это отобьет желание копаться в таком коде и тащить его к себе.
НЛО прилетело и опубликовало эту надпись здесь
Некоторые и процессоры «читают», а Вы говорите :)
Javascript-код и так-то труден для чтения, а обфусцированный javascript-код проще написать заново с нуля, чем прочитать, расшифровать, понять и модифицировать :)
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Провёл с этой темой около пары месяцев. Тяжело работает html интерфейс на устройствах. Даже на айфоне 4 подтормаживает. На 3ем вообще тормозит. Был сделал патч для PhoneGap (http://bit.ly/PhoneGapProtect) но он для айфон версии. Там можно в откомпилированный код хоть как-то положить ключ. В джаве — будет проблема что надо обфусцировать джававский код, потому что из apk можно его потянуть и декомпилировать без особых проблем.
Точнее не декомпилировать, а деодексить. Всё таки разные немного вещи.
Конечно существуют. Взять хотя бы web-malware индустрию — вся на подобных методах построена.
коммерческий проект будете делать — превратитесь в такого же параноика )
Просто обычно прикидывают о времени, что проще: расшифровать обфускат или же реализовать с нуля нужную тебе фичу.
Как показывает личный опыт, шифрование спасает, но не на долго. Если надо — то достанут
Согласен про достанут:)
Я как то искал флешку для загрузки фотографий пачками. Как раз Вконтактике появилась такая флешка. Думал найду подобное, нашел. Стоило 250 баксов.
Думаю, дай куплю. А фиг, оплата пайпалом, а его у меня нет. Не стал замарачиваться с палкой, скачал демку, декомпилировал и нашел метод который проверяет серийник. Подобрал серийник и пользовался в личных целях. Дел на 20 минут, и 250 баксов остались на карте.
А ещё иногда очень интересно деобфусцировать всё, чтобы просто, как говорится, «поржать» над решением какой то проблемы. Я так например нашёл логин и пароль от бд, с которой тягаются данные на страницу, тупо в javascript функции, забиты были хардкодом и это на продакшене =)
Я то думал сейчас будет статья по сравнению js обфускаторов и методов деобфускации :(. По мне так бесполезная информация.
Ох, сколько слов-якорей… «Теневой онлайн-бизнес», «загрузки (iframe)», «спам» и «SEO»…

… А пользоваться этим будет только новичок.

Хотя не ясно зачем?
1) Код новичка и так невозможно будет использовать.
2) Новичок, который первый год программирует — справится лучше любых обфускаторов.
3) А код, написанный профи, будет и так не ясен новичкам ).
4) Если вдруг ты написал хороший код и тебя заметили (стали его использовать), радуйся! Значит не всё потеряно в карьере программиста. :)
Поддерживаю на 100%!
Похоже, первое предзнаменование Армагеддона — появление на Хабре блога «Ксакепа» :(
Ну так он с полгода как
Вы проспали Армагеддон: Р
/словпоке.жпг
Кстати, автор статьи был бы очень рад инвайту, присланному на мыло в конце публикации.
А это его статья в Хакер'е? или это просто копи паст?
Прошу прощения, упустил из вида название блога.
Не публикуют, а по твоей ссылке ничего нет ;)
Меняем eval или this['\x65\x76\x61\x6C'] на alert и получаем код на блюдечке.
Раньше, когда мне попадался код вроде a=-~[]*(""+-~[]+-~-~-~-~-~[]+-~-~true) он казался мне подозрительным… теперь я это знаю абсолютно точно! :)
В CMS Eleanor есть такой способ: какой-нибудь класс обфусцирован в 1 строку (номер строки — 28, например), а в методе __construct этого класса есть условие

if (__line__ == (17 + 11)) {
здесь код
} else die('');

Если не заметить это условие при деобфускации, то экземпляр класса не создается и сайт не работает
Думаю, в 90% случаев всё это делается для повышения ЧСВ и крутости в собственных глазах. Как же, коды с налётом таинственности, причастность к «чему-то особенному».
Лишь 10% случаев для какой-то небольшой временной пользы. (Кому очень нужно будет — всё равно сломают)
Как хорошо что есть плагины к браузеру, типа NoScript и Adblock.
Исполняйте всякую обфусцированную хрень на своих компьютерах — на мой, пожалуйста, не лезьте.

Кстати, а вы знаете что своим долбо-шифрованием загрязняете окружающую среду? Представить страшно, сколько тепла выделится процессорами пользователей пока этот код расшифруется/раскодируется.
Немножко электричества потратилось на написание этого комментария, вы сожгли 0.001 кг угля.
+ куча энергии потратилось на то, чтобы этот комментарий прочитало куча народу, а если еще и ветку продолжат…
Прав был Столлман, как всегда.
Как ][akep был «Мурзилкой» — так он «Мурзилкой» и остался… Данная статья вполне сойдет за подтверждение сказанного.
Ну так отпишитесь, батенька, от этого блога и не парьтесь
Не знаю как сейчас, но раньше там встречались отличные статьи. Например от Криса, десяток средних топиков на хабре одной его статьи не стоит.
Как вариант — изменить или добавить метод в прототип стандартного объекта, например Date, в том же файле с jQuery, который будет использовать код, спрятанный в других уголках страницы, и без палева использовать этот метод когда нужно.
Статья ни о чём.
Напишу сам, если появится техническая возможность, сейчас не могу написать по понятным причинам :)

Рекомендации:
— Убрать все не-кроссбраузерные способы либо допилить их до кроссбраузерности.
— Добавить описания, что именно получается спрятать\усложнить конкретным методом.
— В начале статьи написано про HTML/CSS/изображения — где всё это?
— Про JS можно придумать и реализовать намного более красивые и клёвые способы.
Ну-ну, жду статью
Мдя,
— мне жаль тех кто «защищает» свои коммерческие интересы обфускацией. Если там есть что заимствовать — то никому эта обфускация не помешает, но практика показывает что обфусцируют код, за который стыдно должно быть
— обфусцированный код — очень сильный признак malware. Поскольку очень легко определить обфускацию статистическими методами, то такие горе хакеры только облегчают жизнь системам безопасности.

В качестве альтернативы этим всем школьным методам могу предложить нагружать код флудом, если разбавить код раз в 10 неоптимизируемыми усложнениями, то можно наоборот код аккуратно разбавить хитрыми комментариями и выровнять статистику. При этом конечно же исходный код закрыт, но основная цель — усложнить декомпозицию — достигнута.
А приёмы интересные ) может быть, не оч полезные практически, в силу как раз того, что «меняем eval на alert», но кто знает )))) Хорошая статья )
Как же раздражают эти малолетние «тыкания»…
А статья ничего, забавная.
Пардон за занудство, но это не шифрование, это — кодирование.
escape(); // шифрует строку как URL
unescape(); // дешифрует URL-строку
encodeURI(); // шифрует строку как URI
decodeURI(); // дешифрует URI-строку
как же может быть опасен веб…
НЛО прилетело и опубликовало эту надпись здесь
Зря Вы так, если напишите какую-нибудь игру на JS, то это достаточно актуально
Создается впечатление, что автор не знаком с такими инструментами, как Firebug, например. Настолько много внимания уделено сокрытию имен загружаемых файлов, которые видны как на ладони. Не говоря уж о более специализированных средствах для анализа вебтрафика.

Но для демонстрации превосходства на женским полом самое то :)
см. выше в тексте — «администратор так и не заметила моего скрипта!»
Зря вы так, до сих пор топорными простыми способами можно накручивать клики в адсенсе, бегуне, директе и много где ещё и никто не забанит и будут выплачивать «чеснр заработаные».

Не разу не встречал «администратора с фаербагом» который ищет способы, чтоб его партнёрка стала получать меньше кликов по банерам.
Вы AdSense что-ли называете «партнеркой»? :)
Там знают чуть ли не с какой силой юзер кликнул мышкой на ссылку.
Банят, кстати, легко и непринужденно. Причем, навсегда. Даже если просто поведенческая статистика кликов не понравилась, когда самые настоящие живые люди кликали.

А если речь идет о левых партнерках, где администрации пофиг какие идут клики, то тем более зачем обфускация? Всегда можно динамически подгрузить нужный скрипт и не заморачиваться. Все-равно, на трафике такой клик видно всегда, не зависимо от хитромудрости применяемого скрипта.
AdSense я называю партнёркой.
Хитромудрость скрипта зависит только от того, как гордиться своим скриптом и будут ли на сайт со скриптом стучать люди, в том числе недовольные рекламодатели.

Я говорю совершенно серьёзно, адсенс можно накручивать и не получить бан.
P.S. Там знают, только то, что позволил узнать браузер.
> Администрация…
Хватит тыкать. Вам не приходило в голову, что часть читателей вы потеряли из-за этого школьного тыканья?

Печатное периодическое издание «Компьютерный исследователь»

Получение доступа к программному и аппаратному обеспечению ЦРУ, сената США и Fox NEWS для получения прерывистых горловых звуков, вызываемые короткими выдыхательными движениями.


А если серьёзно, я не могу представить себе человека, который прекращает читать журнал потому, что там к нему обратились на «ты».
Такие люди обычно даже не начинают читать :)
пошагово запустить, да и всё. и любые методы ни к черту, лишь бы исходник был
В примере написано:
[script] alert(document["\x63\x6F\x6F\x6B\x69\x65"]); [/script]
А фрагмент кода на PHP для такого кодирования:
return ('х'.'\\'.implode('х'.'\\',$c));
Если я правильно понимаю, здесь нужно 'x' и '\\' в обоих случаях поменять местами при конкатенации.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий