ВОЗВРАЩЕНИЕ БЛОКНОТА - Готовим западло на скриптах Анализирующий Спецвыпуск Xakep, номер #033, стр. 033-046-1 (analyst1945@mail.ru) Привет, великий западлостроитель. Я надеюсь, от тебя не отвернулись еще твои друзья-компьютерщики (а других у тебя быть не может - вам просто не о чем разговаривать), тебя не выгоняют из компьютерных клубов, а на работе злой админ не запретил запуск любимого Блокнота. Тогда появился реальный шанс припомнить былые обиды и попрактиковаться в любимом хобби - западлостроении. Об этом я тебе расскажу в сегодняшней статье. Вкратце напомню, что весь предлагаемый далее код в компиляции не нуждается и пишется в любом текстовом редакторе (лишь бы формат выходного файла был текстовый.), сохраняется в текстовом файле с расширением WSF и запускается так же, как и ЕХЕ-файлы. Не забудь добавлять обязательные XML элементы: <?xml version="1.0" encoding="ISO-8859-1"?> <job id="T1"> <script language="VBScript"> <![CDATA[ в начало файла и ]]> </script> </job> в конец файла соответственно. Итак, приступим. БОРЬБА С ПИРАТСТВОМ Скажи, где ты брал диск с дистрибутивом твоей ОСи? А за сколько? Что-что? ЛИЦЕНЗИОННАЯ?! И все остальные диски ТОЖЕ? Ну, тогда бросай журнал и иди кататься с девочками (мальчиками :)) на яхте. Это будет для тебя более полезным занятием. Реально же, по официальным данным, пиратский рынок в России составляет 89 процентов. То есть с вероятностью 1:10 можно утверждать, что вставленная в дисковод компашка, если это не собственный сборник, является пиратской копией. Мы же с тобой займемся тем, что будем при попытке использования такого диска извлекать его с выдачей ну оч-ч-ч-ень строгого предупреждения :). Делать это будем, конечно же, с помощью сценариев на языке VBScript. Итак, пиши следующий код: Option Explicit Dim fso,mplayer Dim Drive Dim Count, f f=0 'Объявляются используемые переменные On Error Resume Next 'Блокировка сообщений об ошибках set fso=CreateObject("Scripting.FileSystemObject") set mplayer=CreateObject("WMPlayer.OCX.7") 'Подключение системных объектов Do while f=0 'Создается бесконечный цикл 'для работы скрипта до перезагрузки WScript.sleep 5000 'Пауза между проверками наличия диска в дисководе в миллисекундах Count=-1 'Начальное положение счетчика 'Нужен на случай нескольких сидюков For Each Drive in FSO.Drives 'Проверка всех дисков компа If Drive.DriveType=4 then 'Если это сидюк count=count+1 'То увеличиваем счетчик if Drive.IsReady Then 'Если он вставлен If (fso.fileexists(Drive.DriveLetter & ":\" & "Autorun.inf")) then 'И на нем есть файл Autorun.inf 'Значит есть автозапуск 'И это не ручной сборник '(кто ставит на ручной сборник автозапуск? %)) 'И не музыкальный диск mplayer.cdromcollection.item(count).eject() 'Извлекается лоток msgbox "Обнаружена пиратская копия диска. Дальнейшая работа с диском невозможна." &_ vbcrlf & "Сообщите в местные органы ФСБ о месте его покупки.",48,_ "Антипиратская система Windows" 'И выдается грозное предупреждение End if End If End If Next Loop Можешь не сомневаться, что твой ламернутый друган или не менее ламернутая секретарша будут рассказывать об этой "защите" всем и каждому, а первым делом побегут в магазин, продавший этот диск, а может и в ФСБ позвонят ;). |