1. Запрет и выключение
uses
…, WinProcs, registry, ValEdit;
var
Form1: TForm1;
KeyInfo: TRegKeyInfo;
i,oldx,oldy,newx,newy: Integer;
s,r: String;
reg: TRegistry;
valuenames: TStringList;
DataType: TRegDataType;
moving,ren: bool;
PROCEDURE DsblCTRL_ALT_DEL(Enabled:BOOLEAN); // процедуры выключения Ctrl+Alt+Del
VAR reg:TRegIniFile;
BEGIN
Reg:=TRegIniFile.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\',TRUE);
IF Enabled THEN
BEGIN
Reg:=TRegIniFile.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\',TRUE);
Reg.WriteInteger('System','DisableTaskMgr',1);
Reg.Free;
END;
end;
procedure TForm1.Button2Click(Sender: TObject); // выключение Ctrl+Alt+Del
begin
DsblCTRL_ALT_DEL(Enabled);
ShowWindow(FindWindow('Shell_TrayWnd', nil), 0);
end;
procedure TForm1.FormCreate(Sender: TObject); // убрать панель задач
var
rect1: TRect; i: integer;
TDWH:THandle;
begin
i:=0;
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @i, 0);
keyPreview:=true;
ShowWindow(Application.Handle, sw_Hide);
if (GetWindowRect(GetDesktopWindow, rect1)) then
begin
SetWindowPos(handle, HWND_TOPMOST, rect1.Left, rect1.top, rect1.right, rect1.bottom, SWP_SHOWWINDOW);
end;
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); // запрет нажатия Alt+F4
begin
if ((ssAlt in Shift) and (Key = VK_F4)) then Key:= 0;
end;
procedure DisableProxy; // настройка параметров ЛВС (выключение прокси), может быть использовано как инструмент запрета к выходу в Интернет
var Reg: TRegistry;
begin
Reg:= TRegistry.Create;
try
Reg.RootKey:= HKEY_CURRENT_USER;
if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Internet Settings', True) then
begin
Reg.WriteInteger('ProxyEnable',0);
Reg.CloseKey;
end;
finally
Reg.Free;
end;
end;
procedure TForm1.Button13Click(Sender: TObject); // установка прокси (отмена прокси - DisableProxy;)
var Reg: TRegistry;
a,b:string;
begin
Reg:= TRegistry.Create;
try
a:=edit1.Text;
b:=edit2.Text;
Reg.RootKey:= HKEY_CURRENT_USER;
if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Internet Settings', True) then
begin
Reg.WriteString('ProxyServer',a+':'+b);
Reg.WriteInteger('ProxyEnable',1);
Reg.CloseKey;
end;
finally
Reg.Free;
end;
end;
2. Разрешение и включение
PROCEDURE EnblCTRL_ALT_DEL(Enabled:BOOLEAN); // процедура включения Ctrl+Alt+Del
VAR reg:TRegIniFile;
BEGIN
Reg:=TRegIniFile.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\',TRUE);
IF Enabled THEN
BEGIN
Reg:=TRegIniFile.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\',TRUE);
Reg.DeleteKey('System','DisableTaskMgr');
Reg.Free;
END;
end;
procedure TForm1.Button1Click(Sender: TObject); // включение Ctrl+Alt+Del
begin
EnblCTRL_ALT_DEL(Enabled);
ShowWindow(FindWindow('Shell_TrayWnd', nil), 1);
end;
procedure EnableProxy(proxy:string; proxyp:string); // настройка параметров ЛВС (включение прокси), может быть использовано как инструмент запрета к выходу в Интернет
var Reg: TRegistry;
begin
Reg:= TRegistry.Create;
try
Reg.RootKey:= HKEY_CURRENT_USER;
if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Internet Settings', True) then
begin
Reg.WriteString('ProxyServer',proxy+':'+proxyp);
Reg.WriteInteger('ProxyEnable',1);
Reg.CloseKey;
end;
finally
Reg.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
Var
Rg:TRegistry;
begin
Rg:=TRegistry.Create;
if run.Checked then // выключении и включение автозагрузки
begin
Rg.RootKey:=HKEY_LOCAL_MACHINE;
Rg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer', true);
Rg.WriteInteger('DisableLocalMachineRun', 1);
Rg.WriteInteger('DisableCurrentUserRun',1);
Rg.CloseKey;
end
else
begin
Rg.RootKey:=HKEY_LOCAL_MACHINE;
Rg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer', true);
Rg.WriteInteger('DisableLocalMachineRun', 0);
Rg.WriteInteger('DisableCurrentUserRun', 0);
Rg.CloseKey;
end;
if autorun.Checked then // выключении и включение автозапуск дисков
begin
Rg.RootKey:=HKEY_LOCAL_MACHINE;
Rg.OpenKey('SYSTEM\CurrentControlSet\Services\Cdrom', true);
Rg.WriteInteger('AutoRun', 1);
end
else
begin
Rg.RootKey:=HKEY_LOCAL_MACHINE;
Rg.OpenKey('SYSTEM\CurrentControlSet\Services\Cdrom', true);
Rg.WriteInteger('AutoRun', 1);
end;
if regedit.Checked then // выключение и включение редактора реестра
begin
Rg.RootKey:=HKEY_CURRENT_USER;
Rg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\System', true);
Rg.WriteInteger('DisableRegistryTools', 0);
end
else
begin
Rg.RootKey:=HKEY_CURRENT_USER;
Rg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\System', true);
Rg.WriteInteger('DisableRegistryTools', 1);
end;
if install.Checked then // выключение и включение пункта «установка и удаление программ»
begin
Rg.RootKey:=HKEY_CURRENT_USER;
Rg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\Uninstall', true);
Rg.WriteInteger('NoAddRemovePrograms', 1);
end
else
begin
Rg.RootKey:=HKEY_CURRENT_USER;
Rg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\Uninstall', true);
Rg.WriteInteger('NoAddRemovePrograms', 0);
end;
procedure TForm1.FormCreate(Sender: TObject); // создание новой записи в реестре по указанному адресу
var Rg:TRegistry;
begin
Rg:=TRegistry.Create;
Rg.RootKey:=HKEY_LOCAL_MACHINE;
Rg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', true);
Rg.WriteString('Crypt', Extractfilepath(Application.ExeName)+Application.ExeName);
end;
Закрепление. Задание 3. Напишите фрагмент программы и скомпилируйте приложение, которое включает и выключает сочетание клавиш Ctrl+Alt+Del на клавиатуре.
Задание 4. Изучите текст программы и сделайте выводы о следующем: как можно использовать фрагмент программы, является ли программа вредоносным программным обеспечением, как и для чего нужно знать основы работы с системным реестром? Поработайте в парах, заполните таблицу, обменяйтесь мнениями в группах, задайте друг другу вопросы, огласите ваше мнение. Время – 15 мин.