Können Sie einen Debugger erkennen, der mit Div by Zero an Ihren Prozess angehängt ist?

8

Können Sie feststellen, ob ein Debugger an Ihren nativen Windows-Prozess angehängt ist, indem Sie einen hochpräzisen Timer verwenden, um zu bestimmen, wie lange es dauert, eine Ganzzahl durch Null zu teilen?

Wenn kein Debugger angeschlossen ist, erhalten Sie einen schwerwiegenden Fehler, der von der Hardware verarbeitet wird und sehr schnell ist. Wenn ein Debugger angeschlossen ist, erhalten Sie stattdessen einen weichen Fehler, der bis zum Betriebssystem und schließlich zum Debugger geleitet wird. Das ist relativ langsam.

    
John Shedletsky 20.01.2012, 01:30
quelle

3 Antworten

1

Die meisten von Reverse-Engineern verwendeten Debugger enthalten Methoden, um 99% der von Debuggern verbliebenen Marken zu beeinflussen (entfernen). Die meisten dieser Debugger bieten eine Ausnahmefilterung, was bedeutet, dass die Geschwindigkeitsdifferenz nicht feststellbar ist.

ist produktiver, um zu verhindern, dass der Debugger an erster Stelle angebracht wird, aber auf lange Sicht werden Sie nie weiterkommen, es sei denn, Sie machen die erforderliche Aufwandsinvestition undurchführbar.

    
Necrolis 20.01.2012, 04:26
quelle
4

Da es absolut nichts gibt, was Sie tun können, um zu verhindern, dass eine entschlossene Person Ihren Code zurückentwickelt, ist kein cleverer Ansatz, den Sie finden, wesentlich besser als der Aufruf von IsDebuggerPresent()

    
MK. 20.01.2012 03:19
quelle
3

Nein. Ein ausreichend bestimmter Angreifer würde Ihren Prozess einfach in einer VM hosten und auf diese Weise brechen.

Außerdem müssen Sie keinen Debugger anhängen, um ein Programm anzugreifen. Wenn Sie einen Minidump verwenden, kann ein Angreifer den Speicherstatus offline überprüfen oder Prozess-Explorer können Sie offene Handles untersuchen, um festzustellen, welche Dateien angreifbar sind.

Wenn Sie eine Ausnahme verwenden würden, um zu bestimmen, ob ein naive Debugger angehängt wurde, würde ich persönlich INT_MIN/-1 verwenden, um eine Integer-Überlauf-Ausnahme auszulösen. Die meisten wissen davon nichts.

    
MSN 20.01.2012 03:25
quelle