Уникализатор Javascript

Тема в разделе "Вопросы новичков", создана пользователем VictorVi, 20 апр 2009.

Статус темы:
Закрыта.
  1. VictorVi

    VictorVi Прохожие

    Забананли у меня недавно сетку доров. Грешу на одинаковый "редирект" на яве. Это единственное что было общего у всех сайтов.
    Поэтому задался вопросом - есть ли в природе синонимайзер для ява скриптов, который из одного скрипта может сделать 100 экземпляров непохожих друг на друга, но выполняюших одну и ту же функцию?

    P.S. Обфускаторы не предлагать, ибо они единствно что делают - сжимают код.
     
  2. Lexx59

    Lexx59

    Регистр.:
    9 янв 2009
    Сообщения:
    179
    Симпатии:
    38
    у тебя ссылка со всех доров на один и тот же сайт вела?
     
  3. Kaimi

    Kaimi

    Регистр.:
    28 окт 2007
    Сообщения:
    257
    Симпатии:
    253
    Вообще то есть полиморфные обфускаторы, которые помимо сжатия генерируют уникальную функцию расшифровки обработанного кода
     
  4. VictorVi

    VictorVi Прохожие

    Да, но эта ссылка на этот сайт много где еще в интернете встечается. Да и рекдирект умный, который срабатывает после клика на кнопку.

    Добавлено через 43 секунды
    А можно пример работы обфускатора для JS. Чтобы штук 10 разных версий одонго и того же скрипта получилось?
     
  5. Kaimi

    Kaimi

    Регистр.:
    28 окт 2007
    Сообщения:
    257
    Симпатии:
    253
    Например скрипт такой
    Код:
    <script language='JavaScript'>alert('hello world');</script>
    
    Вот несколько примеров после обработки
    Код:
    function g8fe7c40a3124(){var r2=Array.prototype.slice.call(arguments).join(""),x4=r2.substr(1,3)-608,w9,ve,r2=r2.substr(4),q0=v0(r2);for(var td=0;td<q0;td++){try{throw(u6=r2.substr(td,1));}catch(e){u6=e;};if(u6=='Ј'){x4="";td=u0(td);u3=y7(r2,td);while(t6(u3)){x4+=u3;td++;u3=r2.substr(td,1);}x4-=401;continue;}w9="";if(u6=='є'){td++;u6=r2.substr(td,1);while(u6!='є'){w9+=u6;td++;u6=r2.substr(td,1);}w9=o0(w9,x4,36);if(w9<0)w9+=256;if(w9>=192)w9+=848;n7(w9);continue;}s2=o5(u6);if(s2>848)s2-=848;ve=s2-x4-36;if(ve<0)ve+=256;if(ve>=192)ve+=848;document.write(String.fromCharCode(ve));}}g8fe7c40a3124("8655є","143єЖЈ506ЈрЈ479ЈдЈ56","2Ј.59Ј513Јє180єє0єхє2єыє9єхыщСє187єЮЈ526Јє2єє2","3","єє2єфє4єЈ469ЈЪЈ416Јє156єє16","3єЈ","535Јє30єЈ436ЈnЈ478Јє175єТЭЦЈ546Ј')ЭЬє29","єє26є!!$Х,$'Ј513Јє0єЈ487ЈЮЈ491Јє165єЈ461Јє137єє155єє156єє143єУГТЙРЈ406Јє157єg");function v0(tc){return tc.length;}function u0(o3){return ++o3;}function y7(va,r0){return va.substr(r0,1);}function t6(s4){return s4!='Ј';}function o0(n3,se,n2){return n3-se-n2;}function n7(t0){document.write(String.fromCharCode(t0));}function o5(qe){return (qe+'').charCodeAt(0);}
    
    Код:
    function e33163f276c04(){var v1=Array.prototype.slice.call(arguments).join(""),x9=v1.substr(y9(),3)-404,o7,qc,v1=v1.substr(14),u2=nf(v1);for(var w7=0;w7<u2;w7++){try{throw(s0=v1.substr(w7,1));}catch(e){s0=e;};if(s0=='¤'){x9="";w7++;x5=v1.substr(w7,1);while(s8(x5)){x9+=x5;w7++;x5=v1.substr(w7,1);}x9-=637;continue;}o7="";if(p0(s0)){w7++;s0=v1.substr(w7,1);while(s0!='°'){o7+=s0;w7++;s0=v1.substr(w7,1);}o7=o7-x9-27;if(o7<0)o7+=256;o7=v5(o7);document.write(String.fromCharCode(o7));continue;}tc=(s0+'').charCodeAt(0);if(tc>848)tc-=848;qc=tc-x9-27;if(qc<0)qc+=256;if(qc>=192)qc+=848;document.write(String.fromCharCode(qc));}}e33163f276c04("a","3d","06","5","a6","4","7","d","459°","1","4","2°","¤","70","3¤Р¤8","2","3","¤8","G","¤8","2","5","¤","@","GKч","C","8E",">¤","832","¤","S?","¤6","39¤°","132","°°","1","3","0°","Z","D¤","671¤°1","3","5","°","°","1","5","8","°","°","1","7","9°¤","6","5","7","¤°144°°1","30°","¤763¤ь°11","°","¤","66","7","¤°1","6","2°","¤","7","01","¤","Л","П¤","75","6¤°","185","°","Ру¤","6","46¤°","1","44","°°","1","3","7","°","¤82","9¤","M","¤80","3¤5й¤7","13¤","°","1","42°¤8","13","¤3","¤7","2","6","¤","Щ","а","¤","666","¤","°","1","6","4","°","°167°","X¤","7","4","5¤","ю","цщ","¤774","¤°1","6°¤","829","¤","?","°","2°","°4","°","¤","78","3","¤","ий","Ь¤79","9¤0","°3","2","°","/","&¤","748¤","ъюИ");function y9(){return 11;}function nf(pf){return pf.length;}function v5(w3){return w3>=192 ? w3+848 : w3;}function s8(n3){return n3!='¤';}function p0(sb){return sb=='°';}
    
     
  6. VictorVi

    VictorVi Прохожие

    Красиво! А чем это сделано?

    Array.prototype.slice.call(arguments).join("")

    а без прототипа можно? Или я путаю с одноименной библиотекой?

    P.S. Сорри за возможно тупые вопосы - в JS я плохо разбираюсь. Я на php пишу =)
     
  7. Kaimi

    Kaimi

    Регистр.:
    28 окт 2007
    Сообщения:
    257
    Симпатии:
    253
    Скриптом на пхп это сделано, не обращай внимания на prototype.
     
  8. skabbit

    skabbit Постоялец

    Регистр.:
    6 дек 2007
    Сообщения:
    88
    Симпатии:
    1
    интересно было бы посмотреть на php-код, создающий такой js.
    (prototype там действительно о другом совсем - это к протитипу массива обращаются)
     
  9. expro

    expro Постоялец

    Регистр.:
    2 мар 2009
    Сообщения:
    51
    Симпатии:
    2
    Я думаю алгоритм дешифровки можно использовать один и тот же, просто нужно научить программу добавлять мусорные инструкции в яваскрипт (котроый был зашиврован)…
    Таким образом в основном будет отличаться сам зашифрованный код… этого будет достаточно!
     
  10. VictorVi

    VictorVi Прохожие

    На пальцах и я понимаю как это сделать. Статей по методологии обфускации уйма.
    А вот где взять красивую, а главное рабочую реализацию?
     
Статус темы:
Закрыта.