In windbg, Wie Sie einen Haltepunkt auf alle Funktionen kernel32.dll?
Ich möchte herauszufinden, die Reihenfolge der Aufrufe und Funktionen zu kernel32.dll
in einer Funktion example()
im example.DLL
.
In windbg, wie Sie einen Haltepunkt auf alle Funktionen kernel32.dll?
Versuchte ich bm kernel32!*
, scheint aber nicht zu funktionieren.
InformationsquelleAutor whunmr | 2009-12-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Würde ich nicht tun, nur wie gesagt. Es ist natürlich möglich, aber wenn man mit
bm /a kernel32!*
Sie unabsichtlich bps auch auf Daten-Symbole (im Gegensatz zu den eigentlichen Funktionen). In Ihrem Fallwt
- trace und watch-Daten (Sie können schauen Sie in den debugger.chm mit dem windbg-Paket) könnte das sein, was Sie suchen.InformationsquelleAutor deemok
Setzen von breakpoints auf einige low-level-kernel-Dienst-DLL-Aufruf kann anwendungsausnahmen.
Können Sie verwenden rohitab API monitor zu beobachten, Ihre DLL-Aufrufe, und dann setzen Sie Haltepunkte auf Ihrem
interessante Anrufe.
InformationsquelleAutor Houcheng
Kernel32 ist eine intensiv genutzte DLL - Sie werden wahrscheinlich finden, dass der Bruch auf jede Funktion ist viel zu laut. Sie brauchen auch nicht zu brechen, auf jeden kernel32 Funktion, nur die, die es exportiert.
Wenn ich du wäre, würde ich laufen "link /dump /Export kernel32.dll" schreiben Sie die Ausgaben in eine Datei, dann schreiben Sie ein einfaches Skript, das wird schnappen Sie sich den Namen der Funktion, und schreibt "bp" kernel32!" + der name der Funktion in eine neue Datei. Dann fügen Sie einfach den Inhalt der Datei in windbg-Befehl Fenster.
Wahrscheinlich gibt es eine einfache Möglichkeit, dies zu tun mit der scripting-Unterstützung im Debugger, aber Sie konnte hacken die oben beschriebene Skript zusammen, in der die Zeit weniger Zeit würde es dauern, um zu lernen, wie es zu tun via debugger scripting.
InformationsquelleAutor Michael