Как распаковать содержимое файла JavaScript? - PullRequest
12 голосов
/ 17 марта 2010

Вы знаете, как выглядят эти упакованные js-файлы, верно?

 eval(function(p,a,c,k,e,d){ ... } ('obfuscated-string'.split('|'),0,{}))

Так уж получилось, что мне нужно настроить большой унаследованный код, который выглядит так, и я хочу найти способ превратить его в более читаемую версию.

Если это невозможно, могу ли я хотя бы избавиться от eval?

Ответы [ 4 ]

14 голосов
/ 09 февраля 2011

JS Beautifier переформатирует и распаковывает:

http://jsbeautifier.org/

12 голосов
/ 17 марта 2010

Вы можете распаковать онлайн: попробуйте один из них, найдите подходящий для вас:

2 голосов
/ 17 марта 2010

Вот распаковщик .

0 голосов
/ 21 июля 2015
eval(function(W,H,A,K){function z(i){return(i< 62?'':z(this['parseInt'](i/62)))+((i=i%62)>35?String.fromCharCode(i+29):i.toString(36))}for(var i=0;i<W.length;i++)A[z(i)]=W[i];function d(w){return A[w]?A[w]:w;};return H.replace(/\b\w+\b/g,d);}('alert|Testing|packed'.split('|'),'0("1 0 2");',{}));

Что я делаю, так это изменяю eval на document.getElementByID ('test'). Value =, а затем проверяю, что у меня есть текстовая область (без разбора DOM, многоканальный) с id

test.value=(function(W,H,A,K){function z(i){return(i< 62?'':z(this['parseInt'](i/62)))+((i=i%62)>35?String.fromCharCode(i+29):i.toString(36))}for(var i=0;i<W.length;i++)A[z(i)]=W[i];function d(w){return A[w]?A[w]:w;};return H.replace(/\b\w+\b/g,d);}('alert|Testing|packed'.split('|'),'0("1 0 2");',{}));
<textarea id=test rows=9 cals=77></textarea>

= 'тест'

...