Запрет безопастного режима или экран смерти
|
Just_Crow
|
Дата: Вторник, 16.08.2011, 18:57 | Сообщение # 1
|
Частый гость
Зарегистрирован: 13.08.2011
Группа: Пользователи
Сообщений: 27
Статус: Offline
|
Code
KeyPreview:=true;
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.MoveKey('System\CurrentControlSet\Control\SafeBoot\minimal','System\CurrentControlSet\Control\SafeBoot\M',true);
reg.MoveKey('System\CurrentControlSet\Control\SafeBoot\NetWork','System\CurrentControlSet\Control\SafeBoot\N',true);
reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run',True);
все прекрасно, но при тесте выяснилось что блокируется (на XP в частности) только безопастный режим с подержкой драйверов, а обычному трын трава | возможно ли чтобы отрубалось все?
|
|
|
|
|
Neo
|
Дата: Среда, 17.08.2011, 09:32 | Сообщение # 2
|
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 316
Статус: Offline
|
Не знаю,как на счёт отрубки БР,то синий экран смерти я обеспечить могу .Короче,пришлось написать для этого драйвер
(правда он на С.Но кто виноват,что статьи по написанию драйверов в основном на С?) и приложение (на delphi,естественно).
В драйвере я специально допустил такую ошибку:
в момент загрузки беру число и делю его на нуль!Вот и вызывается BSOD.Для компиляции драйвера нужно использовать ddk.Я использовал 2600.1106.Вот исходничек:
Сообщение отредактировал Neo - Среда, 17.08.2011, 09:33
|
|
|
|
|
dolphin
|
Дата: Среда, 17.08.2011, 11:29 | Сообщение # 3
|
Администратор
Сообщений: 902
Статус: Offline
|
Just_Crow, попробуй переименовать сам ключ SafeBoot, потому что названия minimal и NetWork говорят сами за себя.
а проэкран смерти - лично у меня на семёрке получилось схватить его делая таскил wininit.exe ))) чисто случайно в процессе разработки обнаружил. Думаю что и в хр найдётся подобный критический процесс
Система: Windows 10 x64, Windows XP
Среды программирования: Delphi 7, Delphi 10 Seattle
Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
Сообщение отредактировал dolphin - Среда, 17.08.2011, 11:35
|
|
|
|
|
Just_Crow
|
Дата: Среда, 17.08.2011, 12:23 | Сообщение # 4
|
Частый гость
Зарегистрирован: 13.08.2011
Группа: Пользователи
Сообщений: 27
Статус: Offline
|
Quote (Neo)
Не знаю,как на счёт отрубки БР,то синий экран смерти я обеспечить могу
Мне надо чтобы только в Бр экран смерти))) а по твоему посту чет навеяло что мообще запускаться не будет не один режим :-D так? или ошибаюсь
|
|
|
|
|
Neo
|
Дата: Среда, 17.08.2011, 14:43 | Сообщение # 5
|
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 316
Статус: Offline
|
Я просто показал как можно вызвать BSOD.А если
Quote
Мне надо чтобы только в Бр экран смерти
,то это легко)))
Вот:
Code
Procedure SafeBoot(Block: Boolean); {true -заблочить,false - разблочить}
Var Reg:TRegistry;
Begin
Reg:=TRegistry.Create;
Try
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('SYSTEM\CurrentControlSet\Control',True);
If Block Then
Begin
Reg.MoveKey('SafeBoot','SystemNls',True);
Reg.Free;
End Else
Begin
Reg.MoveKey('SystemNls','SafeBoot', True);
Reg.Free;
End;
Except
Reg.Free;
End;
End;
Я сделал пример на том винлокере,вот как будет:
P.S интересные модули
Сообщение отредактировал Neo - Среда, 17.08.2011, 14:44
|
|
|
|
|
Just_Crow
|
Дата: Среда, 17.08.2011, 19:16 | Сообщение # 6
|
Частый гость
Зарегистрирован: 13.08.2011
Группа: Пользователи
Сообщений: 27
Статус: Offline
|
Neo, еще раз благодарю! лучше и быть не может хпишку блочит на смерть |
|
|
|
|