Comments 44
Интересно. А почему они делают window['eval'], а не просто eval(var2) — какая-то особенность?
И да, прикрепите код, интересно всё-таки.
И да, прикрепите код, интересно всё-таки.
+3
Интересное кино.
А с этим window.eval = function(arg) — это грамотно получилось.
А с этим window.eval = function(arg) — это грамотно получилось.
+5
Для фф есть аддон Javascript Deobfuscator https://addons.mozilla.org/en-US/firefox/addon/10345 который умеет показывать какой сейчас js компилится и какой выполняется. Скорее всего им тоже можно было расшифровать.
+4
Да, это расширение могло бы решить проблему. Но скрипт бы все же выполнился, что нежелательно (т.к. он сконструирован на лету ему пришлось бы пройти через eval чтобы быть «скомпилированным»).
0
Есть Malzilla, но не всегда хорошо работает. Если Javascript Deobfuscator сможет нормально вскрывать сложные скрипты, тогда отключение от сети или работа в виртуалке спасет :-)
0
Можно отключиться от интернета — тогда ничего угрожать при деобфускации и выполнении скрипта не будет.
+3
вроде firebug показывает весь выполненный js код тоже
0
window['eval'] вроде не видел.
0
Добавлю ещё, может кому интересно будет, что сервер с вирусами находится на этом IP: 91.213.174.12, можете посмотреть, там много доменов непонятного назначения, видимо чтобы дольше не банили? А автор походе Bondarenko Dmitriy Vladimirovich, если данные не левые.
ЗЫ: Если желания хватит, то расскажу, как мы этот троян быстренько грохнули, чтобы потом выяснять, откуда он вообще взялся.
ЗЫ: Если желания хватит, то расскажу, как мы этот троян быстренько грохнули, чтобы потом выяснять, откуда он вообще взялся.
+4
Такое в jQuery 1.3 использовалось для обработки нестандартного джейсона (JSON по спецификации должен везде иметь двойные кавычки):
if ( type == "json" ) data = window["eval"]("(" + data + ")");
0
Ха. теперь вирусописатели будут проверять typeof(window.eval), или как там.
0
Безтолку. В обоих случаях он function. Да и зачем? Ну узнал вирус что eval заменен, оригинальный та негде получить уже.
+1
узнать что заменён и не выполнить — с целью запутать.
0
Определить подмену можно, так как одно ждело функция а другое — native code-функция.
0
А расскажите пожалуйста как, интересно.
typeof() в обоих случаях честно говорит 'function'
typeof() в обоих случаях честно говорит 'function'
0
1) window.eval.toString()
2) Посмотреть window.eval.prototype и .constructor
2) Посмотреть window.eval.prototype и .constructor
+2
fakeEval = function () { debugger; };
fakeEval.prototype = eval.prototype;
fakeEval.toString = function () { return 'function eval() { [native code] }' };
eval = fakeEval;
+1
Function.toSource() забыли :)
А если так сделать: var decodeKey = eval('… '); и этим decodeKey расшифровывать тело вируса? Если вы подмените eval, он например, неправильно расшифруется и ничего не произойдет.
А еще можно, например, для расшифровки использовать куски ДОМа, который исседователь при расшифровке не скопирует :) А еще выкачивать вирус по кускам АЯКС-запросами :)
А если так сделать: var decodeKey = eval('… '); и этим decodeKey расшифровывать тело вируса? Если вы подмените eval, он например, неправильно расшифруется и ничего не произойдет.
А еще можно, например, для расшифровки использовать куски ДОМа, который исседователь при расшифровке не скопирует :) А еще выкачивать вирус по кускам АЯКС-запросами :)
0
создать ифрейм и взять эвал из него
+3
на подопечном сайте был встроен троян который был обфускейчен не меньше десяти раз, через алерты прогнал — оказался банальный iframe
0
Вы на это извращение гляньте:
pastebin.com/f3cc7e96d
pastebin.com/f3cc7e96d
0
> определял браузер, установленные плагины и прочую интересную для дальнейших
> действий информацию (включена ли Java, язык системы (?)).
> Далее, в соответствии с полученными данными, формировался URL
> для получения дальнейшего скрипта, который, в свою очередь, рендерил
> на страницу наиболее подходящий для данной конфигурации эксплойт
user_pref(«Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_1; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9»);
спасёт отца русской демократии от злодейского «определителя»
> действий информацию (включена ли Java, язык системы (?)).
> Далее, в соответствии с полученными данными, формировался URL
> для получения дальнейшего скрипта, который, в свою очередь, рендерил
> на страницу наиболее подходящий для данной конфигурации эксплойт
user_pref(«Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_1; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9»);
спасёт отца русской демократии от злодейского «определителя»
-2
Нет, не так, а вот так: «navigator.plugins», так «window.navigator.javaEnabled», так «navigator.mimeTypes[»video/x-ms-wmv"].enabledPlugin" и вот так «opera.buildNumber()»
+1
чего-чего?!
0
Блин, даже дырку WindowsMediaPlayer под Firefox используют.
0
UFO just landed and posted this here
Ребят, ну сколько можно?! Писать СЛОВИТЬ и ВПОЙМАТЬ безграмотно!
Извините, если задел чьи-то чувства, просто глаз режет…
Извините, если задел чьи-то чувства, просто глаз режет…
-2
base64_deOcde >> base64_deCode
опечатка
опечатка
+1
Альтернативный сервис по проверке сайта на вирусы http://www.secbot.org/
0
Only those users with full accounts are able to leave comments. Log in, please.
Интересная техника сокрытия кодов JS «вируса»