1

我正在学习JavaScript,我发现了这段代码:

<script>

var _0x98bd=["\x3C\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3D\x22\x6A\x73\x2F\x4E\x31\x39\x53\x38\x37\x4E\x39\x4E\x41\x39\x38\x37\x31\x58\x39\x38\x37\x5A\x5A\x58\x2E\x73\x77\x66\x22\x3E\x3C\x2F\x73\x63\x72\x69\x70\x74\x3E","\x77\x72\x69\x74\x65"];

</script>

有谁知道这是什么意思?

4

5 回答 5

2

它产生这个数组:

["<script src="js/N19S87N9NA9871X987ZZX.swf"></script>", "write"] 

我不知道代码的作者试图用它做什么。

于 2012-05-24T09:13:47.977 回答
1

数组的第一个元素是以下代码:

<script src="js/N19S87N9NA9871X987ZZX.swf"></script>

第二个要素是:

write
于 2012-05-24T09:16:25.257 回答
1

_0x98bd这只是用一个只有两个字符串元素的数组来初始化变量。

String 包含一个脚本标签,如果插入到 DOM 中,它将加载一些 flash 文件。第二个包括“写”。

这可能是蠕虫的代码,它利用了一些浏览器漏洞。如果您在任何(生产性)网站上发现此内容,您应该通知该网站的所有者,因为这可能是恶意代码!

于 2012-05-24T09:13:34.223 回答
0

这是混淆的 javascript 代码。参见Sample obfuscator

于 2012-05-24T09:21:52.573 回答
0

您说您正在学习 JS,因此您可以在第 22-24 页的 ECMA-262 标准http://www.ecma-international.org/publications/standards/Ecma-262中找到它的解释.htm 因为数组的两个元素在 " 之间,所以它们是字符串字面量。\ 称为转义字符,\x 后面必须跟 2 个十六进制数字,意思是:"x HexDigit HexDigit 是其代码单元值的字符是(第一个 HexDigit 的 MV 的 16 倍)加上第二个 HexDigit 的 MV”所以例如 \x3C 相当于 '<' 字符。

于 2012-05-24T09:37:18.493 回答