[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