Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Sergey Prohorenko                    2:463/397      16 Feb 2003  12:59:51
 To : All
 Subject : JavaScript obfuscation
 -------------------------------------------------------------------------------- 
 
 
  Есть тут люди, которые занимались с сабжем ? Если для кого незнаком термин,
 поясню: у нас есть нормальный читаемый код на жабаскрипте, например, такой:
 
 === Цитирую ===
 var Tcom=[],Tc=[],params=d.cookie.split(";")
 for(var i=0;i<params.length;i++)
   if(params[i].indexOf("Ttable")==0) {
     Tc=(params[i].substr(params[i].indexOf("=")+1)).split(",")
 //  this.onload=Function("d.location.hash='TtablePro"+Tc[Tc.length-1]+"'")
     for(var j=0;j<Tc.length;j++) Tcom[j]=Tc[j].split('+')
     break
     }
 === Конец цитаты ===
 
  Хочется получить из него что-то вроде следующего трудночитаемого извращения:
 
 === Цитирую ===
 var js30=[],js34=[],js35=js78.js50.split(";")
 for(var js28=0;js28<js35.length;js28++)
   if(js35[js28].indexOf("Ttable")==0) {
     js34=(js35[js28].substr(js35[js28].indexOf("=")+1)).split(",")
     for(var js27=0;js27<js34.length;js27++) js30[js27]=js34[js27].split('+')
     break
     }
 === Конец цитаты ===
 
  При кажущейся простоте проблемы (в простейшем случае можно обойтись одними
 регэкспами) возникают специфические проблемы. Последнее, с чем я столкнулся, это
 такое извращение, например:
 
  a[1] = b;
  b.ccc = "fjdljf";
  b.ddd[2].ooo = "gflkg";
  with (a[1]) {
  d.getElementById("abcde") = ccc + ddd[2].ooo;
                              ^^^   ^^^^^^^^^^
  }
 
  При этом подчеркнутое, ессно, не распознается как атрибут переменной b и,
 соответственно, не заменяется. Мысль только одна - писать, по сути, не просто
 парсер (который уже написан), а транслятор, запоминающий, где какая переменная
 как меняет свое значение. Лени-и-иво ... :)
 
  Внимание, вопрос: сталкивался ли кто-то с написанием программ для решения
 сабжевой проблемы ? Если да, просьба помочь :) Можно также ссылочку в инет на
 готовые сабжевые тулзы  _с_исходниками_ (!) или хотя бы на интерпретатор
 жабаскрипта, опять же, с исходниками.
 
  Если кому интересно, могу поделиться алгоритмом, написанным на данный момент.
 
 * Originally in RU.ALGORITHMS
 * Разослано также в PVT.KPI.STUDENTS
 
  Have a nice life, All ! [ronnie<at>ukrpost.net] [HТУУ КПИ ИПСА КА-95]
 
 ... To secure peace is to prepare for war ! [Metallica]
 --- np: winamp is not active
  * Origin: Здесь каждую ночь совершается чудо ... (2:463/397)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 JavaScript obfuscation   Sergey Prohorenko   16 Feb 2003 12:59:51 
Архивное /ru.algorithms/184513e4f7d46.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional