![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Есть js файл с таким содержимым:
Код:
eval(unescape("eval(function(p%2ca%2cc%2ck%2ce%2cd)%7bwhile(c--)if(k%5bc%5d)p%3dp.replace(new RegExp('%5c%5cb'%2bc.toString(a)%2b'%5c%5cb'%2c'g')%2ck%5bc%5d)%3breturn p%3b%7d('4 9(3)%7bb(a(3)%3d%3d%222-8-7-5-6%22)1 e%3bd 1 0%7d4 c()%7b1%222-8-7-5-6%22%7d'%2c15%2c15%2c'%7creturn%7c30a2f847%7cAnswers%7cfunction%7c9700%7c983c128eaba7%7c4da7%7cb6fa%7cCheckAnswer%7cGetUserAnswer%7cif%7cGetWriteAnswer%7celse%7c100'.split('%7c')))%0a")) Пользовался поиском, но ничего толком не нашёл. |
#2
|
||||
|
||||
![]() %xx - это шестнадцатеричное значение кода символа
|
#3
|
||||
|
||||
![]() Возникла ещё проблема:
Даны 2 вида скриптов: Код:
eval(unescape("eval(function(p%2ca%2cc%2ck%2ce%2cd)%7bwhile(c--)if(k%5bc%5d)p%3dp.replace(new RegExp('%5c%5cb'%2bc.toString(a)%2b'%5c%5cb'%2c'g')%2ck%5bc%5d)%3breturn p%3b%7d('6 9(3)%7b7(2(8(3)).4()%3d%3d2(%5c'5%5c').4())1 c%3bb 1 0%7d6 a()%7b1%5c'5%5c'%7d'%2c13%2c13%2c'%7creturn%7cString%7cAnswers%7ctoLowerCase%7cОбратимость%7cfunction%7cif%7cGetUserAnswer%7cCheckAnswer%7cGetWriteAnswer%7celse%7c100'.split('%7c')))%0a")) Код:
eval(unescape("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;}('6 9(3){7(2(8(3)).4()==2(\'5\').4())1 c;b 1 0}6 a(){1\'5\'}',13,13,'|return|String|Answers|toLowerCase||u041e|u0431|u0440|u0430|u0442|u0438|u043c|u043e|u0441|u0442|u044c|function|if|GetUserAnswer|CheckAnswer|GetWriteAnswer|else|100'.split('|'))) ")) Получается слово "Обратимость" А вот со вторым видом такая штуковина не прокатывает. Код:
eval(unescape("eval(function(p%2ca%2cc%2ck%2ce%2cd)%7bwhile(c--)if(k%5bc%5d)p%3dp.replace(new RegExp('%5c%5cb'%2bc.toString(a)%2b'%5c%5cb'%2c'g')%2ck%5bc%5d)%3breturn p%3b%7d('o(15(%22o(12(p%2513%2514%25j%2511%25y)%25z(c--)10(k%25i%25f)p%2519.1a(1b 18(%5c'%257%25m%5c'%2516.17(a)%25x%5c'%257%25m%5c'%25l%5c'g%5c')%25j%25i%25f)%25w p%25u%25h(%5c'6 9(3)%25v(2(8(3)).4()%25s%25t(%257%5c'5%257%5c').4())1 c%25r 1 0%251q a()%251n%257%5c'5%257%5c'%25h%5c'%25e%25e%25l%5c'%251g%251e%251c%251h%25n%251l%251m%25b%251k%25q%25d%25q%251i%25b%251j%251d%25d%251f%25b%251t%251v%251x%251w%251u%251o%251s%5c'.1r(%5c'%25n%5c')))%251p%22))'%2c36%2c70%2c'%7c%7c%7c%7c%7c%7c%7c5c%7c%7c%7c%7cu0435%7c%7cu043d%7c2c13%7c5d%7c%7c7d%7c5bc%7c2ck%7c%7c2c%7c5cb%7c7c%7ceval%7c%7cu0438%7c3bb%7c3d%7c3d2%7c3b%7c7b7%7c3breturn%7c2b%7c2cd%7c7bwhile%7cif%7c2ce%7cfunction%7c2ca%7c2cc%7cunescape%7c2bc%7ctoString%7cRegExp%7c3dp%7creplace%7cnew%7c7cAnswers%7cu044c%7c7cString%7cu044b%7c7creturn%7c7ctoLowerCase%7cu0442%7cu043b%7cu0434%7cu0421%7cu043e%7c7b1%7c7celse%7c0a%7c7d6%7csplit%7c7c100%7c7cfunction%7c7cGetWriteAnswer%7c7cif%7c7cCheckAnswer%7c7cGetUserAnswer'.split('%7c')))%0a")) Код:
eval(unescape("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;}('o(15("o(12(p%13%14%j%11%y)%z(c--)10(k%i%f)p%19.1a(1b 18(\'%7%m\'%16.17(a)%x\'%7%m\'%l\'g\')%j%i%f)%w p%u%h(\'6 9(3)%v(2(8(3)).4()%s%t(%7\'5%7\').4())1 c%r 1 0%1q a()%1n%7\'5%7\'%h\'%e%e%l\'%1g%1e%1c%1h%n%1l%1m%b%1k%q%d%q%1i%b%1j%1d%d%1f%b%1t%1v%1x%1w%1u%1o%1s\'.1r(\'%n\')))%1p"))',36,70,'|||||||5c||||u0435||u043d|2c13|5d||7d|5bc|2ck||2c|5cb|7c|eval||u0438|3bb|3d|3d2|3b|7b7|3breturn|2b|2cd|7bwhile|if|2ce|function|2ca|2cc|unescape|2bc|toString|RegExp|3dp|replace|new|7cAnswers|u044c|7cString|u044b|7creturn|7ctoLowerCase|u0442|u043b|u0434|u0421|u043e|7b1|7celse|0a|7d6|split|7c100|7cfunction|7cGetWriteAnswer|7cif|7cCheckAnswer|7cGetUserAnswer'.split('|'))) ")) Видно, что зашифрован цикл. Слово должно получиться "Соединительные" Я никак не могу понять, по какому принципу работает этот цикл... Как его вытащить отсюда, чтобы разработать алгоритм? Заметил, что в скрипте с циклом количество символов в слове всегда чётное. Попробовал раскодировать внутренний текст, получилось примерно такое: Код:
\u0435 u043d,13] } [c,k,\b eval u0438; b==2; {7; return+, d{while if, e function, a, c unescape + c toString RegExp = p replace newAnswers u044c String u044b return toLowerCase u0442 u043b u0434 u0421 u043e {1 else 0a} 6 split 100 function GetWriteAnswer if CheckAnswer GetUserAnswer Последний раз редактировалось Sky.NET, 01.10.2010 в 14:38. |