Wie kann ich einen Debugger oder ein anderes Tool erkennen, das meine Software analysieren könnte?

8

Eine sehr einfache Situation. Ich arbeite an einer Anwendung in Delphi 2007, die oft als "Release" kompiliert wird, aber immer noch unter einem Debugger läuft. Gelegentlich wird es auch unter SilkTest für Regressionstests ausgeführt. Während das ziemlich lustig ist, möchte ich etwas Besonderes machen ...

Ich möchte herausfinden, ob meine Anwendung in einem Debugger / Regressionstester läuft, und wenn das der Fall ist, möchte ich, dass die Anwendung weiß, welches Tool verwendet wird! (Wenn also die Anwendung abstürzt, könnte ich diese Informationen im Fehlerbericht melden.)

Irgendwelche Vorschläge, Lösungen?

    
Wim ten Brink 18.09.2009, 08:37
quelle

4 Antworten

10

Sie können den übergeordneten Prozess überprüfen, der Ihre Anwendung gestartet hat. Mit CreateToolhelp32Snapshot / Process32First / Process32Next erhalten Sie die übergeordnete PID ( PROCESSENTRY32.th32ParentProcessID oder TProcessEntry32.th32ParentProcessID ) für Ihre Anwendungs-PID. Rufen Sie dann den Dateinamen für die übergeordnete PID ab, um sie mit den Anwendungen zu vergleichen, nach denen Sie suchen möchten, z. B. SilkTest.

Überprüfen Sie diesen Artikel für die Code-Verwendung.

Zusätzlich zu IsDebuggerPresent und CheckRemoteDebuggerPresent können Sie auch PEB.BeingDebugged abfragen (PEB ist Process Environment Block, um PEB zu erhalten, müssen Sie TEB abfragen, was der Thread Environment Block ist).

    
pani 18.09.2009, 10:11
quelle
3

Sie suchen wahrscheinlich nach der Funktion IsDebuggerPresent .

    
Greg Hewgill 18.09.2009 08:45
quelle
1

Um SilkTest zu erkennen, könnten Sie versuchen, eine DLL anzuhängen, die nur von SilkTest verwendet wird, um deren Vorhandensein zu erkennen. Wenn der Open Agent beispielsweise einem Prozess zugeordnet ist, ist Win32HookDll_x86.dll oder Win32HookDll_amd64.dll vorhanden (die Namen können leicht mit einem Tool wie Prozess-Explorer .

    
tehlexx 20.09.2011 08:19
quelle
0

Sie können das auch tun

%Vor%     
gabr 18.09.2009 09:38
quelle