Like It Exchange System

Ex4Me

пятница, 27 марта 2009 г.

Распаковываем function(p,a,c,k,e,r)

Я думаю любому web разработчику попадались java скрипты запакованные через function(p,a,c,k,e,r). Они представляют собой абсолютно нечитаемый код. Вот кусок, для примера:
 
  1. p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('5 1f=1M.3y.3z();5 2s=((1f.1j(\'3A\')!=-1)||(1M.2L=="2M 2N, 2O."));5 1g=((1f.1j(\'2P\')!= 
 



Короче говоря, нашел простой способ преобразования всего этого в читаемый вид.

В начале такого скрипта, перед самым первым символом :), вставляем это:

  1. eval=alert; 

Открываем страницу с вызовом скрипта:

java

Ctrl+A, Ctrl+C :)

Получаем уже код без функции function(p,a,c,k,e,r), но все равно в не очень удобном формате.

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

 
  1. var uagent = navigator.userAgent.toLowerCase(); 
  2. var is_safari = ((uagent.indexOf('safari') != -1) || (navigator.vendor == "Apple Computer, Inc.")); 
  3. var is_ie = ((uagent.indexOf('msie') != -1) && (!is_opera) && (!is_safari) && (!is_webtv)); 
  4. var is_ie4 = ((is_ie) && (uagent.indexOf("msie 4.") != -1)); 
  5. var is_moz = (navigator.product == 'Gecko'); 
  6. var is_ns = ((uagent.indexOf('compatible') == -1) && (uagent.indexOf('mozilla') != -1) && (!is_opera) && (!is_webtv) && (!is_safari)); 
  7. var is_ns4 = ((is_ns) && (parseInt(navigator.appVersion) == 4)); 
  8. var is_opera = (uagent.indexOf('opera') != -1); 
  9. var is_kon = (uagent.indexOf('konqueror') != -1); 
  10. var is_webtv = (uagent.indexOf('webtv') != -1); 
  11. var is_win = ((uagent.indexOf("win") != -1) || (uagent.indexOf("16bit") != -1)); 
  12. var is_mac = ((uagent.indexOf("mac") != -1) || (navigator.vendor == "Apple Computer, Inc.")); 
  13. var ua_vers = parseInt(navigator.appVersion); 
Как видите, все достаточно просто. Удачи!
 

Комментариев нет: