3

В Windows есть вредоносная программа, которая устанавливает ложный исполняемый файл (522k) и переименовывает реальные исполняемые файлы (.exe) в g * .exe и изменяет атрибуты на скрытые и только для чтения.

Пример:

folder 1
  Bar.exe # fake
  gBar.exe # real (hidden and only Read)

folder2
  Foo.exe # fake
  gFoo.exe # real (hidden and only Read)

Я хотел бы знать, если есть команда для Windows (для запуска с привилегиями в безопасном режиме), чтобы сделать рекурсивный поиск исполняемых файлов (по всему жесткому диску) и в случае совпадений (* .exe и g *). exe в том же каталоге или подкаталоге), который изменяет атрибуты .exe real, удаляет подделку или делает замену (с g * .exe на * .exe)

Обновить:

  1. Я удалил команду Linux, чтобы избежать путаницы
  2. Это то, что я сделал до сих пор (это не имеет большого значения):

    for /r "c:\" %%x in (g*.exe) do ren "%%x" "c:\*.exe"
    attrib -h -s -r +a g*.exe
    

Обновить:

Ответ, указанный как правильный, может в конечном итоге поставить под угрозу системные файлы, поэтому я решу проблему с Linux (с моим первоначальным предложением) и оставлю вопрос для Windows

Спасибо всем за ваш вклад (особая благодарность Pimp Juice IT)

1 ответ1

2

Вы можете запустить два отдельных цикла for /f с помощью команды dir, используя /a:h в одном для итерации скрытых файлов и a:/r в другом для итерации файлов только для чтения .

Вы бы использовали команду attrib с параметром -h чтобы удалить скрытые атрибуты файлов, и с параметром -r чтобы удалить атрибуты файлов, доступные только для чтения .

Примечание. Вы можете использовать "g*.exe" в качестве подстановочного знака для всех исполняемых файлов, начинающихся с буквы « g ». Также обязательно запустите это из каталога, где вы хотите начать рекурсивный поиск соответствующих файлов.

Удалить скрытые атрибуты

FOR /F "TOKENS=*" %a IN ('dir /s /b /a:h "*.exe"') do attrib -h "%~a"

Удалить атрибуты только для чтения

FOR /F "TOKENS=*" %a IN ('dir /s /b /a:r "*.exe"') do attrib -r "%~a"

Удалить поддельный файл и переименовать реальный файл обратно

В соответствии с вашими разъяснениями, чтобы найти исполняемые файлы с префиксом g в начале имени файла, используйте приведенный ниже пакетный скрипт после удаления скрытых и доступных только для чтения атрибутов. Это рекурсивно найдет g файлов с префиксом, установит переменную с g проанализированным из этих имен файлов, удалит поддельный файл, а затем переименует g префиксным файлом обратно к исходному имени.

@ECHO ON
setlocal enabledelayedexpansion
set src=C:\
set mvFldr=C:\Moved
if not exist "%mvFldr%" MD "%mvFldr%"
FOR /F "TOKENS=*" %%a IN ('dir /s /b /a-d "%src%\g*.txt"') do (
    set fakename=%%~NXa
    set realname=!fakename:~1!
    if /i not [%%~Xa]==[.exe] GOTO :EOF
    if exist "%%~DPa!realname!" if exist "%%~DPa!fakename!" move "%%~DPa!realname!" "%mvFldr%"
    ::if exist "%%~DPa!realname!" if exist "%%~DPa!fakename!" del /q /f "%%~DPa!realname!"
    ren "%%~DPa!fakename!" "!realname!"
    )
EXIT

Дополнительные ресурсы

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .