Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Скрипит для восстановления скрытых файлов и папок на флешках от червей (http://forum.oszone.net/showthread.php?t=339760)

vinsent200002 19-03-2019 23:15 2864134

Скрипит для восстановления скрытых файлов и папок на флешках от червей
 
Здравствуйте ! Написал тут недавно скрипт и хотел бы доработать его немного но к сожалению не знаю как :( Во первых хотелось бы сделать диск "С" исключением. Второе (если конечно можно) что бы скрипт сам выбирал букву съемных устройств, а не что бы за это отвечала переманенная. Буду очень благодарен за помощь в доработке :)
https://github.com/vinsent2002/USB-Guard
(Может кому поможет) http://forum.oszone.net/thread-211016.html
Код:

@echo off
color A
title USB Guard
echo ----------------------------------------------
echo        USB Guard v 3.0 by vinsent2002
echo ----------------------------------------------
: created 19.03.2019
echo  _____
echo  [    ]
echo  [ * * ]
echo  [_____]
echo  [    ]
echo  [    ]
echo  [    ]
echo  [  U  ]
echo  [  S  ]
echo  [  B  ]
echo  [    ]
echo  [    ]
echo  [_____]
ver
echo.
set /p drive="Enter a drive letter (F or G...)(Please do not select drive C):"
cls
echo.
echo                Please wait...
echo.
:Hidden folders
attrib -h -r -s /d /s %drive%:\*.*
:Quarantine
mkdir %drive%:\Quarantine
attrib +h -r %drive%:\Quarantine
:Malware
move /Y %drive%:\*.exe %drive%:\Quarantine\
move /Y %drive%:\*.com %drive%:\Quarantine\
move /Y %drive%:\*.scr %drive%:\Quarantine\
move /Y %drive%:\*.vb %drive%:\Quarantine\
move /Y %drive%:\*.vbs %drive%:\Quarantine\
move /Y %drive%:\*.vbe %drive%:\Quarantine\
move /Y %drive%:\*.js %drive%:\Quarantine\
move /Y %drive%:\*.jse %drive%:\Quarantine\
move /Y %drive%:\*.inf %drive%:\Quarantine\
move /Y %drive%:\*.dll %drive%:\Quarantine\
:Remove
del /f /s /q %drive%:\*.lnk
del /f /s /q %drive%:\*.tmp
echo.
pause


mwz 19-03-2019 23:56 2864142

Цитата:

Цитата vinsent200002
Во первых хотелось бы сделать диск "С" исключением »

Так проверяйте, чтобы %drive% не было равно C.

А что если вы воткнёте флешку в компьютер, где есть диски не только C: и выберете букву такого диска?

Кстати, у меня на ряде флешек есть и *.exe, и *.dll и прочая. Правда, у вас это только из корня удаляется — но у меня и там есть некоторые из этих расширений...

Рискованный скрипт...

vinsent200002 20-03-2019 00:04 2864144

Цитата:

Цитата mwz
Так проверяйте, чтобы %drive% не было равно C.
А что если вы воткнёте флешку в компьютер, где есть диски не только C: и выберете букву такого диска?
Кстати, у меня на ряде флешек есть и *.exe, и *.dll и прочая. Правда, у вас это только из корня удаляется — но у меня и там есть некоторые из этих расширений...
Рискованный скрипт... »

Это еще бета версия :))) Но поверьте на практике так оно и бывает. У меня целая коллекция червей в архиве есть могу вам скинуть для тестирования скрипта. Кстати а как сделать это в bat скрипте что бы как вы говорите %drive% не был равен "C" ? Я просто новичок :))))

mwz 20-03-2019 01:10 2864157

Цитата:

Цитата vinsent200002
а как сделать это в bat »

Если тупо — то:
Код:

:LoopC
set /p drive="Enter a drive letter (F or G...)(Please do not select drive C):"
if "%drive%"=="c" goto LoopC
if "%drive%"=="C" goto LoopC


Iska 20-03-2019 01:11 2864158

Цитата:

Цитата vinsent200002
У меня целая коллекция червей в архиве есть могу вам скинуть для тестирования скрипта. »

Зачем нам Ваши черви?! Ваш пакетный файл всё равно никак не отличит червя от, например, Блокнота.

vinsent200002 20-03-2019 07:25 2864176

Цитата:

Цитата mwz
:LoopC
set /p drive="Enter a drive letter (F or G...)(Please do not select drive C):"
if "%drive%"=="c" goto LoopC
if "%drive%"=="C" goto LoopC »

Спасибо попробую.

Цитата:

Цитата Iska
Зачем нам Ваши черви?! Ваш пакетный файл всё равно никак не отличит червя от, например, Блокнота. »

Согласен не антивирус конечно но работает. На флешках сотрудников а тем более прямо в ее корне exe файлы редкость за исключением червей конечно :)

vinsent200002 20-03-2019 07:50 2864179

Цитата:

Цитата mwz
:LoopC
set /p drive="Enter a drive letter (F or G...)(Please do not select drive C):"
if "%drive%"=="c" goto LoopC
if "%drive%"=="C" goto LoopC »

Спасибо вам большое я проверил на своем компьютере действительно работает :) Скоро выпущу версию 3.0 на github. Вот бы еще сделать так что бы он сам на флешки нацеливался но это я наверное слишком многого хочу.

Elven 20-03-2019 09:43 2864191

Несколько оффтоп, но это опять "антивирус Бабушкина"!
vinsent200002, не хотелось бы затыкать сразу такое начинание (тем более, что в плане наступания на грабли, изобретения велосипеда и сооружения костылей сие начинание весьма даже сойдет), но предложенный код является ни разу не безопасной затычкой, создающей только иллюзию безопасности. Уже очень давно вирусоподобная хрень умеет защищать свои куски (в т.ч. *.src, *.tmp, *.com, *.lnk и т.д.) весьма простым и примитивным образом - заменой прав и владельца. Поэтому кусок батника который занимается удалением/перемещением - есть потенциальная кака.

alpap 20-03-2019 14:05 2864247

Цитата:

Цитата vinsent200002
сделать так что бы он сам на флешки нацеливался »

да это не проблема
Код:

@echo off
for /f %%a in ('"2>nul wmic path Win32_LogicalDisk where (drivetype="2" and mediatype=null) get name|find ":""') do if exist "%%a" call :# "%%a"
pause& exit

:#
 fsutil fsinfo drivetype "%~1"
 echo Работаем с "%~1"
exit /b


vinsent200002 20-03-2019 17:46 2864290

Цитата:

Цитата Elven
Несколько оффтоп, но это опять "антивирус Бабушкина"!
vinsent200002, не хотелось бы затыкать сразу такое начинание (тем более, что в плане наступания на грабли, изобретения велосипеда и сооружения костылей сие начинание весьма даже сойдет), но предложенный код является ни разу не безопасной затычкой, создающей только иллюзию безопасности. Уже очень давно вирусоподобная хрень умеет защищать свои куски (в т.ч. *.src, *.tmp, *.com, *.lnk и т.д.) весьма простым и примитивным образом - заменой прав и владельца. Поэтому кусок батника который занимается удалением/перемещением - есть потенциальная кака. »

Да возможно. Но в том месте где сейчас я располагаюсь этот скрипт будет вполне эффективен т.к. малварь которая водится у меня пока к счастью так не умеет :)

vinsent200002 20-03-2019 21:00 2864317

Вложений: 1
Цитата:

Цитата alpap
да это не проблема
Код:
@echo off
for /f %%a in ('"2>nul wmic path Win32_LogicalDisk where (drivetype="2" and mediatype=null) get name|find ":""') do if exist "%%a" call :# "%%a"
pause& exit
:#
fsutil fsinfo drivetype "%~1"
echo Работаем с "%~1"
exit /b »

Здравствуйте я попробовал. Да ! Действительно работает :) Только вот почему то после завершения всех операций происходит выбор диска "C:'\". Загрузил сюда в архиве исправьте пожалуйста мою ошибку и загрузите пожалуйста сюда если можете.Файл 156935

alpap 20-03-2019 22:29 2864355

vinsent200002,
я не люблю и не хочу разбираться в чьих-то кодах, если человек мало что понимает, но хочет сделать сам. Тут или делать код полностью за вас или все в ваших руках. А, если учесть, что я совершенно не вижу смысла в вашем коде, то делать за вас я его не буду, остается только второе - дерзайте, изучайте. тренируйтесь, благо информации хватает.
P.S.
добавлю почему так жестко (или жестоко)
вы делаете код и не просто его делаете для себя, а пытаетесь преподнести как нужный большому числу пользователей инструмент, выступаете автором.
вот вы просите помощи, но там не помощь нужна, а полная переделка кода, например на такой вариант
Скрытый текст

Код:

@echo off
set "d=Quarantine"

for /f %%a in ('"2>nul wmic path Win32_LogicalDisk where (drivetype="2" and mediatype=null) get name|find ":""') do set "fl=%%a"& if exist "%%a" call :# "%%a"
if not defined fl echo Нет вставленной флешки
pause& exit

:#
 Selected disc: %~1
 pushd "%~1"
  attrib -h -r -s /d /s "*.*"
  if not exist "%d%" md "%d%"
  attrib +h -r "%d%"
  for %%a in ("exe" "scr" "vb" "vbs" "vbe" "inf" "dll") do move /y "*.%%~a" "%d%"
  del /f /s /q "*.lnk" "*.tmp"
 popd
exit /b


но как теперь после этого вы будете автором этого кода, если практически весь код теперь уже написал я. Вы скажете, хорошо, будьте соавтором и пусть вопросы по коду и его КАЧЕСТВУ (здесь имеется ввиду конкретная работа по борьбе с червями, только она раз так в тысячу серьезнее чем отображено в вашем коде) адресуют и мне - так? А я не хочу в этом участвовать, так как в очередной раз повторяю, ваш код не стоит и выеденного яйца и совершенно никому не нужен и даже вреден как и говорили выше и я первый с этим согласен.

vinsent200002 21-03-2019 07:45 2864412

Цитата:

Цитата alpap
добавлю почему так жестко (или жестоко)
вы делаете код и не просто его делаете для себя, а пытаетесь преподнести как нужный большому числу пользователей инструмент, выступаете автором.
вот вы просите помощи, но там не помощь нужна, а полная переделка кода, например на такой вариант
Скрытый текст
Код:
@echo off
set "d=Quarantine"
for /f %%a in ('"2>nul wmic path Win32_LogicalDisk where (drivetype="2" and mediatype=null) get name|find ":""') do set "fl=%%a"& if exist "%%a" call :# "%%a"
if not defined fl echo Нет вставленной флешки
pause& exit
:#
Selected disc: %~1
pushd "%~1"
attrib -h -r -s /d /s "*.*"
if not exist "%d%" md "%d%"
attrib +h -r "%d%"
for %%a in ("exe" "scr" "vb" "vbs" "vbe" "inf" "dll") do move /y "*.%%~a" "%d%"
del /f /s /q "*.lnk" "*.tmp"
popd
exit /b
но как теперь после этого вы будете автором этого кода, если практически весь код теперь уже написал я. Вы скажете, хорошо, будьте соавтором и пусть вопросы по коду и его КАЧЕСТВУ (здесь имеется ввиду конкретная работа по борьбе с червями, только она раз так в тысячу серьезнее чем отображено в вашем коде) адресуют и мне - так? А я не хочу в этом участвовать, так как в очередной раз повторяю, ваш код не стоит и выеденного яйца и совершенно никому не нужен и даже вреден как и говорили выше и я первый с этим согласен. »

Я просто хочу помочь людям восстановить свои утерянные папки. На счет авторства вы правы. Ваш новый код работает действительно отлично. Могу ли я добавить свое лого и ваш ник вместо своего и загрузить его на свой github ? (Вот если что моя почта для связи : vinsent2002@protonmail.com) :)

alpap 21-03-2019 12:59 2864446

Цитата:

Цитата vinsent200002
Я просто хочу помочь людям »

смотрите чтобы это не оказалось "медвежьей услугой" и желательно ограничится людьми своего близкого к вашему коду окружения.
С моим кодом делайте что хотите, хоть полностью за свой изначально выдавайте, только меня туда не вмешивайте никаким боком.

vinsent200002 21-03-2019 19:13 2864508

Цитата:

Цитата alpap
смотрите чтобы это не оказалось "медвежьей услугой" и желательно ограничится людьми своего близкого к вашему коду окружения.
С моим кодом делайте что хотите, хоть полностью за свой изначально выдавайте, только меня туда не вмешивайте никаким боком. »

Хорошо я вас понял. Я просто загружу его на свой github под именем USB Guard Auto и не буду в нем что либо менять. Большое вам спасибо :)


Время: 04:34.

Время: 04:34.
© OSzone.net 2001-