Hallo zusammen,
für eine Anwendung (VB6) gehe ich davon ausgehe, dass sie über kurz oder lang manipuliert wird. Da der Kunde Programmlaufzeit kauft, kann auch erheblicher finanzieller Schaden entstehen.
Muss sagen, dass ich nicht so der Spezialist für das Anti-Debugging bin und habe mir folgendes überlegt.
In der Startsequenz werden an einigen Stellen die Funktionen
IsDebuggerPresent
NtQueryInformationProcess
aufgerufen.
Wird ein Debugger erkannt, erfolgen kleinere Abwehrmassnahmen und das Programm wird beendet. Der Nutzer wird mit seinem Debugger all diese Stellen im Programm bearbeiten und die veränderte manipulierte EXE abspeichern.
Der anschliessende Neustart bringt für den Nutzer dann erstmal nichts ungewöhnliches. Die Software ist "normal" nutzbar. Wenn er denn glaubt, er wäre mit seiner Manipulation schon durch, greift irgendwann/irgendwo eine zweite Massnahme, die an mehreren unverfänglichen Programmstellen integriert ist.
Es wird eine CRC-Prüfsumme der App.Exe gebildet. Der Vergleichs- oder Sollwert kommt von einem externen Server. Ergibt sich eine Abweichung, wurde die Anwendung manipuliert. Ist dann die Falle zugeschnappt, kann er nicht mehr reagieren und er wird schlimmstenfalls sein Windows neu installieren müssen.
Was haltet ihr davon? Ist das ein gangbarer Weg ?
Vielen Dank.
Gruss
für eine Anwendung (VB6) gehe ich davon ausgehe, dass sie über kurz oder lang manipuliert wird. Da der Kunde Programmlaufzeit kauft, kann auch erheblicher finanzieller Schaden entstehen.
Muss sagen, dass ich nicht so der Spezialist für das Anti-Debugging bin und habe mir folgendes überlegt.
In der Startsequenz werden an einigen Stellen die Funktionen
IsDebuggerPresent
NtQueryInformationProcess
aufgerufen.
Wird ein Debugger erkannt, erfolgen kleinere Abwehrmassnahmen und das Programm wird beendet. Der Nutzer wird mit seinem Debugger all diese Stellen im Programm bearbeiten und die veränderte manipulierte EXE abspeichern.
Der anschliessende Neustart bringt für den Nutzer dann erstmal nichts ungewöhnliches. Die Software ist "normal" nutzbar. Wenn er denn glaubt, er wäre mit seiner Manipulation schon durch, greift irgendwann/irgendwo eine zweite Massnahme, die an mehreren unverfänglichen Programmstellen integriert ist.
Es wird eine CRC-Prüfsumme der App.Exe gebildet. Der Vergleichs- oder Sollwert kommt von einem externen Server. Ergibt sich eine Abweichung, wurde die Anwendung manipuliert. Ist dann die Falle zugeschnappt, kann er nicht mehr reagieren und er wird schlimmstenfalls sein Windows neu installieren müssen.
Was haltet ihr davon? Ist das ein gangbarer Weg ?
Vielen Dank.
Gruss