Come per rilevare un debugger

May 17

Un problema comune per gli sviluppatori di applicazioni commerciali sta avendo il codice di registrazione incrinato di un progetto software, che consente ad altri di utilizzare il software senza acquistarlo. Il metodo standard che hacker di software usano è un debugger software al fine di ottenere l'accesso al vostro codice di programmazione e la chiave di registrazione software risultante. L'interfaccia di programmazione di Windows può essere utilizzata per determinare se un debugger è presente nel computer degli utenti finali, e può essere usato per prevenire la chiave di registrazione software vengano rubati.

istruzione

1 Aprire il file fonte primaria per l'applicazione software nell'ambiente di sviluppo di programmazione.

2 Digitare il seguente codice per avviare la funzione di rilevamento debugger nel programma:
Funzione MyDebuggerPresent: booleana
ANDARE
Digitare
TDebugProc = funzione: booleana
ANDARE

stdcall

ANDARE
var
Kernel32: HMODULE
ANDARE
DebugProc: TDebugProc;

3 Aggiungere il seguente codice alla funzione di rilevamento debugger. Le chiamate di funzione utilizzati sono parte dell'interfaccia di base di programmazione di Windows e non richiedono librerie software aggiuntivi da utilizzare:
inizio
{
mYDebuggerPresent
}
Risultato: = FALSE
ANDARE
Kernel32: = GetModuleHandle ( 'Kernel32')
ANDARE
se Kernel32 <> 0 allora
inizio

@DebugProc := GetProcAddress(Kernel32, 'IsDebuggerPresent')

ANDARE

if Assigned(DebugProc) then
Result := DebugProc

fine; {Kernel32 <> 0
}
fine;
{
myDebuggerPresent
}

4 Ricompilare il software utilizzando l'ambiente di sviluppo. Il vostro programma sarà ora di rilevare se un debugger software è presente sul computer di un utente finale.