2014-10-10 12 views
6

Kann in .net festgestellt werden, ob ein anderes Programm Ihren Prozess überwacht?Wie erkennt man ein externes Programm, das Ihren Prozess überwacht?

Was ich meine hier ist, ich habe eine exe läuft und wenn jemand procmon.exe oder eine andere App, die versucht, Informationen über meine exe zu lesen, startet, möchte ich meine exe dies protokollieren.

+2

Dies könnte für security.stackexchange.com besser geeignet sein, je nachdem, warum Sie wissen möchten, ob jemand Sie beobachtet (Ihr Programm). – Luminous

+4

Wenn es einen Weg dazu gäbe, würde der Angreifer einfach Ihr Programm patchen, so dass die API immer "nein" zurückgibt. –

+0

Ich habe gerade eine App heruntergeladen und ich wollte wissen, wo die Dateien geschrieben wurden (beim Streaming). Was passiert ist, war meine Testlizenz verschwunden/abgelaufen. Ich fand das cool und wollte wissen, wie es aus technischer Sicht gemacht wurde. –

Antwort

3

Dies ist ein umfangreiches und komplexes Thema, und ich kenne nur seine Existenz, kein Experte. Also alles, was ich anbieten kann, ist ein Suchbegriff:

  • anti-Debugging

Es umfasst Erkennung von Monitoring-Tool, Gegenmaßnahmen Inspektion zu verhindern, und Verschleierung zu Informationen über die Überwachung ziemlich nutzlos gewonnen werden.

Seien Sie sich bewusst, dass es ein Wettrüsten zwischen den Reversern gibt, die alle Codes auf ihrem System debuggen wollen, und die DRM-Designer , die ihre Geheimnisse vor neugierigen Köpfen schützen wollen. Wenn Sie nicht bereit sind, Ihr Leben dem Experten zu widmen, werden Sie wahrscheinlich von jemandem, der es ist, Lösungen kaufen. Oder einfach nur entscheiden, dass es sich nicht lohnt.

Auch wenn Sie Content-Eigentümer glauben, das moralische Recht zu verbieten Reverse Engineering haben, beachten Sie bitte, dass niemand Vorteile von Schutz Dunkelheit ganz so viel wie Malware-Autoren.

Es ist auch ziemlich anders, einen neutralen Ausdruck beizubehalten. Aber ich habe es versucht.

1

Der Überwachungsprozess kann entweder Informationen über Ihren Prozess direkt vom Betriebssystem (z. B. TaskManager, Perfmon, etc.) nehmen. In diesem Fall weiß Ihr Prozess nichts darüber.

In einem anderen Fall könnte die Überwachung Ihren Prozess anschließen und debuggen. Wenn der Debugger an Ihren Prozess angehängt wird, stoppt der Debugger und der Debugger kann Informationen über seine Ausführung erhalten. So kann Ihr Prozess nicht "den Debugger auf seine eigene lösen" ohne einige zusätzliche Sicherheitsmaßnahmen.

+3

Eines der einfachsten Dinge, die getan werden können, ist, einen gutartigen Debugger zu installieren, der jeden anderen invasiven Debugger daran hindern wird, ihn anzuhängen. Aber es gibt immer nicht-invasives (passives) Debugging. –

Verwandte Themen