13.01.2012, 06:46
|
Профессор
|
|
Регистрация: 25.12.2011
Сообщений: 786
|
|
Посоветуйте годный обфускатор!
наподобие этого, только чтобы логику запутывал.
゚ω゚ノ= /`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) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ (゚Д゚) .゚ω゚ノ+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ (゚Д゚) .゚Д゚ノ+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ (゚Д゚) .゚Θ゚ノ+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (゚ー゚)+ (゚Д゚) ['c']+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ (゚Д゚) .゚ω゚ノ+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ (゚Д゚) .゚Д゚ノ+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ (゚Д゚) .゚Д゚ノ+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ ((゚ー゚) + (゚ー゚))+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ (゚Д゚) ['c']+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (゚ー゚)+ ((゚ー゚) + (゚ー゚))+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (゚ー゚)+ (゚Д゚) ['c']+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (゚ー゚)+ (゚Д゚) [゚Θ゚]+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ (゚Д゚) .゚ー゚ノ+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ (゚Д゚) [゚Θ゚]+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ ((゚ー゚) + (゚ー゚))+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (c^_^o)+ (゚ー゚)+ (o^_^o)+ ((゚ー゚) + (゚ー゚))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚o゚]) (゚Θ゚)) ('_');
|
|
13.01.2012, 11:20
|
|
prodigy
|
|
Регистрация: 01.11.2010
Сообщений: 503
|
|
Никогда не сталкивался, с этими штуками, только минификаторы, а вообще http://www.javascript-source.com/ там есть скрин "unreadable code", судя по нему логику запутывает точно, циклы например появляются ни с того ни с сего. Вот бесплатный http://www.javascriptobfuscator.com/default.aspx, но отличие от минификатора лишь в том, что переменные названы аля _0x3b59x15. Платных много. Вот еще бесплатный, результаты его часто видел http://www.bl2.ru/programing/jsobfuscator.html
Пример из сети:
// сорц
function CalculateSalary(aEmployees)
{
var nEmpIndex = 0;
while (nEmpIndex < aEmployees.length)
{
var oEmployee = aEmployees[nEmpIndex];
oEmployee.fSalary = CalculateBaseSalary(oEmployee.nType,
oEmployee.nWorkingHours);
if (oEmployee.bBonusAllowed == true)
{
oEmployee.fBonus = CalculateBonusSalary(oEmployee.nType,
oEmployee.nWorkingHours,
oEmployee.fSalary);
}
else
{
oEmployee.fBonus = 0;
}
oEmployee.sSalaryColor = GetSalaryColor(oEmployee.fSalary +
oEmployee.fBonus);
nEmpIndex++;
}
}
//результат
eval(function(p,a,c,k,e,d){while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+c.toString(a)+'\\b','g'),k[c])}}return p}('a b(3){7 2=0;9(2<3.d){7 1=3[2];1.4=c(1.6,1.8);h(1.j==k)
{1.5=e(1.6,1.8,1.4)}i{1.5=0}1.f=g(1.4+1.5);2++}}',21,21,
'|oEmployee|nEmpIndex|aEmployees|fSalary|fBonus|nType|var|nWorkingHours|while|function|" + "CalculateSalary|CalculateBaseSalary|length|CalculateBonusSalary|sSalaryColor|GetSalaryColor|if|else|bBonusAllowed|true'.split('|')))
//Я перенес несколько строк в результате и добавил конкатенацию длинной строки чтобы страницу форума не растопыривать на весь экран по ширине
Если у вас реально что то очень ценное, что надо защитить, лучше серьезным чем то кодировать, а если так, чтоб в глаза не бросалось, на мой взглад хватит и вот этого packer-a
Livaanderiamarum,
Сообщение от Livaanderiamarum
|
наподобие этого, только чтобы логику запутывал.
|
А то в вашем примере, реально, будто и не обфусцировано ничего
__________________
readOnly
Последний раз редактировалось poorking, 13.01.2012 в 11:35.
|
|
13.01.2012, 16:27
|
Профессор
|
|
Регистрация: 25.12.2011
Сообщений: 786
|
|
Сообщение от poorking
|
А то в вашем примере, реально, будто и не обфусцировано ничего
|
А в моем прмиере можно использовать дешифровщик и получить код. который можно отформатировать.
|
|
13.01.2012, 16:38
|
|
Просто любитель
|
|
Регистрация: 13.09.2011
Сообщений: 300
|
|
Сообщение от Livaanderiamarum
|
можно использовать дешифровщик
|
Для дешифровки можно использовать криптологические функции js: toString() или alert() =). Ну бьютифайеру вначале код скормить тока, чтобы руками не искать начало функции. Обсуждали расшифровку похожего кода недавно.
Последний раз редактировалось GuardCat, 13.01.2012 в 18:20.
|
|
13.01.2012, 16:58
|
|
prodigy
|
|
Регистрация: 01.11.2010
Сообщений: 503
|
|
Livaanderiamarum,
Обфускатор - кодировщик, который кодирует текст кода в свою кодировку, да такую, чтобы интерпретатор ее понял, так что, теоретически, любой обфусцировванный код можно раскодировать, например (грубый пример) заменяет конструкции вида
variable = 5
на
eval ("variable = (function () { return 100 - 500 + 405; }())")
результат тот же, интерпретатору поф как это записано, а с точки зрения пользователя кода, записано не очень понятно. Цель - сделать непонятно, а не укрыть информацию. Зашифровать js (AES256 например) не получится, потому что иначе его не распарсит интерпретатор
__________________
readOnly
|
|
13.01.2012, 17:02
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от poorking
|
заменяет конструкции вида
|
ну да тока это на производительность повлияет
|
|
13.01.2012, 17:14
|
|
prodigy
|
|
Регистрация: 01.11.2010
Сообщений: 503
|
|
devote,
А я и не спорю, тут уже нужно на приоритеты смотреть, что важнее, сделать код кучей бесполезной каши для недоброжелателя или выиграть в производительности. На самом деле я пример с потолка привел, они то наверно поинтереснее что-то делают, не так грубо, и гораздо более эффективно. Хотя мне кажется не будет большого проигрыша в производительности, если код в виде строки эвалится, то это произойдет при загрузке страницы, он проинициализируется и все. Если кода 100000 строк, то да, тормознет на полсекунды сначала. Но лично я не вижу смысла js прятать, минификации достаточно вполне. Просто обычный код без комментов воспринимается хуже чем код с комментами например, а если там его минифицировать и переменные станут вида a,b,c,d,e, то уже можно будет потратить часы чтобы разобрать что имелось ввиду. Если код еще и обфусцировать, ну я думаю никому это не надо, пытаться украсть javascript, и что вообще такого гениального можно сделать, чтобы украсть захотелось, если приложение правильно сделано, то воровать будет нечего с клиенской машины
__________________
readOnly
|
|
13.01.2012, 17:38
|
Профессор
|
|
Регистрация: 25.12.2011
Сообщений: 786
|
|
Сообщение от poorking
|
Цель - сделать непонятно, а не укрыть информацию.
|
чувак, я доту расшифровал в свое время, я знаю для чего нужны обфуксаторы, во вторых суть в том чтобы человек не смог модифицировать код и использовать под свои нужды. То есть МАКСИМАЛЬНО слить его со средой.
|
|
13.01.2012, 17:54
|
|
prodigy
|
|
Регистрация: 01.11.2010
Сообщений: 503
|
|
Livaanderiamarum,
Ну, и почему не хватает packer-а? Возьмите код из моего поста с примером его работы и попробуйте использовать его в своих целях, даже если вы приведете его к более божескому виду, то бишь декодируете и получите просто минифицированный вариант, все равно, что делает этот метод останется для вас загадкой. А уж тем более вы не сможете расширить его по той же причине. А в сырце по названию метода и переменных понятно что и для чего нужно. Предположим у вас фреймворк, который вы никому не даете, а используете только в своих проектах, который минифицируете GCC ADVANСED (даже паблик апи жмется), код которого настолько гениален и крут, что вы не хотите чтобы разработчики других фреймворков потырили у вас ваши гениальные решения, и кричали что это сделали они. Как можно украсть у вас какой то конкретный функционал, если не знать что красть?
__________________
readOnly
|
|
13.01.2012, 18:01
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
С
Сообщение от poorking
|
GCC ADVANСED
|
даже обфускаторы никакие дополнительно не нужны, главное написать код, который после него работать будет
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
|
|