@echo off
:begin
Setlocal EnableDelayedExpansion EnableExtensions
mode con: cols=82 lines=30
title Anti Hidden Fast - Удаление следов вирусной деятельности ver.1.6
:: Настройки
:: Включить тихий режим (удаление ярлыков и подозрительных файлов и папок без предупреждения)
Set Silent=true
:: К подозрительным файлам относятся:
:: game.cpl
:: system
:: Все *.lnk (кроме ярлыков на рабочем столе)
:: Все *.init
:: desktop.ini
::
:: К подозрительным папкам относятся:
:: Папка с символом 0xA0 (все содержимое папки будет перенесено в корневой каталог)
:: recycled
:: recycler
:: System Volume Information
Set "_CharA0_= "
color 1a
echo Maded by Alex Drago.kas -=2012-2013=-
echo Anti Hidden Fast v.1.6 -= Сделано в Украине :)
echo.
echo Этап 1. Возобновление свойств корневых папок.
echo.
echo Будут установлены такие параметры:
echo - не "Скрытый"
echo - не "Системный"
echo + стать владельцем
echo + предоставить полные права
echo.
echo Для ускорения операции можно временно отключить антивирусное ПО.
Call :StrOne " Работаю с папкой: "
<nul set /p text=%%
Call :StrOne " " new
Set Cur=%~dp0
Set Cur=%Cur:~0,-1%
::Оценка количества папок для прогресс-бара, запись первой порции папок в массив (Hidden)
chcp 1251>nul
for /f "delims=" %%i in ('dir "%Cur%" /b /a:dh 2^>nul') do (set /a folders+=1& Set F.!folders!=%Cur%\%%i)
chcp 866>nul
for /L %%A in (1,1,%folders%) do (
set /a Progress=100*%%A/%folders%
Call :StrOne "!Progress! - !F.%%A!"
Call :RecovFolder "!F.%%A!"
)
chcp 1251>nul
for /f "delims=" %%i in ('dir "%Cur%" /b /a:ds 2^>nul') do (
Call :StrOne "*** - %%i"
Call :RecovFolder "%Cur%\%%i"
)
chcp 866>nul
Call :StrOne "100 - завершено. "
echo.
echo Этап 2. Удаление лишних ярлыков.
chcp 1251>nul
::Удаление только ярлыков, имена которых соответствуют именам папок
for /f "delims=" %%i in ('dir "%Cur%" /b /a:d') do if exist "%Cur%\%%i.lnk" (
call :killfile "%Cur%\%%i.lnk"
)
chcp 866>nul
echo Этап 3. Блокирование посторонних активных процессов и удаление их источника.
for %%F in (
"%appdata%\*.exe" ^
"%HomeDrive%%HomePath%\..\All Users\Temp\*.exe" ^
"%HomeDrive%%HomePath%\..\All Users\Local Settings\Temp\*.exe" ^
"%Temp%\*.exe" ^
"%SystemDrive%\TMP\*.exe"
) do (
if exist "%%~F" (
for /f "delims=" %%i in ('dir "%%~F" /b /a') do taskkill /im "%%i" /t /f
call :killfile "%%~F"
)
)