|
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)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/184513e4f7d46.html, оценка из 5, голосов 10
|