[Moscow.pm] Обфускатор JavaScript
Михаил Монашёв
postmaster на softsearch.ru
Ср Дек 16 11:12:49 PST 2009
Здравствуйте, Александр.
>> >> AK> Поскольку задача явно редкая, вряд ли есть готовые публичные
>> >> решения.
>> >> AK>
>> >> AK> Это полиморфизм для генерации дорвеев, что ли?
>> >>
>> >> С точностью до наоборот. Для борьбы со спамерами.
>>
>> AL> Я вот антиобфускатор писал. Основан на модуле JavaScript из CPAN.
>> AL> Понимает любой навороченности JavaScript-конструкции и отлично
>> AL> антиобфуцирует скрипты, пользующиеся document.write. Не
>> AL> поддерживает более хитрые способы формирования текста, например,
>> AL> работающие через DOM. Но живых обфускаторов, которые это умеют
>> AL> делать, не встречал.
>>
>> AL> Можешь потестировать свой обфускатор :)
>>
>> Огромное спасибо.
>> Значит надо накрепко привязывать JS-код к браузеру. Вот только как это
>> сделать? Пока в голову приходит только использовать DOM-объекты для
>> хранения значений переменных. Плюс вместо вызова функций использовать
>> их вызов по таймауту. Но этого мало...
AL> Вообще, это заведомо проигрышная война. Любую хитрость можно проанализировать
AL> и реализовать в эмуляторе браузера (коим и является jsextract). Грубо говоря,
AL> ты делаешь document.write('<div id="aaa1"></div>');
AL> document.getElementById('aaa1').innerHTML='blah-blah', а я учу антиобфускатор
AL> парсить html, запоминать ID дивов, а потом реализую для них innerHTML ну и
AL> т.д.
AL> Тут можно только сколь угодно сильно затруднять анализ. Максимум приёмов,
AL> которые ещё желательно периодически чередовать и обновлять. Привязка к
AL> браузеру, подгрузка через ajax, проверка каких-нибудь переменных браузера,
AL> связь с куками, таймеры и т.д. и т.п. Просто чтобы враги за##ались каждый раз
AL> подстраиваться.
AL> Если встанет задача разобрать заведомо любую обфускацию, я бы взял
AL> какой-нибудь firefox и выковырил из него парсер. Если ты делаешь все это,
AL> чтобы капчу спрятать, то искать её уже со скриншота окна firefox, а не
AL> разбираясь в хитросплетениях JS.
Угу. Именно для этого.
Хочу сильно усложнить создание бота для спама моих сайтов. Капчу
обходят через антикапчу (1$ за 1000 распознанных капч). А так передача
капчи серверу антикапчи была бы усложнена.
--
С уважением,
Михаил Монашёв, SoftSearch.ru
mailto:postmaster на softsearch.ru
ICQ# 166233339
http://michael.mindmix.ru/
Без бэкапа по жизни.
Подробная информация о списке рассылки Moscow-pm