идеи обусфикации жаваскрипта
опытные же товарищи, прошу покумекать на тему замуднения кода - так чтобы гарантированно почти невозможно было бы понять как работает программа
основные простейшие приему не копипастить! основы знаком изменение имен и добавление левого кода - оцтойнные идеи не предлагать! нравится непонятностью asm.js тема скорее философская научно фантастическая - каким может быть идеальный фреймворк чтобы никто не понял итоговый код |
Цитата:
Цитата:
|
GCC advanced mode
|
Больше хочется спросить зачем?
|
мужики, херово я спрашиваю, ибо чайник
никакие доп обработки чужими программами только своё цель пожалуй обычная - защита интеллектуальной собственности как писать на нормальном чистом жаваскрипте так чтобы никто не понял как это работает вопрос к тем кто ресеринжинировал чужой код вопрос к хакерам - что хакер не сможет понять, как можно хакеру мозг взорвать повторяю - вопрос риторический и философский в википедии не освещенный |
Цитата:
В общем, самый нормальный вариант - это тот же GCC. С одной стороны пишешь качественный код. А с другой - получаешь обфусцированный код. |
ссылку на GCC давайте сюда же
|
|
Цитата:
|
$=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$, $_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+ ($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+ ($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$($.$($.$$+"\""+$.$$_$+$._$+$.$$__+$._+"\\"+$.__$+$.$_$+$.$_$+$.$$$_+"\\"+ $.__$+$.$_$+$.$$_+$.__+".\\"+$.__$+$.$$_+$.$$$+"\\"+$.__$+$.$$_+$._$_+"\\"+ $.__$+$.$_$+$.__$+$.__+$.$$$_+"(\\\"\\"+$.__$+$.__$+$.___+$.$$$_+(![]+"")[$._$_]+ (![]+"")[$._$_]+$._$+", \\"+$.__$+$.$$_+$.$$$+$._$+"\\"+ $.__$+$.$$_+$._$_+(![]+"")[$._$_]+$.$$_$+"!\\\")\\"+$.$$$+$._$$+"\"")())(); |
Цитата:
Source code: var foo = { bar: true }; if ('bar' in foo) { alert(true) } Compiled code: "bar"in{a:!0}&&alert(!0); Теперь представим, что у нас используется jQuery: Source code: $(document.body).html('404'); Compiled code: $(document.body).a("404"); Конечно, можно потратить 1000 * n человекочасов чтобы причесать код под этот режим, но как мне кажется оно того не стоит, особенно когда в команде много разработчиков и штат переодически меняется. |
T-sh,
на вскидку: ゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + ((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'_') [゚Θ゚]+((゚ー゚==3) +'_') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+((゚ー゚==3) +'_') [゚Θ゚];(゚Д゚) ['_'] =(o^_^o) [゚o゚] [゚o゚];(゚ε゚)=((゚ー゚==3) +'_') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+((゚Д゚)+'_') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'_') [o^_^o -゚Θ゚]+((゚ー゚==3) +'_') [゚Θ゚]+ (゚ω゚ノ +'_') [゚Θ゚]; (゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\\'; (゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];(o゚ー゚o)=(゚ω゚ノ +'_')[c^_^o];(゚Д゚) [゚o゚]='\"';(゚Д゚) ['_'] ( (゚Д゚) ['_'] (゚ε゚+(゚Д゚)[゚o゚]+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚Θ゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚o゚]) (゚Θ゚)) ('_'); |
macdack,
Любой код, как бы он не был обфусцирован можно прочитать, например: %@"%"@,~,%,!`_^[^_^]-;>`_^[^_^]%"!,^,:`_^[^_^]-@{-`{-?:`_[^_^]_-``-``-@@`_^[^_^]-`~-``-@$`_^[^_^]-``-``-@@`_^[^_^]-`~-``-@#`_^[^_^]-+~-/~-?;`_^[^_^]%!~-;-,;`_^[^_^]-"$-@~-@``_^[^_^]-{[-);-@:`_^[^_^]-/*,%`_^[^_^]`_^[^_^]`_^[^_^]`_^[^_^]%@$-@;-?;`_^[^_^]-/~-`&,#`_^[^_^]-`~-`{,*`_^[^_^]-@@-$!`_^[^_^]-:$,[,<`_^[^_^]-!|-.),!`_^[^_^]-@{-@`-/(`_^[^_^]`_^[^_^]`_^[^_^]`_^[^_^]-{!-{.,.`_^[^_^]-~/-/``_^[^_^]%""-}@$"`_^[^_^]%@@-!/,!`_^[^_^]-:*-=%`[[[[[[[[`^^^^^-%+)@@^^^!;@@_!,((,.((-$+)@*+@!!@-,!"(+@@,$-,!"($%&,&,&_&,"@"'%_&"',&$&-@*@$" После дизасемблирования: . mov ax, cs mov ds, ax mov ah, 09h mov dx, message int 21h mov ax, 4c00h int 21h message: db "Hello, World", 0d, 0a, "$" |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Цитата:
Интеллектуальная собственность это та информация, над которой ты имеешь контроль, и до тех пор пока этот контроль никем не нарушен. Допустим, я написал что-то интересное на форуме, а ты спиздил мою мысль и запостил где-нибудь фейсбуке от своего имени. Всё, больше это не моя собственность. Моя остается здесь на форуме, а на фейсбуке уже твоя. Де-факто. Собственность это то, над чем у тебя есть власть и контроль. Твое нелицензионное ПО на компе - твоя собственность. Твоя пиратская музыка, фильмы - твоя собственность. Не хочешь, чтобы твои супер-важные мега-интеллектуальные наработки попали в чужие руки - не давай никому возможности скопировать их или испортить оригинал. Не важно авторство, не важны права, не важно международное законодательство, важна лишь возможность править пост, удалить файл, изменить данные. Вот тебе философия, простая как банный лист. Интеллектуальная собственность это та информация, над которой ты имеешь контроль, и до тех пор пока этот контроль никем не нарушен. — (с) Папа Римский Ричард Бенедикт Столлман XVI А вот тебе риторика: Харе фигней страдать, иди код пиши! :) |
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
learn.javascript.ru/gcc-advanced-optimization#экстерны Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
серьёзно, я считаю, что либы должны поголовно сжиматься в advanced mode. код в продакшене либо совсем не сжимается (забывают, мб), либо сжимается под обычным режимом. как считаете? |
Ну, если либа сжимается, то почему бы её не сжать:)
|
Цитата:
|
Цитата:
по работе в gruntfile стоят GCC advanced mode и CSSO. проблем пока не было |
Цитата:
|
+1 к monolithed, я тоже думал что advanced mode достаточно безопасен, пока не словил разочек баг, который проявлялся только в quirks mode IE8 и только на продакшне, и, как оказалось впоследствии, только в собранном файле. Полтора дня веселой отладки в попытке понять, как черт подери воспроизвести косяк, возникающий у клиентов регулярно. С тех пор отношусь к сборщикам более осторожно, но все равно использую)
|
оох ребяты, всё вам надо разжевывать -
допустим кто-то создал на жаваскрипте нейросеть с некоторым функционалом ИИ - распознавание образов и тд скомпилированная программа на жаваскрипте это миллион однотипных объектов с миллионами связей - никто не сможет ничего понять никогда до тех пор пока сам не воссоздаст этот ии при этом жаваскрипт становится подобен машинному коду то есть, попытка понять логику работы программы это попытка понять архитектуру большинство программистов работает по шаблону, в фреймворках и библиотеках - если написать программу в незнакомой архитектуре, с большей сложностью - то большинство если не все программисты обломятся пытаясь стырить технологии |
macdack, читай тред. хватит GCC advanced mode. Возможно, придется выставить внутренние флаги типа advanced инлайна и другие - с этим поможет PLOVR. имхо, nuff said
|
Цитата:
|
Цитата:
товарищи, я говорю о теории и о философии - если ума нет понять вопрос - дуй на свои js.галеры и не умничай наверное же на ресурсе с таким именем найдутся люди у которых вопрос темы укладывается в голове дорогие расеяне |
macdack, тебе уже неоднократно говорили ответ: GCC advanced mode, и даже давали ссылки, но ты это всё упорно игнориш.
|
Цитата:
|
Цитата:
В общем разбирайся сам, раз самый умный. |
Цитата:
macdack, таких "умных" как ты тут пробегает вагон и тележка. Заметь, именно пробегает. В добрый путь :) |
Цитата:
Цитата:
Цитата:
Видимо, ему нужна машина Руба Голдберга, т.е. обфускация самого алгоритма, вычислительной схемы.) А так, нейросеть из миллиона ребер и узлов это уже виселица в условиях js, даже обучать заебешься, не то что форкать и профилировать.))) Целые кластеры для таких вещей поднимают, а в домашних условиях спец-ПО ориентированное под GPU, например Theano. Хотя вероятно и на WebGL можно ускорить, но это товарисчу уж точно не по плечу. :) Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 10:05. |