檢測softice(delphi版),兼回答以前一位朋友函式createfile使用的提問 (1千字)

看雪資料發表於2001-10-14

檢查是否載入了Softice

This tip show, how to check if the debugging program Softice is loaded.

Dieser Tip zeigt, wie berprft, wird ob das debugging Programm Softice geladen ist.

//SoftIce in W9x OS
function IsSoftIce95Loaded: boolean;
var
  hFile: Thandle;
begin
result := false;
hFile := CreateFileA('\.SICE', GENERIC_READ or GENERIC_WRITE,
  FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING,
  FILE_ATTRIBUTE_NORMAL, 0);
if( hFile <> INVALID_HANDLE_VALUE ) then begin
  CloseHandle(hFile);
  result := TRUE;
end;
end;

// SoftIce in NT/2000 OS
function IsSoftIceNTLoaded: boolean;
var
  hFile: Thandle;
begin
result := false;
hFile := CreateFileA('\.NTICE', GENERIC_READ or GENERIC_WRITE,
  FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING,
  FILE_ATTRIBUTE_NORMAL, 0);
if( hFile <> INVALID_HANDLE_VALUE ) then begin
  CloseHandle(hFile);
  result := TRUE;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if IsSoftIce95Loaded or IsSoftIceNTLoaded then
  begin
    //Do something if Softice is loaded
  end;
end;

相關文章