If you still have whose "autorun.inf puppies", which are being run by office rats, after all install && update && upgrade of the so called "anti-virus" software. Please, welcome!
Достали автораны и жирные ненасытные обновлениями антивирусы, которые до сих пор не могут с ними ничего поделать? Добро пожаловать!
for visible process open with "cscript" более удобен для видимой работы
p.s. Where are flash drives WITH write-disable switch, dear anti-virus agenda ?! Maybe this is problem of my backward country side?
Moving of the read-only folders doesn't work. Thus only notices are echoed.
png showing working window: http://174.142.248.143:8008/ftp/kill-autorun.png
http://174.142.248.143:8008/ftp/_kill-autorun%2bshow_hidden_.wsf :
<package><job id="anti-autorun"><script language="JScript">
WScript.Echo("Начинаем следить за autorun вирусами на флэшках. \
Рекомдации по пользованию флэшками: хранить программы и папки с большим \
количеством файлов по возможности в архивах (ZIP, RAR). Корневая директория \
должна содержать только поддиректории. Следить за спонтанно появляющимися \
файлами и немедленно их удалять в менеджере файлов (Total Commander, \
FAR)."+String.fromCharCode(10,13));
var fso = new ActiveXObject("Scripting.FileSystemObject"), c = 0, status;
do {
if (fso.Drives.Count == c) {
WScript.Sleep(500);
continue;
}
var e = new Enumerator(fso.Drives), s="", i, fo, fe;
c = fso.Drives.Count, status = 0;
WScript.Echo("Число дисков изменилось. Проверяем...");
for (; !e.atEnd(); e.moveNext()) {
if ("A" == e.item().DriveLetter) e.moveNext();
i = e.item();
s = i.DriveLetter;
if (!(1 == i.DriveType && i.IsReady)) continue;
if (fso.FileExists(s+":\\autorun.inf")) {
try {
fo=fso.GetFile(s+":\\autorun.inf");
if (fo.Attributes & 1) fo.Attributes -= 1;
delete(fo);
fso.DeleteFile(s+":\\autorun.inf");
WScript.Echo("Обезврежен: "+s+":\\autorun.inf");
} catch (j) {
WScript.Echo("ВНИМАНИЕ! "+s+":\\autorun.inf НЕ ОБЕЗВРЕЖЕН!");
}
status = 1;
try {
fso.CreateFolder(s+":\\!!!_ВИРУСЫ-удалять\\")
} catch (j) {}
try {fso.MoveFile(s+":\\*.exe", s+":\\!!!_ВИРУСЫ-удалять\\");
WScript.Echo("подозрительные EXE файлы");
} catch (j) {}
try {fso.MoveFile(s+":\\*.pif", s+":\\!!!_ВИРУСЫ-удалять\\");
WScript.Echo("Подозрительные PIF файлы");
} catch (j) {}
try {fso.MoveFile(s+":\\*.inf", s+":\\!!!_ВИРУСЫ-удалять\\");
WScript.Echo("Подозрительные INf файлы");
} catch (j) {}
try {fso.MoveFile(s+":\\*.dll", s+":\\!!!_ВИРУСЫ-удалять\\");
WScript.Echo("Подозрительные DLL файлы");
} catch (j) {}
try {fso.MoveFile(s+":\\*.cmd", s+":\\!!!_ВИРУСЫ-удалять\\");
WScript.Echo("Подозрительные CMD файлы");
} catch (j) {}
try {fso.MoveFile(s+":\\*.bat", s+":\\!!!_ВИРУСЫ-удалять\\");
WScript.Echo("Подозрительные BAT файлы");
} catch (j) {}
try {fso.MoveFile(s+":\\*.ini", s+":\\!!!_ВИРУСЫ-удалять\\");
WScript.Echo("Подозрительные INI файлы");
} catch (j) {}
try {fso.MoveFile(s+":\\*.wsf", s+":\\!!!_ВИРУСЫ-удалять\\");
WScript.Echo("Подозрительные WSF файлы");
} catch (j) {}
try {fso.MoveFile(s+":\\*.vbs", s+":\\!!!_ВИРУСЫ-удалять\\");
WScript.Echo("Подозрительные VBS файлы");
} catch (j) {}
fo = fso.GetFolder(s+":\\!!!_ВИРУСЫ-удалять\\");
fe = new Enumerator(fo.files);
if ( fo.files.Count > 0) {
status++;
for (; !fe.atEnd(); fe.moveNext()) {
i = String(fe.item());
if(!("!" == i.substring(i.length-1,i.length))) {
try {
if (fe.item().Attributes & 1) fe.item().Attributes -= 1;
WScript.Echo("Перемещаем "+fe.item().ShortName+" -> !!!_ВИРУСЫ-удалять\\"+fe.item().ShortName.substr(0,fe.item().ShortName.length - 1)+"!");
fso.MoveFile(i, i.substr(0,i.length - 1)+"!");
} catch (j) {
WScript.Echo("Не вышло, пробуем удалить...");
try { fso.DeleteFile(i); } catch (j) {
WScript.Echo("Тоже косяк. Удалять Тоталом!");
}
}
}
}
} else fo.Delete();
} /* autorun */
fo = fso.GetFolder(s+":\\");
fe = new Enumerator(fo.SubFolders);
for (; !fe.atEnd(); fe.moveNext()) {
var n = String.fromCharCode(10,13), d;
i = fe.item();
d = String(i);
if (i.Attributes & 2) {
i.Attributes -= 2;
status |= 8;
}
if (i.Attributes & 4) {
i.Attributes -= 4;
status |= 16;
}
if (8 < status) {
status &= 3;
WScript.Echo("!! Найдена невидимая (системная) директория: " + n + "=================================================" + n + i + " ! Если это KALBA, RECYCL*, SETUP -- удалять, это вирусы!" + n + "=================================================");
try {
fso.MoveFile(i, i+"_возмжно_скрываются_ВИРУСЫ");
} catch (j) {
WScript.Echo("Переименовать не получилось.");
}
}
} /* hidden + system attributes */
} /* drives -> flash */
if (!status) WScript.Echo("Проверка ничего не выявила, пока...");
} while(1);
</script></job></package>