Voici une unité avec son exemple
pour détecter le debuggeur SoftIce
Softice est un débuggeur (pour detecter les bugs d'une application.
Il permet d'executer une application (plus précisement Windows)
pas à pas.
Cela permet de savoir précisément où l'erreur existe.
Il permet aussi de voir le contenue de la mémoire et des registres à un moment d'arret.
SoftIce n'est pas à mettre entre toutes les mains.
Novice s'abstenir.
Function IsSoftIceLoaded :Boolean;
var hFile: Thandle;
begin
result := false;
// --- Pour SoftIce95 ---
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;
if result = true then exit; // Si SoftIce95 est chargé, on ne continue pas la détection
// --- Pour SoftIceNT ---
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;
|