2016-06-25 15 views
0

Wie könnte ich erfassen/notieren alle lokalen Funktionen Aufruf für eine EXE-Datei? Die API-Monitor-Tools erfassen die Windows-API-Funktionen Anruf, ich möchte den lokalen Funktionsaufruf erfassen zum Beispiel Benutzer klicken Sie auf eine bestimmte Schaltfläche.Capture Portable Executable (PE) EXE internen Funktionsaufruf

Grüße,

+0

Das Tool, das Sie suchen, wird als "Debugger" bezeichnet. –

+0

Sicher heißt das Debugger. Ich möchte dasselbe wie API-Monitor-Tools machen. Ein Dienstprogramm zum Erfassen der Funktion ruft bestimmte Ereignisse auf. – JemoGlemo

+0

@JemoGlemo also im Grunde ... ein Debugger. –

Antwort

1

API-Monitore arbeiten, weil es einfach zu sagen, ist, wenn die Steuerung CPU aus dem Prozess und in das Betriebssystem übergibt. Sie möchten überwachen, wenn sich der CPU-Befehlszeiger innerhalb desselben Prozessspeicherbereichs von Ort zu Ort bewegt. Das Tool, das dies tut, wird als Debugger bezeichnet. Beispiele für Debugger unter Windows sind Visual Studio, WinDbg oder NTSD.

Um Schwierigkeitsgrad zu erhöhen, können Sie:

1) Fügen Sie die Telemetrie Sie auf den Quellcode wollen und die ausführbare Datei neu kompilieren.

2) Wenn Sie Symbole erstellen (in der Regel eine PDB-Datei), einen Debugger verbinden und Haltepunkte setzen/Trace auf die Funktionen, die Sie interessieren.

3) Wenn Sie keine Quelle haben, dann ist die Aufgabe effektiv das gleiche wie # 2, aber viel schwieriger. Sie schließen immer noch einen Debugger an, aber jetzt müssen Sie das Programm selbst verfolgen, um herauszufinden, welche Speicheradressen den gewünschten Funktionen entsprechen, und dann Haltepunkte setzen.

+0

Ja, ich habe den Quellcode nicht. Die Haltepunkte müssen nicht gesetzt werden, die Aufgabe besteht darin, jeden ausgeführten lokalen Funktionsaufruf in der EXE-Datei aufzuzeichnen und in der Protokolldatei zu speichern. Das Dienstprogramm muss während des Betriebs an die EXE angeschlossen sein. Ich denke, dass ich ein kundenspezifisches Dienstprogramm entwickeln muss, um zu tun, was ich will. – JemoGlemo