Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.03.2012, 00:57
Аватар для InSys
Интересующийся
Отправить личное сообщение для InSys Посмотреть профиль Найти все сообщения от InSys
 
Регистрация: 01.02.2012
Сообщений: 12

Полиморфный обфускатор
Ребят, вообщем мне тут задачу дали, написать полиморфный обфускатор. Его цель - динамически зашифровывать JS, так чтобы максимально усложнить написание программы которая могла бы этот JS расшифровать. Т.е. повторюсь цель не прятать JS от антивирей, а цель максимально усложнить получение значения некой переменной из заобфусцированного кода.

В интернете нагугливается полиморфный криптор-обфускатор JavaScript/HTML/VBS, но, к сожалению, он заобфусцированн, и разобраться как он работает в таком виде, практически нереально.

Вообщем подкиньте, пожалуйста, идеи как такое можно будет реализовать.
Ответить с цитированием
  #2 (permalink)  
Старый 16.03.2012, 01:00
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от InSys
В интернете нагугливается полиморфный криптор-обфускатор JavaScript/HTML/VBS, но, к сожалению, он заобфусцированн, и разобраться как он работает в таком виде, практически нереально.
Если есть мозги, в любом коде можно спокойно разобраться. Лично меня еще не один обфускатор не останавливал, когда мне нужно было что-то выяснить.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 16.03.2012, 01:04
Аватар для InSys
Интересующийся
Отправить личное сообщение для InSys Посмотреть профиль Найти все сообщения от InSys
 
Регистрация: 01.02.2012
Сообщений: 12

Сообщение от devote Посмотреть сообщение
Если есть мозги, в любом коде можно спокойно разобраться. Лично меня еще не один обфускатор не останавливал, когда мне нужно было что-то выяснить.
Обфускацию я то снял, это не такая-то проблема, но разобратся в получившейся мешанине кода - очень сложно.

Да и мне желательно понять саму суть алгоритма, идею полиморфной обфускации, если можно так сказать.
Ответить с цитированием
  #4 (permalink)  
Старый 16.03.2012, 01:27
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от InSys
но разобратся в получившейся мешанине кода - очень сложно.
Сообщение от InSys
Да и мне желательно понять саму суть алгоритма, идею полиморфной обфускации, если можно так сказать.
Дык отформатируй мешанину и смотри что надо. Не знаю как для других браузеров, но для оперы есть плагин который форматирует говнокод в нормальный вид https://addons.opera.com/ru/addons/e....0/?display=en
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 16.03.2012, 01:41
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,576

/g javascript beautifier
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 16.03.2012, 07:57
Аватар для InSys
Интересующийся
Отправить личное сообщение для InSys Посмотреть профиль Найти все сообщения от InSys
 
Регистрация: 01.02.2012
Сообщений: 12

Ребят, да код то я отформатировал, но все равно разобратся в нем - гемор еще тот.

Я прошу помочь с возможными идеями которые мне могут помочь при написании СВОЕГО обфускатора, кто уже сталкивался с подобными задачами?
Ответить с цитированием
  #7 (permalink)  
Старый 17.03.2012, 15:13
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

InSys, проявите фантазию:

___ = '';_____ = ~!![];____ = !![]|[];eval((___ + +{})[~(_____ )] + (![] + ___)[~(_____ )+____] + (___ + !!(____))[~(_____ )+~(_____ )+____] + (___ + !!(____))[____] + (___ + !!(____))[+[]])(____) //alert(1)

Последний раз редактировалось monolithed, 17.03.2012 в 16:29.
Ответить с цитированием
  #8 (permalink)  
Старый 17.03.2012, 16:27
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Или вот тоже самое только без ключевых слов совсем:

___ = '';____ = !![]|[];_____ = ~!![];____________ = !![];_____ = ~____________;____ = ____________|[];______ = (___ + {});________ = (___ + ____________);_________ = (____________)[![]];__________ = ~(_____ )+____;__ = ______[__________ * __________ + ____________] + ______[____] + (___ + (_________))[____] + (___ + ![])[~(_____ ) +____ + ____________] + ________[+[]] + ________[____] + (___ + (_________))[+[]] + ______[__________ * __________ + ____________] + ________[+[]] + ______[____] + ________[____];[][__][__]('_', ((___ + +{})[~(_____ )] + (![] + ___)[~(_____ )+____] + (___ + !!(____))[~(_____ )+~(_____ )+____] + (___ + !!(____))[____] + (___ + !!(____))[+[]]) + '(_)')(____); //alert(1)


Разберите, тут все очень просто.

Последний раз редактировалось monolithed, 17.03.2012 в 18:02.
Ответить с цитированием
  #9 (permalink)  
Старый 17.03.2012, 17:47
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

monolithed,
словами что тут все легко ты мне бросил вызов! Первый раз занимаюсь подобной хренью, но я пойму что это значит!
Первая часть рассуждений, все что в комментариях, строго мои мысли, и ничьи другие. И идут они в той послдедовательности, в которой пришли ко мне в голову
___3 = ''; // ''
____4 = !! [] | []; // | возвращает 1(typeof === Number) если хотя бы один из операндов true. Что такое "!!" так и не понял
_____5 = ~ !! [];  /* ~ Возвращает число в таком виде: -(m+1), где m - наше число. Появились предположения что такое "!!", например:
var a = false;
alert(!! a) // false
alert([] | []) // 0, следовательно: [] == [] == false (ну это я так...для себя)
var b = [] // мы уже знаем что это false
alert(!!b) // true, так вот мое предположение: "!!" меняет с true на false и наоборот только у объектов */ 
____________12 = !! []; // исходя из предыдущих рассуждений, это вернет true == 1 (это также для меня)
_____5 = ~____________12; // смотрим что такое: "____________", это предыдущий пункт, рассчитаем по моей формуле: -(1+1) = -2. Эта переменная равна -2
/* Вдруг я заметил, что черта похоже с другой, и понял что есть еще один подводный камень: значения переменных еще и меняются!! 
В таком случае, уже с моими знаниями, можем сказать что вернет первая _____ и вторая _____: 1) ~ !! [] == -2; 2) -2 Она что также равняется -2?! Зачем... Ладно..поехали дальше */
____4 = ____________12 | []; // так сейчас я уже все пронумеровал, и меня не обмануть) ____ = 1, после этого она также равняется единице 
______6 = (___3 + {});
________8 = (___3 + ____________12);
_________9 = (____________12)[![]];
__________10 = ~ (_____) + ____4;
__ = ______[__________ * __________ + ____________] + ______[____] + (___ + (_________))[____] + (___ + ![])[~ (_____) + ____ + ____________] + ________[+[]] + ________[____] + (___ + (_________))[+[]] + ______[__________ * __________ + ____________] + ________[+[]] + ______[____] + ________[____];
[][__][__]('_', ((___ + +{})[~ (_____)] + (![] + ___)[~ (_____) + ____] + (___ + !! (____))[~ (_____) + ~ (_____) + ____] + (___ + !! (____))[____] + (___ + !! (____))[+[]]) + '(_)')(____); //alert(1)
__________________
оляля, ололо

Последний раз редактировалось 9xakep, 17.03.2012 в 17:55.
Ответить с цитированием
  #10 (permalink)  
Старый 17.03.2012, 17:58
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от 9xakep
словами что тут все легко ты мне бросил вызов!
Ну в правду же легко. Если что-то не понятно задавайте вопросы, но лучше попробуйте сами понять.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посоветуйте годный обфускатор! Livaanderiamarum Общие вопросы Javascript 13 13.01.2012 18:23