delphi 对抗任务管理器关闭

来源:互联网 发布:剑三拍照软件 编辑:程序博客网 时间:2024/05/18 11:34
program Project1;uses  Windows;{$R *.res}function MakeMeCritical(Yes: Boolean): Boolean;const  SE_DEBUG_PRIVILEGE = $14;  SE_PROC_INFO = $1D;var  Enabled: PBOOL;  DllHandle: THandle;  BreakOnTermination: ULong;  HR: HRESULT;  RtlAdjustPrivilege: function(Privilege: ULONG; Enable: BOOL; CurrentThread: BOOL; var Enabled: PBOOL): DWORD; stdcall;  NtSetInformationProcess: function(ProcHandle: THandle; ProcInfoClass: ULONG; ProcInfo: Pointer;  ProcInfoLength: ULONG): HResult; stdcall;begin  Result := False;  DllHandle := LoadLibrary('ntdll.dll') ;  if DllHandle <> 0 then  begin     @RtlAdjustPrivilege := GetProcAddress(dllHandle, 'RtlAdjustPrivilege');     if (@RtlAdjustPrivilege <> nil) then     begin       if RtlAdjustPrivilege(SE_DEBUG_PRIVILEGE, True, True, Enabled) = 0 then       begin          @NtSetInformationProcess := GetProcAddress(dllHandle, 'NtSetInformationProcess');          if (@NtSetInformationProcess <> nil) then          begin            BreakOnTermination := Ord(Yes);            HR := NtSetInformationProcess(GetCurrentProcess(), SE_PROC_INFO, @BreakOnTermination, SizeOf(BreakOnTermination));            Result := HR = S_OK;          end;       end;     end;     FreeLibrary(DllHandle);  endend;begin  if MakeMeCritical(True) then  begin    //the user cannot termintate the process now    MessageBoxA(0, PAnsiChar('你TMD在任务管理器关闭我看看!'), PAnsiChar('不要关闭此窗口'), 0);    MakeMeCritical(False)  end  else    MessageBoxA(0, PAnsiChar('噢,NO!'), PAnsiChar('Test'), 0);end.

0 0