2010-03-17 31 views
11

Bạn biết cách các tệp js được đóng gói đó trông như thế nào, đúng không?Làm cách nào để giải nén nội dung của tệp JavaScript?

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

Nó chỉ xảy ra là tôi phải tinh chỉnh một số mã cũ lớn trông như thế và tôi muốn tìm cách biến điều này thành phiên bản dễ đọc hơn.

Nếu điều đó là không thể, tôi có thể ít nhất thoát khỏi eval không?

Trả lời

11

Bạn có thể với unpackers trực tuyến: thử một trong những, tìm thấy một phù hợp với bạn:

+0

Tuyệt vời, những công việc này tuyệt vời! –

13

JS beautifier sẽ cả hai định dạng lại và giải nén:

http://jsbeautifier.org/

+0

Tôi đã sử dụng tính năng này để giải nén một javascript phức tạp. Nó được giải nén gọn gàng. – srv

+0

Đây là một trong những mát mẻ. Tôi đã sử dụng nó để định dạng lại mã javascript. – Vasyl

0
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");',{})); 

Những gì tôi làm là thay đổi eval để document.getElementById ('test') value = và sau đó chắc chắn rằng tôi có một textarea. (không phân tích cú pháp DOM, multilines) wuth 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>

= 'test'

+0

http://www.scriptcompress.com/unpack.htm là một công cụ trực tuyến tôi đã thực hiện để giải nén, cũng http://www.scriptcompress.com/decoder.htm sẽ cố gắng giải mã nó trong DOM, thông qua trình phân tích cú pháp JSOn và nhiều hơn –

+0

wow, điều này Stack Snippet thingy là mới cho tôi. –

Các vấn đề liên quan