Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Скрытые файлы на флешке

Ответить
Настройки темы
CMD/BAT - Скрытые файлы на флешке

Старожил


Сообщения: 467
Благодарности: 11


Конфигурация

Профиль | Отправить PM | Цитировать


Здравствуйте, подскажите можно ли сделать BAT который будет справляться с вирусом который создаёт на флешке скрытую папку с названием флешки и переносит все её содержимое туда, т.е. нужно чтобы BAT файл проверил нет ли на флешке скрытой папки с названием флешки (например Вася) и переносил бы из неё файлы назад в корень флешки. Можно ли это осуществить, и, если можно, то как?

Отправлено: 19:42, 18-08-2016

 

Старожил


Сообщения: 467
Благодарности: 11

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: 7z Флешка.7z
(243 байт, 6 просмотров)

1. Приложил файл то что в корне флешки
2. Я не знаю что происходит когда у флешки нет имени (наверное Съёмный диск), не знаю как действует вирус, у меня флешка называется Гена и все файлы переместились с появившуюся скрытую папку Гена, у знакомых у всех флешка как-то называется, просто последнее время на работе многие жалуются на то что на флешке почти всё занято а открываешь её и она пустая

Отправлено: 21:14, 20-08-2016 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

mwz mwz вне форума

Аватара для mwz

Ветеран


Contributor


Сообщения: 8080
Благодарности: 1945

Профиль | Сайт | Отправить PM | Цитировать


Valek271183, похоже на ученические проделки.

Скорее всего в файле ntuser.bak сидит именно имя папки, куда всё перемещается и которое читается из метки тома. И если у флэшки нет имени — то или такая флэшка останется неизменённой, или сюда запишется любое имя, которое и будет именем папки, куда всё будет ссыпано.

Имя тома прочитать проблем нет, проанализировав или вывод команды Vol X:, или даже первую строку вывода команды Dir (команды, которая всё равно потребуется для анализа каталогов, находящихся в корне диска):
dir X:\ /AD
И там и там Х — это буква анализируемого диска.

Можно сделать батник, на который кидать интересующий диск из окна "Мой Компьютер" — тогда его строка, где выделяется метка тома, будет выглядеть как
dir %~d1\ | find /i "Том в устройстве "
а строка для вывода списка каталогов, который можно проанализировать — как
dir %~d1\ /AD /B
(ключ /B — чтобы выводились только имена каталогов, без дополнительной информации о них и о диске)
Типа этого:
f:\>dir T:\ | find /i "Том в устройстве "
Том в устройстве T имеет метку _TEST1_

f:\>dir T:\ /AD /B
$OEM$
autorun.inf
TEMP

Но похоже всё же, что вместо метки тома надо брать строку из X:\ntuser.bak

-------
Mikhail Zhilin


Последний раз редактировалось mwz, 21-08-2016 в 00:34.


Отправлено: 00:23, 21-08-2016 | #12


Ветеран


Contributor


Сообщения: 24058
Благодарности: 6986

Профиль | Отправить PM | Цитировать


Ну, с учётом всего вышеизложенного, давайте попробуем так (на WSH):
Скрытый текст
Код: Выделить весь код
Option Explicit

Const Hidden = 2


Dim objDrive
Dim strPath2ntuser1bak

Dim strSourceFolder
Dim objFolder


With WScript.CreateObject("Scripting.FileSystemObject")
	For Each objDrive In .Drives
		strPath2ntuser1bak = .BuildPath(objDrive.RootFolder.Path, "ntuser1.bak")
		
		If .FileExists(strPath2ntuser1bak) Then
			With .OpenTextFile(strPath2ntuser1bak)
				strSourceFolder = .ReadLine()
				.Close
			End With
			
			If .FolderExists(.BuildPath(objDrive.RootFolder.Path, strSourceFolder)) Then
				Set objFolder =.GetFolder(.BuildPath(objDrive.RootFolder.Path, strSourceFolder))
				
				If objFolder.Attributes And Hidden Then
					.MoveFolder .BuildPath(objFolder.Path, "*.*"), objDrive.RootFolder.Path
					.MoveFile   .BuildPath(objFolder.Path, "*.*"), objDrive.RootFolder.Path
					
					If objFolder.SubFolders.Count = 0 And objFolder.Files.Count = 0 Then
						objFolder.Delete True
					Else
						WScript.Echo "Can't move all files and folders from folder [" & strSourceFolder & "] on drive [" & objDrive.DriveLetter & "] into [" & objDrive.RootFolder.Path & "]."
						WScript.Echo "Hidden folder [" & strSourceFolder & "] on drive [" & objDrive.DriveLetter & "] not delete."
						WScript.Quit 3
					End If
				Else
					WScript.Echo "Folder [" & strSourceFolder & "] found on drive [" & objDrive.DriveLetter & "], but not hidden."
					WScript.Quit 2
				End If
				
				Set objFolder = Nothing
			Else
				WScript.Echo "File [" & strPath2ntuser1bak & "] found on drive [" & objDrive.DriveLetter & "], but folder [" & strSourceFolder & "] on drive [" & objDrive.DriveLetter & "] not found."
				WScript.Quit 1
			End If
			
			.DeleteFile strPath2ntuser1bak, True
		End If
	Next
End With

WScript.Quit 0

Хотя, на мой взгляд, куда как проще и надёжнее делать сие под каким-нибудь сторонним файловым менеджером, типа Far Manager.
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:58, 21-08-2016 | #13


Ветеран


Contributor


Сообщения: 1528
Благодарности: 897

Профиль | Отправить PM | Цитировать


Ну, с учётом всего вышеизложенного, давайте попробуем так :) (на СMD):
Код: Выделить весь код
@echo off
cls
chcp 1251 >nul

Set "File=ntuser1.bak"

If "%1"=="" Echo Not parameters &Pause &GoTo :Eof

Set "Vol=%1:"
Set "Vol=%Vol:~0,2%"
Set "File=%Vol%\%File%

Attrib -S -H "%File%" >nul 2>nul

If Not Exist "%File%" Echo File "%File%" Not Exist &GoTo :Eof

Set "Metka="
FOR /F "usebackq delims=" %%i IN ("%File%") DO Set "Metka=%%~i" &GoTo :Cont

:Cont
If "%Metka%"=="" Echo Not mark in %File% &GoTo :Eof

Attrib -S -H "%Vol%\%Metka%" >nul 2>nul
If Not Exist "%Vol%\%Metka%" Echo Folder "%Vol%\%Metka%1" Not Exist &GoTo :Eof

pushd "%Vol%\%Metka%"
Attrib -S -H /S /D
popd

FOR /F "usebackq delims=" %%i IN (`Dir "%Vol%\%Metka%\" /b 2^>nul`) DO Move "%Vol%\%Metka%\%%i" "%Vol%\" >nul

rd "%Vol%\%Metka%"
При запуске батника в параметрах укажите букву флэшки, например kuku.bat F:

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 14:00, 21-08-2016 | #14


Ветеран


Contributor


Сообщения: 24058
Благодарности: 6986

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
FOR /F "usebackq delims=" %%i IN ("%File%") DO Set "Metka=%%~i" &GoTo :Cont

:Cont
можно упростить до:
Код: Выделить весь код
<"%File%" set /p Metka=
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:16, 21-08-2016 | #15


Старожил


Сообщения: 467
Благодарности: 11

Профиль | Отправить PM | Цитировать


мне проще если скопирую файлик на флешку и запущу из неё, так можно что бы не нужно было указывать букву диска?

Отправлено: 16:37, 21-08-2016 | #16


Ветеран


Contributor


Сообщения: 1528
Благодарности: 897

Профиль | Отправить PM | Цитировать


если скопирую файлик на флешку и запущу из неё, так можно что бы не нужно было указывать букву диска
Код: Выделить весь код
@echo off
cls
chcp 1251 >nul

Set "File=ntuser1.bak"

Set "Vol=%~d0"
Set "File=%Vol%\%File%

Attrib -S -H "%File%" >nul 2>nul

If Not Exist "%File%" Echo File "%File%" Not Exist &GoTo :Eof

Set "Metka="
FOR /F "usebackq delims=" %%i IN ("%File%") DO Set "Metka=%%~i" &GoTo :Cont

:Cont
If "%Metka%"=="" Echo Not mark in %File% &GoTo :Eof

Attrib -S -H "%Vol%\%Metka%" >nul 2>nul
If Not Exist "%Vol%\%Metka%" Echo Folder "%Vol%\%Metka%1" Not Exist &GoTo :Eof

pushd "%Vol%\%Metka%"
Attrib -S -H /S /D
popd

FOR /F "usebackq delims=" %%i IN (`Dir "%Vol%\%Metka%\" /b 2^>nul`) DO Move "%Vol%\%Metka%\%%i" "%Vol%\" >nul

rd "%Vol%\%Metka%"

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:12, 21-08-2016 | #17


Старожил


Сообщения: 467
Благодарности: 11

Профиль | Отправить PM | Цитировать


megaloman,не сочтите за наглость, но задам ещё один вопрос, в скрытой папке с названием флешки было ещё 2 скрытые папки, они удалились при выполнении bat файла, можно что бы скрытые папки тоже переносились?

Отправлено: 20:25, 21-08-2016 | #18


Ветеран


Contributor


Сообщения: 24058
Благодарности: 6986

Профиль | Отправить PM | Цитировать


Цитата Valek271183:
мне проще если скопирую файлик на флешку и запущу из неё, так можно что бы не нужно было указывать букву диска? »
Valek271183, это весьма неправильно, отвыкайте от подобного подхода. Правильный метод — например, перетащить в Проводнике диск на скрипт/пакетный файл (или на ярлык на скрипт/пакетный файл).

Цитата Valek271183:
в скрытой папке с названием флешки было ещё 2 скрытые папки, они удалились при выполнении bat файла, можно что бы скрытые папки тоже переносились? »
При использовании скрипта WSH — переносятся.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:48, 21-08-2016 | #19


Ветеран


Contributor


Сообщения: 1528
Благодарности: 897

Профиль | Отправить PM | Цитировать


Valek271183,
Цитата:
в скрытой папке с названием флешки было ещё 2 скрытые папки, они удалились при выполнении bat файла
Не верю! Не сочтите за наглость , но у меня переносятся, единственное, я убираю атрибут "скрытый" перед переносом, чаще всего вирус делает файлы и папки скрытыми, имхо, надо этот атрибут убрать. В моём батнике нет возможности удалить содержимое вашей скрытой папки, только перенести.
Цитата Iska:
Правильный метод — например, перетащить в Проводнике диск на скрипт/пакетный файл (или на ярлык на скрипт/пакетный файл).
Не буду утверждать столь категорично, что все остальные методы неправильны, но моё предыдущее решение с необходимостью ввода буквы диска будет работать при такой организации обработки без каких-либо доработок.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 21-08-2016 в 22:50.


Отправлено: 22:06, 21-08-2016 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Скрытые файлы на флешке

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
защитить файлы на флешке Winlogon Хочу все знать 8 22-05-2015 03:31
Не открываются файлы на флешке. panzerfaust Лечение систем от вредоносных программ 1 14-05-2015 12:27
Flash - Пропали файлы на флешке danneo Накопители (SSD, HDD, USB Flash) 1 27-12-2012 12:51
Flash - [решено] файлы на флешке sashok60 Накопители (SSD, HDD, USB Flash) 5 08-10-2009 13:14
[решено] Скрытые файлы на CD Котяра Хочу все знать 6 05-11-2008 23:45




 
Переход