reset and begin
5/01/2012

Cách giải nén javascript - Unpack PACKED scripts

1 vài website khi chia sẻ 1  đoạn script  do họ tự viết hay lấy ở đâu đó đã bị biến thành khó đọc,tuy nhiên người sử dụng khi dùng những đoạn mã này có thể được giải thích về tác dụng chính của nó , nhưng tác dụng phụ của nó thì thật khó lường . Với javascript ta có thể chèn bất cứ cái gì kể cả trang chứa virut nếu người chia sẻ cố ý đồ xấu .....  
Che giấu javascript là 1 cách bảo vệ khỏi bị người khác chôm chỉa khi bị view source và khi muốn dùng riêng cho bản thân mình , đây là cách để  thêm 1 tầng để bảo vệ mã .,nhất là khi dùng với ajax , che giấu hay mã hóa sẽ giảm thiểu nguy cơ bị hacker tấn công .
Ngoài  cách mã hóa thông thường còn có vài  kiểu nữa là   compiler code của google   
  và sử dụng  Packer  chủ yếu để làm cho mã javascript trở nên khó đọc hơn làm mất time  cũng như nản lòng hacker khi tấn công.


ví dụ với script đơn giản như

document.write('Hello, world!');
khi  pack nó sẽ thành
eval(function(p,a,c,k,e,r){e=String;if(!''.replace(/^/,String)){while(c--)r[c]=k[c]||c;k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('0.1(\'2, 3!\');',4,4,'document|write|Hello|world'.split('|'),0,{}))

để unpack đoạn javascript bạn sẽ làm cho nó hiện mã thật ngay trên trình duyệt của mình
bằng cách dễ dàng  sau  :
copy code mã hóa sang  vào 1 thẻ textarea :

document.write('<textarea cols="120" rows="10">');
document.write(function(p,a,c,k,e,r){e=String;if(!''.replace(/^/,String)){while(c--)r[c]=k[c]||c;k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('0.1(\'2, 3!\');',4,4,'document|write|Hello|world'.split('|'),0,{}));
document.write('</textarea>');

khi chạy sẽ cho ra kết quả mã javascript thực

document.write('Hello, world!');

không chỉ vậy ngoài ra người ta dùng hàm eval()  kết hợp với alert() để show mã javascript thực khi đó mã javascript sẽ dễ đọc hơn nhiều .
nguồn

Bloger Comments
G+ Comments
Comments FaceBook

2 comments:

  1. Bài viết rất hay & chi tiết! :D
    Cảm ơn tác giả! :)

    ReplyDelete
  2. Mình có 1 file js muốn giải mã thì làm sao bạn ?

    ReplyDelete

List

Profiles Information


About me : Nothing is 1 vài thứ - 1985

Places I've Lived : I Hà Nội

Home Page : http://www.shimivn.blogspot.com/

Think : 1:1000000000

Languages spoken : Vietnamese,English.

Mobile : sony C2305

dell : i3-Ram 3GB- HDD 250GB .