Компрессия JavaScript

Есть код в таком виде

eval([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(! ...

Как получить полноценный JS-код, чтобы его отредактировать?


Ответы (1 шт):

Автор решения: Pavel Mayorov

Уберите вызов eval (или замените его на console.log) и просто попросите интерпретатор Javascript вычислить результат:

[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(! …

Это и будет код.

Только делайте это осторожно, потому что внутри этого выражения может быть спрятано что угодно, так что проверять надо в песочнице. К счастью, песочниц для javascript полно. Например, можно просто открыть страницу about:blank, перейти там в консоль (F12 в Chrome) и вставить этот код. Или же можно использовать сервисы https://jsfiddle.net/, https://codesandbox.io/ и им подобные. На сайте StackOverflow тоже есть песочница для javascript, активируемая через Ctrl+M при редактировании сообщения.

PS строго говоря, полностью доверять полученному результату нельзя, так как автор кода мог встроить в него защиту от песочниц. Однако, любая такая защита удлиняет и без того длинный код, так что обычно их всё-таки не ставят.

→ Ссылка