[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
korsak7, дело не в атрибутах. Это специфика ОС Windows: файл и папка с одинаковым именем невозможны (в одном каталоге/корне). И при этом, команды удаления для файла и папки разные. Получается: вирус пытается записать файл Autorun.inf - ошибка (есть такая папка). Пробует удалить ФАЙЛ и повторить запись - тоже ошибка. А, чтобы догадался папку удалять - мне такие пока не встречались. А атрибуты папки скорее для того, чтобы глаза не мозолило (ну и удалять сложнее).

[Цитировать]

    korsak7
  • 107
  • Стаж: 9 лет
  • Сообщений: 1063
  • Репутация:62

    [+] [-]
Согласен

[Цитировать]

    Metamorf
  • 462
  • Стаж: 9 лет 8 месяцев
  • Сообщений: 85
  • Репутация:3

    [+] [-]
  • Откуда: Барнаул
Держите батник, который лечит флэшки и диски. Удаляет ярлыки, которые вместо папок, возвращает скрытые папки, удаляет авторан, создает не удаляемую штатными средствами папку авторан.
Запускать из корня.
Если вам нужно своё имя флешки, а не название "съемный диск", то вам этот способ не пойдет. Винда не отобразит имя диска, если на нем есть авторан.
@echo off
Setlocal EnableDelayedExpansion EnableExtensions
mode con: cols=82 lines=30
title Anti Hidden Fast - Удаление следов вирусной деятельности ver.1.5.1
color 1a
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. Блокирование сторонних активных процессов и удаление их источника.
if exist %appdata%\*.exe (
  for /f "delims=" %%i in ('dir %appdata%\*.exe /b /a') do taskkill /im "%%i" /t /f
  call :killfile "%appdata%\*.exe"
)
echo   Этап 4. Удаление файла автозапуска.
if not exist "%Cur%\autorun.inf\" if exist "%Cur%\autorun.inf" call :killfile "%Cur%\autorun.inf"
echo   Этап 5. Удаление модифицированных системных папок и инородных файлов.
for %%a in ("recycled" "System Volume Information") do (
  if exist "%Cur%\%%~a\" Call :KillFolder "%Cur%\%%~a")
) 1>nul 2>&1
if exist "%Cur%\recycler\" (
  echo   Найдена папка Recycler. Продолжить удаление корзины Windows для тома %~d0 ?
  Set /p RecycleRemove="Нажмите "Y" и кнопку {ENTER} "
  Echo.!RecycleRemove!|>nul find /i "y"&&Call :KillFolder "%Cur%\recycler"
)
for %%b in (game.cpl system *.lnk) do for /F "delims=" %%a in ('2^>nul dir "%Cur%\%%b" /b /a:-d') do (
  echo.
  echo Найдено подозрительный файл - %%a.
  echo Для удаления нажмите "Y" и кнопку {ENTER}
  (takeown /f "%Cur%\%%a"&echo y|cacls "%Cur%\%%a" /g %username%:f) 1>nul 2>&1
  del /f /p /A "%Cur%\%%a"
)
echo.
color 1b
echo   Этап 5.1. Поиск и удаление файлов host.exe. Пожалуйста, подождите...
tasklist |1>nul 2>&1 FindStr /B /L /I /C:host.exe&&(
  Echo   В системе запущен подозрительный процесс Host.exe
  Set /p HostClose="  Завершить его? - нажмите Y и {ENTER}"
  Echo.!HostClose!|>nul find /i "y"&&taskkill /im "host.exe" /t /f
)
(for /f "tokens=*" %%a in ('Dir /b /s /a:-d "%Cur%\host.exe"') Do (
  if not Defined HostAgree (
    Echo   Все файлы с именем Host.exe будут удалены с носителя %~dp0% рекурсивно.
    Set /p HostAgree="Чтобы продолжить нажмите Y и {ENTER}"
    Echo.!HostAgree!|>nul find /i "y"||Goto :ExtHostSeek
  )
  Call :KillFile "%%a"
)) 2>nul
:ExtHostSeek
color 1a
echo   Этап 6. Создание защитного файла автозапуска, который не удаляется
echo           штатными средствами.
if not exist "%Cur%\autorun.inf\" mkdir "%Cur%\autorun.inf" 1>nul 2>&1
if not exist "%Cur%\autorun.inf\Metamorf..\" mkdir "%Cur%\autorun.inf\Metamorf..\" 1>nul 2>&1
if not exist "%Cur%\autorun.inf\com1\" mkdir "\\?\%Cur%\autorun.inf\com1" 1>nul 2>&1
if not exist "%Cur%\autorun.inf\defence" (
  mkdir "%Cur%\autorun.inf\defence" 1>nul 2>&1
  echo y|1>nul 2>&1 cacls "%Cur%\autorun.inf\defence" /d Все
  echo y|1>nul 2>&1 cacls "%Cur%\autorun.inf\defence" /d All
)
echo.
echo Процедура проведена. Программа будет закрыта.
ping -n 3 localhost 1>nul 2>&1
color
goto :eof
:RecovFolder
attrib -s -h "%~1" 1>nul 2>&1
attrib "%~1"|>nul FindStr /BIR "....H.."
if %errorlevel%==0 (
    Call :GrantAccess "%~1"
    attrib -s -h "%~1" 1>nul 2>&1
  ) else (
  attrib "%~1"|>nul FindStr /BIR "...S..."&&(
    Call :GrantAccess "%~1"
    attrib -s -h "%~1" 1>nul 2>&1
    )
)
exit /b
:GrantAccess
takeown /f "%~1" /r /d y 1>nul 2>&1
echo y|cacls "%~1" /g %username%:f 1>nul 2>&1
exit /b
:KillFile
attrib -s -h "%~1" 1>nul 2>&1
del /F /Q "%~1" 1>nul 2>&1
if exist "%~1" (
  takeown /f "%~1"
  echo y|cacls "%~1" /g %username%:f
  del /F /Q /A "%~1"
) 1>nul 2>&1
if exist "%~1" (
  del /F /Q /A "\\?\%~1"
) 1>nul 2>&1
exit /b
:KillFolder
attrib -s -h "%~1" 1>nul 2>&1
rd /S /Q "%~1" 1>nul 2>&1
if exist "%~1" (
  takeown /f "%~1" /r /d y
  echo y|cacls "%~1" /g %username%:f
  rd /S /Q "%~1"
) 1>nul 2>&1
if exist "%~1" (
  rd /S /Q "\\?\%~1"
) 1>nul 2>&1
exit /b
:StrLen
::Вычисляет длину переменной.
::Результат записывается в переменную LastLen
set strString=%~1
set /a LastLen = 0
::Максимальная длина переменной = 1024 символа
for /l %%i in (0,1,1024) do (
  set strTempString=!strString:~%%i,1!
  if "!strTempString!" neq "" (
    set /a LastLen+=1
  )
)
exit /b 0
:StrOne
::%1 - строка, которую отображаем
::%2 - параметры:
::new - печатать рядом
::vblf - печатать с новой строки
::если опущен, то заменять предыдущий текст.
if "%2"=="new" (set /a conWidth-=%LastLen%& call :StrWrite "%~1" New& exit /b 0)
if "%2"=="crlf" (call :GetConsoleWidth& echo.&call :StrWrite "%~1" New& exit /b 0)
::если предыдущего текста не было, просто печатаем текст и записываем его длину
if not defined LastLen (call :GetConsoleWidth& call :StrWrite "%~1" New& exit /b 0)
::Переменная с БекСпейсами
Set BS=
::Набиваем нужным количеством БекСпейсов
for /l %%i in (1,1,%LastLen%) do (Set BS=!BS!)
::Возвращаем каретку назад
<nul set /p text=%BS%
Set /a LenBefore=%LastLen%
::Печатаем текст поверх старого
Call :StrWrite "%~1" Fill
::Если новый текст короче старого, нужно затереть оставшиеся символы
if %LenBefore% GTR %LastLen% (
  set Space=
  set /a n=%LenBefore%-%LastLen%
  rem Набиваем Space слева пробелами, а справа возратом каретки
  rem Нужно ее ведь затем вернуть в пред. позицию
  for /l %%i in (1,1,!n!) do (Set Space= !Space!)
  rem Знак подчеркивания + BackSpace здесь я использую для обхода ограничения
  rem т.к. иначе, если в начале строки мы захотим напечатать пробел - это не получится сделать
  rem Команда (<nul set /p text= Текст) выведет "Текст" без пробела!
  (<nul set /p text=_!Space!)
)
exit /b 0
:StrWrite
::Вычисляем длину напечатанной строки
Call :StrLen "%~1"
::Определяем поместится ли по ширине консоли
Set Text=%~1
if %LastLen% GTR %conWidth% (
  call set Text=!Text:~0,%conWidth%!
  set /a LastLen=%conWidth%
)
::Печатаем текст на той же строке
<nul set /p text=_%Text%
::Обнуляем переменную длины предыдущей строки
if "%2"=="New" set /a LenBefore=0
exit /b 0
:GetConsoleWidth
::Получение ширины консоли
For /F "skip=4 tokens=1,2" %%v In ('mode con') Do (
  Set /A conWidth=%%w-4
  Exit /B
)


Последний раз редактировалось: Metamorf (2015-04-05 17:16), всего редактировалось 1 раз

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
conty9,
Получается: вирус пытается записать файл Autorun.inf - ошибка (есть такая папка).
Давно использую, создаешь каталог Autorun.inf, пока не встречал умных вирусов. ag

[Цитировать]

    KaSpieC 666
  • 260
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 787
  • Репутация:127

    [+] [-]
  • Откуда: Одесса
Доброго всем времени суток!
korsak7 Panda USB and AutoRun Vaccine Не работает на exFat, и есть немного негативных отзывов (в комментариях по Вашей ссылке). Может есть какие ещё ограничения?
И если не затруднит, могли бы Вы более углубленно, по возможности, описать возможность программы (из Вашего опыта "ковыряния" в ней)?
Metamorf Ваш способ (Anti_Hidden), он как писал conty9 - делает атрибуты "Read-only", "Hidden", "System"? (не силён в этом, так что не ругайте)
И что означает:
Удаляет ярлыки, которые вместо папок, удаляет авторан ?
О каких ярлыках идёт речь? И авторан - вирус может удалить, который прописался?
NTFS Drive Protection (по совету conty9) - не проверял, так как не всегда использую NTFS...
Также попробовал способ nikzzzz и его FullBubble, не знаю как на других файловых системах, но на FAT32 - довольно долго идёт процесс (а флешка на 16ГБ), но рабочий способ.
P.S. никто не желает создать тему Защита usb от вируса (вариантов достаточно), а эту тему удалить за ненадобностью?

[Цитировать]

    korsak7
  • 107
  • Стаж: 9 лет
  • Сообщений: 1063
  • Репутация:62

    [+] [-]
KaSpieC 666, хз - я давно ее не использую. Имхо сделай папку по рецепту conty9 и не мучайся.

[Цитировать]

    Metamorf
  • 462
  • Стаж: 9 лет 8 месяцев
  • Сообщений: 85
  • Репутация:3

    [+] [-]
  • Откуда: Барнаул
KaSpieC 666, Приветствую! Мой способ создаст папку, которую не то, что вирус, ты и сам не сможешь удалить.
В папке autorun.inf создаются еще папки, каждая с разными вариантами защиты от удаления. Может одну сможешь удалить... Попробуй.
Обычно авторан вирусы делают папки скратыми системными и только для чтения, вместо папок создают ярлыки с иконкой внешне неотличимой от папки. Пользователь нажимая наиярлык, запускает скрипт, написанный вирусописателем, а потом открывается папка. Пользователь сам распространяет вирус, открывая папки на разных компах.
Выложенный мной скрипт, удаляет вирус, восстанавливает аттрубуты папок, удаляет ярлыки, создает защиту на флэшке.
Незнаю как еще объяснить.

[Цитировать]

    KaSpieC 666
  • 260
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 787
  • Репутация:127

    [+] [-]
  • Откуда: Одесса
Доброго времени Вам!
korsak7 понял!
Metamorf Да больше и объяснять нечего! Спасибо Вам, что поделились!

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Metamorf,
Мой способ создаст папку, которую не то, что вирус, ты и сам не сможешь удалить.
Ну, удалить конечно сложновато, а вот переименовать основную папку autorun.inf, можно без проблем, а это плохо. al

[Цитировать]

    KaSpieC 666
  • 260
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 787
  • Репутация:127

    [+] [-]
  • Откуда: Одесса
nikzzzz, Доброго времени суток!
А есть какие-то предложения, как это поправить?

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
KaSpieC 666,
А есть какие-то предложения, как это поправить?
Не использовать FAT, с NTFS все нормально.

[Цитировать]

    Metamorf
  • 462
  • Стаж: 9 лет 8 месяцев
  • Сообщений: 85
  • Репутация:3

    [+] [-]
  • Откуда: Барнаул
nikzzzz, Я даже неподумал, что можно переименовать))))
Кстати Unlocker может удалить.

[Цитировать]

    KaSpieC 666
  • 260
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 787
  • Репутация:127

    [+] [-]
  • Откуда: Одесса
Metamorf, Доброго времени!
А нет мыслей, как это обойти?
Интересно, как себя на exFAT поведет.

[Цитировать]

    Metamorf
  • 462
  • Стаж: 9 лет 8 месяцев
  • Сообщений: 85
  • Репутация:3

    [+] [-]
  • Откуда: Барнаул
KaSpieC 666, Не заморачивайся. Вирусы авторан простые, иначе их ловят антивирусы. Не переименовывают они папку. Они файл пытаются создать, возможно с попыткой замены старого. Им это не удастся.

[Цитировать]

    JOYsticK
  • 486
  • Стаж: 9 лет 8 месяцев
  • Сообщений: 22
  • Репутация:-1

    [+] [-]
может кому-то будет интересно, я для себя делал что-то наподобие но чтоб картинка у флешки была моя.

Страница 2 из 3


Показать сообщения:    

Текущее время: 23-Ноя 11:01

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы