• 标 题:检测softice(delphi版),兼回答以前一位朋友函数createfile使用的提问 (1千字)
  • 作 者:小楼
  • 时 间:2001-10-14 21:51:53
  • 链 接:http://bbs.pediy.com

检查是否加载了Softice

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

Dieser Tip zeigt, wie 黚erpr黤t, 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;