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