Что нужно тут написать. Куда ещё содержательней-то.
Вложений: 1
Здравствуйте.
Есть код на js и его нужно раскодировать средствами php... У меня с js общение только по справочнику, по этому не знаю как быть с кодировкой. Понял только, что unescape, - это urldecode на php. С меня 100 руб на телефон. |
Чужую работу раскодировать, не вижу гарантий в получении 100 рублей на телефон.
|
Цитата:
|
Цитата:
Цитата:
После url декодирования код становится относительно читабелен и подобное мне уже встречалось, только деобфускация проходила внутри функции, а тут функция вынесена, на сколько я верно понимаю, и стандартные декодеры не работают. В "а" реплейсим "с" на "b", но вот что считать "а, b, с" я не знаю. window.u62=function(a,b,c){return a.replace(c,b);}; PS переменную Z перевел на php, получилось вот это =) : function(f,u,c,k){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};while(c--){if(k[c]){var r=new RegExp('\\b'+e(c)+'\\b','g');y=eval('u'+u);f=y(f,k[c],r)}}window['\x65\x76\x61\x6c'](f);return c} PSPS Порадовала последовательность переменных в функции))) |
Цитата:
итак, тут несколько фрагментов. надеюсь, до этого вы дошли. window.u62="функция с аргументами a,b,c"; var x = "1p(<много букв в формате \\\\H\\\\14>)"; var y = "<много букв в формате u004d|u0022>"; var z= "функция с аргументами fuck"; var s="<элемент <script> >" // переименование (зачем?) s.text='var a=\u0027' + x + '\u0027,b=\u0027' + y + '\u0027,f=' + z + '; // передаст функции с аргументами fuck аргументы : // 1. см. x (вверху) // 2. число 62 // 3. число 92 (??) // 4. разбитую по символу "|" строку y. eval(f(a,62,92,b.split(\u0027|\u0027)));'; т.е. нужно вытащить в php значения переменных "x" и "y", причём последнюю ещё разбить по символу "|" (это не трудно... регвыры помогут с вытаскиванием, а разрезать строку по символу можно встроенными средствами). далее рассматриваем функцию с аргументами fuck. её сорец : // f - 1p(<много букв в формате \\\\H\\\\14>) // u - число 62 // c - число 92 // k - массив строк типа [ "u004d", "u0022"] function (f, u, c, k) { e = function (c) { return (c < u ? '' : e(parseInt(c / u))) + ((c = c % u) > 35 ? String.fromCharCode(c + 29) : c.toString(36)) }; while (c--) { if (k[c]) { var r = new RegExp('\\b' + e(c) + '\\b', 'g'); y = eval('u' + u); f = y(f, k[c], r) } } eval(f); return c } отображу деобфускатор немного красивше : // f - 1p(<много букв в формате \\\\H\\\\14>) // f -> зашифрованный код. // u - число 62 // c - число 92 // k - массив строк типа [ "u004d", "u0022"] // используется для дешифровки function (f, u, c, k) { e = function (c) { if (c < u) { return ""; } else { return e(c / u) + ( (c = c % u) > 35 ? String.fromCharCode(c + 29) : c.toString(36) ); } }; while (c--) { if (k[c]) { var r = new RegExp('\\b' + e(c) + '\\b', 'g'); f = f.replace(r, k[c]); } } // запускает декодированный код eval(f); } дальше eval(f) продвинуться не удаётся,т.к. строка "x" начинается с "1p", и исполняется, а такой идентификатор является неправильным, и при обращении к нему выскакивает ошибка.. пока что тупик :) . думаю, данный реплейсер не нужно обьяснять от php потребуется только аналог String.fromCharCode, и преобразование числа в 36-ричную систему, ну и знания регвыров, конечно же. я себя неважно чувствую после универа, поэтому брться как-то не хочется. |
Цитата:
Что на php это можно перевести в этом даже не сомневаюсь, этот код генерит php-скрипт, соответственно если кодирует, значит можно и раскодировать... Если с декодером ещё и энкодер есть желание написать, то заплачу 300 руб. Думаю пригодится в проектах... |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
ЗЫ А на JS функции могут начинаться с цифр? |
Цитата:
var 1a = function () {alert("!!");} 1a(); |
Нет не у кого желания обфускатор на php написать?
Предложение в силе.... |
Часовой пояс GMT +3, время: 21:00. |