Это довольно простой способ превратить запутанный код обратно в эффективный javascript, который запускается - обычно вам просто нужно развернуть кучу eval
звонков.
Трудная часть, как утверждают другие, дает имена переменным, чтобы вы могли решить, что-то вроде v7 = a4.l2(h8, n1, p9)
. Что-то, что я нашел полезным, - это начать с «краев» (вызовы библиотек, которые нельзя переименовать), а затем переименовать все как можно более полезно. Вы часто обнаружите, что эти знания затем рябят по коду, что упрощает чтобы понять следующий слой вниз и дать ему разумное имя
Так, например, если у вас какой-то код вроде этого:.
z4 = "a";
o0 = "href"
...
pr = window.document;
...
q8 = pr.getElementByTagName(z4)[0];
...
function rr(o8, em)
{
return o8.getAttribute(em);
};
...
y5 = rr(q8, o0);
Тогда последняя строка первоначально непроницаемой, но если вы решили, что rr
можно было бы назвать getNamedAttribute
, переименовать z4
как LITERAL_A
, o0
как LITERAL_HREF
и pr
как document
; то мы видим, что q8
является результатом document.getElementByTagName(LITERAL_A)[0]
, поэтому мы можем назвать его firstAnchor
. Затем q8 = getNamedAttribute(firstAnchor, LITERAL_HREF)
, и внезапно становится ясно, что это (строка) цели первой гиперссылки.
Поскольку это преобразование требует вывода от имени читателя, это невозможно для автоматического процесса (для точно по той же причине, что компилятор не будет предупреждать вас о неправильных именах переменных).
Связанный: [Deobfuscating Javascript] (http://stackoverflow.com/questions/2867027/deobfuscating-javascript) –
У меня есть код javascript на моем сайте. Я хочу обфускать его, поэтому я хочу знать, есть ли способ конвертировать его в исходный код. – shin
нет, нет. –