Я не понимаю этот Код

Вы не можете сделать это. Как те, которые разработаны как часть языка Go. Как и пакеты npm, вы не скачиваете его.

6
задан derobert 16 March 2009 в 19:33
поделиться

2 ответа

Это - отрывок JavaScript, пытающийся использовать уязвимость системы обеспечения безопасности, связанную с Facebook, более конкретно с его клиентским элементом управления ActiveX загрузчика изображения.

cobj часть пытается создать объект ClassID {5C6698D9-7BE4-4122-8EC5-291D84DBD4A0} который, оказывается, фото управление загрузчиком ActiveX. Функции ExtractIptc и ExtractExif принадлежат тому определенному элементу управления ActiveX.

Ядро кода является управлением действительно адресом памяти, смещением, с помощью масок для разделения высоких и младших битов. Например, hex((addr>>16)&0xFFFF,4)) берет адрес, смещает его 16 битов направо, разрешает более низкую часть и преобразовывает его в шестнадцатеричное число. Для фактического понимания большей части этого кода у Вас должны быть правильные средства отладки.

Поиск с помощью Google {5C6698D9-7BE4-4122-8EC5-291D84DBD4A0} ClassID дал некоторые интересные результаты, которые необходимо изучить:

http://www.kb.cert.org/vuls/id/776931

http://seclists.org/fulldisclosure/2008/Feb/0023.html

http://securitytracker.com/alerts/2008/Feb/1019297.html

Отметьте, это не PHP. Это - JavaScript.

Подробнее...

cobj, вероятно, переводится в CreateObject () вызов. Каждый зарегистрированный элемент управления ActiveX имеет свой собственный идентификатор Класса, и у них есть форма {0000000000-0000-0000-0000-000000000000}. Когда Вы хотите обратиться к зарегистрированной библиотеке и создать экземпляр его, можно использовать или его имя или его идентификатор Класса.

Сам элемент управления ActiveX должен быть.OCX или.DLL файлом на Вашем компьютере. Если можно найти этот файл и отладить его, Вы получите большинство определенных деталей о функциях ExtractIptc и ExtractExif. Снова, те две функции, кажется, имеют уязвимости при вызове в особенном методе, и это - то, что тот сценарий пытается использовать.

var hsta=0x0c0c0c0c часть определяет переменную hsta, равный шестнадцатеричному номеру 0c0c0c0c. Это совпадает с записью var hsta = 202116108. В вычислительной технике легче иметь дело с шестнадцатеричными адресами, чем десятичные числа начиная с адресов, и данные в памяти компьютера являются двоичными и могут быть непосредственно представлены как шестнадцатеричное число. Больше деталей о шестнадцатеричном там: http://en.wikipedia.org/wiki/Hexadecimal.

Имя переменной hsta, кажется, находится в венгерской записи (первая буква представляет тип переменной - h для шестнадцатеричного числа). Я поэтому предположил бы, что это означает шестнадцатеричный начальный адрес (hsta). После того же хода мыслей мое предположение было бы этим pl полезная нагрузка средств и plc код полезной нагрузки средств.

Код полезной нагрузки является кодом, который выполнит компьютер, если использование было успешно, и это - то, что Вы видите в начале сценария (\x43\x43\x43\x43\n....\xEF). Это кодируется как код оболочки для конкретной архитектуры ЦП и операционной системы. Это означает код, это уже компилируется, автономно, и может быть передано по каналу к ЦП непосредственно. При декодировании этого Вы, вероятно, найдете что-то близко к машинному коду. Это - вероятно, ничего положительного.

hex(num,width) функция преобразовывает десятичное число в свою шестнадцатеричную форму. Я протестировал функцию отдельно, и она возвратилась 3E8 при питании его 1000. Переменная ширины просто используется для выхода из сценария, если получающееся шестнадцатеричное число больше, чем указанный.

Об этой части:

var buf = addr(0x0c0c0c0c);
buf = buf.substring(0,400);
obj.ExtractIptc = buf;
obj.ExtractExif = buf;

buf переменная является буфером. Буфер является не чем иным как данными в памяти. С этим можно соединить интерфейсом как строка, как показано в этом коде. Мое предположение - то, что буфер 400 байтов создается из любого содержания, находится в памяти в 0x0c0c0c0c, и затем питается в две функции.

Существует несколько функциональных определений, отсутствующих в здесь. А именно, () функция.

26
ответ дан 8 December 2019 в 03:54
поделиться

Я зафиксировал форматирование так, как я мог, но все еще, кажется, существуют пропавшие без вести блоков. По крайней мере, я вижу синтаксические ошибки, неинициализированные переменные, и т.д.

Если это - фактический рабочий код, отредактируйте свой вопрос и (использование кнопки "101/010" "кода", или просто расположение с отступом 4 пробелов вместо того, чтобы заключить в кавычки с '"' кнопкой) отправляют фактический код так, чтобы, что мы видим соответствия, что Вы видите.Править: Не ПЫТАЙТЕСЬ ВЫПОЛНИТЬ ЭТОТ КОД! его, вероятно, злонамеренный.

Если это не работает код, существует Ваш ответ: это не работает, таким образом пытаясь выяснить, как это работает, не имеет смысла.

1
ответ дан 8 December 2019 в 03:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: