Prüfen, ob eine API überwacht wird (hooked?)

Meine Anwendung verwendet einige APIs wie GetProcAddress und CreateProcess , die manchmal Antivirenprogramme dazu veranlassen, sie als bösartig zu markieren, obwohl dies nicht der Fall ist.

Was ich versuche, ist zu überprüfen, ob eine bestimmte API überwacht oder süchtig ist, und wenn es dann ist, werde ich diesen Teil des Codes nicht aufrufen.

Wie überprüfe ich, ob eine bestimmte API angehängt ist?

Dies ist eine Windows-Anwendung in C geschrieben.

Vielen Dank.

0
Keine DLL-Injektion und keine Remote-Thread-Erstellung. Diese 2 APIs sind in verschiedenen Teilen der Programme, die verschiedene Dinge tun. Wissen Sie, wie Sie nach einem API-Hook suchen?
hinzugefügt der Autor Mr Aleph, Quelle
@alk Irgendwie. Wähle eins.
hinzugefügt der Autor Mr Aleph, Quelle
GetProcAddress und CreateProcess allein sollten keine Flags für AVs auslösen. Machst du eine Remote-DLL-Injektion mit CreateRemoteThread ? Wenn dies der Fall ist, kann die Signatur Ihrer Funktion mit der einer Malware übereinstimmen.
hinzugefügt der Autor JosephH, Quelle
"... überprüfen, ob eine bestimmte API ... ist", über welche API (s) sprichst du?
hinzugefügt der Autor alk, Quelle
Und wie würden Sie überprüfen, ob Ihr API-Monitor-Detektor nicht angeschlossen ist?
hinzugefügt der Autor Raymond Chen, Quelle
Es gibt keinen zuverlässigen Weg, um zu überprüfen, ob eine API gehakt wurde, da die Person, die die API angeschlossen hat, möglicherweise auch Ihren API-Detektor angeschlossen hat.
hinzugefügt der Autor Raymond Chen, Quelle

1 Antworten

Auf win32 gibt es keine offiziellen Methoden, Hooks zu entdecken und/oder zu platzieren (neben dem SetWindowsHookEx() ( http://msdn.microsoft.com/de-de/library/windows/desktop/ms644990 ) et al Funktionen, die nur einen sehr kleinen Funktionsumfang abdecken) .

Das Erkennen eines Hakens hängt davon ab, wie der Haken angewendet wurde.

Es gibt zwei beliebte Methoden, um einen Haken zu platzieren:

  1. Importieren/Exportieren von Tabellen-Patches
  2. Code überschreiben

Für Details (Pro/Contra) zu den verschiedenen Methoden, Hooks zu platzieren, lesen Sie bitte hier http: //help.madshi .net/ApiHookingMethods.htm .

Jede Methode des Hookens erfordert einen anderen Ansatz, um sie zu erkennen.

Für Methoden zum Erkennen von Haken, die wie oben erwähnt platziert wurden, schauen Sie bitte unter "ApiHookCheck Algorithm" hier http://www.security.org.sg/code/apihookcheck.html . Auf dieser Seite sind Beispielquellen verfügbar, die ich nicht testen konnte.

1
hinzugefügt
Das ist die Information, die ich brauchte. Vielen Dank!
hinzugefügt der Autor Mr Aleph, Quelle
Die Verbindung zum ApiHookCheck-Algorithmus funktioniert nicht mehr. Könnte jemand bitte einen guten Link dazu geben?
hinzugefügt der Autor Benny, Quelle
@alk danke, ich habe diese Frage auch gefunden. Wenn es ähnlich wie der APIHookChecking-Algorithmus in Ihrer Antwort ist?
hinzugefügt der Autor Benny, Quelle
@Benny: Dies könnte ein Anfangspunkt sein: security.stackexchange.com/q/17904/36769
hinzugefügt der Autor alk, Quelle