Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Полиморфный обфускатор (https://javascript.ru/forum/misc/26636-polimorfnyjj-obfuskator.html)

9xakep 17.03.2012 18:05

Для вас да, для меня нет)
По крайней мере, я узнал что такое
!!,~,| Даже интересно стало)

9xakep 17.03.2012 18:34

Вообще не врубаюсь в смысл записи:
__2 = ______6[__________10 * __________10 + ____________12]

При подстановке получаем
__2 = '[object Object]'[ -3 * -3 + 1]

__2 = '[object Object]'[10]

Это же undefined!? Хотя стоп...забил в оперу: (''+{})[-3*-3+1] = 'j'. Почему?!

nerv_ 17.03.2012 18:47

Цитата:

Сообщение от 9xakep
Что такое "!!" так и не понял

двойное отрицание - приведение к логическому типу.
Цитата:

Сообщение от 9xakep
// | возвращает 1(typeof === Number) если хотя бы один из операндов true.

Нет, это поразрядное ИЛИ, в связи с чем операция ниже
____4 = !![] | [];

видится мне аналогичной
____4 = 1 | 0;

Т.е. как-то так:
!false | []
true | []
1 | 0

А в целом могу сказать, что разбирать даже не пытался, только бегло посмотрел.

9xakep 17.03.2012 18:50

Вы опоздали малость, я с этим уже разобрался...
Но все равно спасибо

9xakep 17.03.2012 18:59

Так-с...тепеь разбрался что такое
(''+{})[10] = 'j'
Благодоря тесту:
'abc'[1] = 'b'
'abc'[2] = 'c'
Что получается у строки можно символ брать как у массива?!

monolithed 17.03.2012 19:01

Цитата:

Сообщение от 9xakep
Что получается у строки можно символ брать как у массива?!

Получается, что можно :)

nerv_ 17.03.2012 19:16

Цитата из Флэнагана:
Цитата:

В некоторых реализациях JavaScript отдельные символы могут извлекаться из строк (но не записываться в строки) при обращении к строкам как к массивам, в результате вызов метода charAt() может быть записан следующим образом:
last_char = s[s.length – 1];

Однако этот синтаксис не стандартизован в ECMAScript v3, не является переносимым и его следует избегать.

9xakep 17.03.2012 19:34

Увы сколько не пытался его прочитать(эл. версию) так дальше меток и не продвинулся

9xakep 17.03.2012 20:09

<script>
alert('j' + 'n' + 's' + '1'[0] + undefined + 'u' + 'j' +  '1'[0] + 'o' + undefined) // __
</script>

Тэк-с...либо я где-то ошибся...либо так и должно быть

monolithed 17.03.2012 20:25

Цитата:

Сообщение от 9xakep
Тэк-с...либо я где-то ошибся...

Ошибся)


Часовой пояс GMT +3, время: 09:00.