Javascript.RU

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

Подскажите что должен делать этот код...
Здраствуйте,есть код,не подскажете в что общих чертах он должен делать и что,после его выполнения будет на выходе?

<script type="text/javascript">
    a = Array(114, 51, 97, 108, 95, 112, 97, 122);
    b = Array(129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153);
    c = ((1 << 1) + 1) * (-~ (((1 << 1) << (1 << 1)) + 1)) + (1 << 1);

    function e(i) {
        return (b[1 ^ 1] - b[((1 + (1 << 1)) << 1) + 1]) + i + ((1 + (1 << (b[(1 << 1) + 1] % ((1 << 1 << 1) + 1)))) << 1) - c + ~ (1 << 1);
    }
    d = eval(String.fromCharCode(e(151), e(137), e(142), e(132), e(143), e(151), e(78), e(140), e(143), e(131), e(129), e(148), e(137), e(143), e(142), e(78), e(136), e(146), e(133), e(134)));
    p = (-~ (-~ (((1 << 1) << (1 << 1)) + 1) + (1 << 1))) - ((1 << 1 << 1) + 1);

    function z(i) {
        if (String.fromCharCode(a[i]) == g[i]) return true;
        return false;
    }
    r = (new RegExp("[\\?&]" + "__" + "=([^&#]*)")).exec(d);
    if (r != null) {
        g = r[(1 << 1) - 1];
        r = (r[(1 << 1) - 1]);
        l = eval(String.fromCharCode(e(146), e(78), e(140), e(133), e(142), e(135), e(148), e(136)));
        if (l = p + (1 << 1) + ~ (((1 + 1) << (1 << 1)) >> ((1 << 1) + 1))) {
            if (z(1 - 1) && z(1) && z(1 + 1) && z((1 << 1) + 1) && z(1 << 1 << 1) && z(5) && z(6) && z(7)) {
                a[0] ^= (1 << 1) + 1;
                a[1] ^= b[12] - 139;
                a[2] ^= g.charCodeAt(1) - 40;
                a[3] ^= g.charCodeAt(3) % 10;
                a[4] ^= g.charCodeAt(5) - (10 << 3) - (10 << 1);
                a[5] ^= 4 * 10 + 2;
                a[6] ^= 45;
                a[7] ^= (2 << 3) - 3;
                for (i = 0; i < a.length; i++) {
                    document.write(String.fromCharCode(a[i]));
                }
            }
        }
    }
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 13.11.2010, 15:02
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

нам что по-вашему сильно скучно?
запустите и проверьте
Ответить с цитированием
  #3 (permalink)  
Старый 13.11.2010, 15:07
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

На обфускатор похоже
Ответить с цитированием
  #4 (permalink)  
Старый 13.11.2010, 15:11
Новичок на форуме
Отправить личное сообщение для ms_train Посмотреть профиль Найти все сообщения от ms_train
 
Регистрация: 13.11.2010
Сообщений: 2

Да это походу и есть обфускатор,только вот никакие деобфускаторы/декодеры это дело не берут...
Ответить с цитированием
  #5 (permalink)  
Старый 13.11.2010, 15:14
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

Тогда только вручную пересчитывать.
Ответить с цитированием
  #6 (permalink)  
Старый 13.11.2010, 15:28
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от ms_train
Да это походу и есть обфускатор
99% что это так

Сообщение от ms_train
только вот никакие деобфускаторы/декодеры это дело не берут...
А что по вашему должен выполнить деобфускатор с этим кодом? Логично наверно что обфусцировать.

Сообщение от SV0L0CH
Тогда только вручную пересчитывать.
Что пересчитывать?
Ответить с цитированием
  #7 (permalink)  
Старый 13.11.2010, 15:40
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

Сообщение от monolithed
Что пересчитывать?
Например:
c=32;
и так далее.
Ответить с цитированием
  #8 (permalink)  
Старый 13.11.2010, 16:04
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от SV0L0CH
Например: c=32; и так далее.
зачем вручную пересчитывать?
данный код(как и любой анпакер/декодер же) занимается в первую очередь, что формирует целевой JS-код в форме строки.
затем эта строка передается на выполнение каким-либо из способов.
а способов не трак уж много:
eval, new Function, document.write
может еще что забыл
надо заменить все эти ф-ции на свои, и сделать логирование приходящих им параметров.
как правило приходить будет уже достаточно аккуратный код. ну разве что обсфуцированный, но как правило не закодированный

кстати, обсфукация - это лишь изменение исходного кода до нечитаемого, путем замен нормальных имен переменных на бессмысленные
а тут - кодирование
Ответить с цитированием
  #9 (permalink)  
Старый 13.11.2010, 16:25
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Gvozd
new Function
(0)['constructor']['constructor'](alert(this))(); //Function(alert(this))();


Сообщение от Gvozd
а тут - кодирование
точно
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите, что за скрипт? Владимир Новицкий Элементы интерфейса 5 01.03.2011 20:44
Подскажите что за script? Ну очень уж красивый!!! mp.enter Общие вопросы Javascript 3 29.11.2009 17:02
Браузер доказывает что не видит функцию SleepWalker Общие вопросы Javascript 7 17.06.2009 23:14
Подскажите что я не так сделал Sheport-NET Events/DOM/Window 3 27.04.2009 11:00
Сторонние библиотеки - быть или не быть? IIIEPJIOK Оффтопик 64 21.03.2009 19:39