Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.11.2012, 11:22
Новичок на форуме
Отправить личное сообщение для qaim Посмотреть профиль Найти все сообщения от qaim
 
Регистрация: 13.11.2012
Сообщений: 9

Что нужно тут написать. Куда ещё содержательней-то.
Здравствуйте.
Есть код на js и его нужно раскодировать средствами php...
У меня с js общение только по справочнику, по этому не знаю как быть с кодировкой. Понял только, что unescape, - это urldecode на php.
С меня 100 руб на телефон.
Вложения:
Тип файла: zip kk.zip (9.4 Кб, 8 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 13.11.2012, 13:43
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Чужую работу раскодировать, не вижу гарантий в получении 100 рублей на телефон.
__________________
.
Ответить с цитированием
  #3 (permalink)  
Старый 13.11.2012, 21:40
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от qaim
средствами php
вряд ли получится средствами php
Ответить с цитированием
  #4 (permalink)  
Старый 14.11.2012, 05:41
Новичок на форуме
Отправить личное сообщение для qaim Посмотреть профиль Найти все сообщения от qaim
 
Регистрация: 13.11.2012
Сообщений: 9

Сообщение от Skipp Посмотреть сообщение
Чужую работу раскодировать, не вижу гарантий в получении 100 рублей на телефон.
Ну давайте через фриланс оформим договор или какую-нибудь сделку без риска. Нет проблем. Не вижу смысла кого-то кидать и никогда этим не занимался. Просто хотелось побыстрее решить вопрос, по этому на профильный форум и обратился...
Сообщение от melky Посмотреть сообщение
вряд ли получится средствами php
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 Порадовала последовательность переменных в функции)))

Последний раз редактировалось qaim, 14.11.2012 в 06:33. Причина: дополнение
Ответить с цитированием
  #5 (permalink)  
Старый 14.11.2012, 16:55
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от qaim
PS переменную Z перевел на php, получилось вот это =) :
я про это и говорил, что дальше вряд ли получится. хотя, возможно.

хотя я дальше функции с fuck не смотрел щас гляну еще разок

итак, тут несколько фрагментов. надеюсь, до этого вы дошли.

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-ричную систему, ну и знания регвыров, конечно же.

я себя неважно чувствую после универа, поэтому брться как-то не хочется.

Последний раз редактировалось melky, 14.11.2012 в 19:16.
Ответить с цитированием
  #6 (permalink)  
Старый 14.11.2012, 17:45
Новичок на форуме
Отправить личное сообщение для qaim Посмотреть профиль Найти все сообщения от qaim
 
Регистрация: 13.11.2012
Сообщений: 9

Сообщение от melky Посмотреть сообщение
я про это и говорил, что дальше вряд ли получится

хотя я дальше функции с fuck не смотрел щас гляну еще разок
Ок, посмотрите...
Что на php это можно перевести в этом даже не сомневаюсь, этот код генерит php-скрипт, соответственно если кодирует, значит можно и раскодировать...
Если с декодером ещё и энкодер есть желание написать, то заплачу 300 руб. Думаю пригодится в проектах...
Ответить с цитированием
  #7 (permalink)  
Старый 14.11.2012, 19:58
Новичок на форуме
Отправить личное сообщение для qaim Посмотреть профиль Найти все сообщения от qaim
 
Регистрация: 13.11.2012
Сообщений: 9

Сообщение от melky
т.е. нужно вытащить в php значения переменных "x" и "y", причём последнюю ещё разбить по символу "|"
(это не трудно... регвыры помогут с вытаскиванием, а разрезать строку по символу можно встроенными средствами).
Это сделано...
Сообщение от melky
отображу деобфускатор немного красивше :
По мне так первый красивше, - кода меньше, я на пхп так же пишу конструкции if-else =)
Сообщение от melky
дальше eval(f) продвинуться не удаётся,т.к. строка "x" начинается с "1p", и исполняется, а такой идентификатор является неправильным, и при обращении к нему выскакивает ошибка.. пока что тупик
Надо подумать...
Сообщение от melky
от php потребуется только аналог String.fromCharCode, и преобразование числа в 36-ричную систему, ну и знания регвыров, конечно же.
Это элементарно, - explode, char...
Сообщение от melky
я себя неважно чувствую после универа, поэтому брться как-то не хочется.
Ваше право, конечно... Решил задачу пока другим способом, но этот ещё пригодится, - если будет настроение, займитесь... Правда теперь меня больше интересует обфускатор (на php), а не деобфускатор.
Сообщение от melky
надеюсь, до этого вы дошли.
Да, именно до этого дошёл, только не перевел функцию fuck на php.

ЗЫ А на JS функции могут начинаться с цифр?

Последний раз редактировалось qaim, 14.11.2012 в 20:02. Причина: дополнение
Ответить с цитированием
  #8 (permalink)  
Старый 14.11.2012, 21:01
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от qaim
ЗЫ А на JS функции могут начинаться с цифр?
нет. меня это тоже поразило.
var 1a = function () {alert("!!");}
1a();
Ответить с цитированием
  #9 (permalink)  
Старый 22.11.2012, 17:35
Новичок на форуме
Отправить личное сообщение для qaim Посмотреть профиль Найти все сообщения от qaim
 
Регистрация: 13.11.2012
Сообщений: 9

Нет не у кого желания обфускатор на php написать?
Предложение в силе....
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужно написать фейк с элементами js в vk totcam Работа 3 27.10.2017 14:42
Нужно написать сценарии для MouseRobot 2.0 rom4ik Работа 27 28.12.2010 19:41
Нужно написать скрипт Gilman Работа 1 03.10.2010 17:38
Что нужно знать для изучения серверного javascript Иваннн Серверные языки и технологии 26 15.06.2010 16:05
Что можно и нужно прочитать про валидацию? Amateur Общие вопросы Javascript 5 09.03.2010 11:41