2016-10-31 3 views
-1

Ich verwende die berüchtigte Blackbone-Bibliothek, um ein anderes Modul in einen anderen Prozess zu mappen/zu injizieren und seinen Code auszuführen.Debuggen in Speicherkomponenten mit Visual Studio

Um das injizierte Modul zu debuggen, muss ich den Debugger von windbg an den entführten Prozess anhängen, geladene Module mit dem Befehl .imgscan überprüfen und die Symbole entsprechend laden.

Ich frage mich, ob so etwas mit guten alten Visual Studio möglich ist. In VS gibt es eine Option, Registerkarte Symbole, um alle Symbole für alle geladenen Module zu laden, aber dies erreicht nicht den gleichen Effekt wie .imgscan/l tut. Also ich am Ende mit einem nicht aufgelösten Aufruf-Stack (nur Speicheradressen) und nur Disassemblierung.

+0

@HansPassant: Nicht mit injizierten Modulen ... Siehe https://social.msdn.microsoft.com/Forums/vstudio/en-US/7ea7dd27-fe9e-4118- 988d-567f1dd452ba/how-to-debug-injected-remote-thread-mit-symbole-nicht-a-dll-nur-ein-thread? Forum = windbg etc. – conio

+2

Aber die DLL ist nicht in der Liste der Module Fenster, so ist es irgendwie schwer, es richtig zu klicken. – conio

Antwort

1

Ich bezweifle, dass sich etwas geändert hat, seit du gefragt hast Setting up visual studio c++ debugger to support symbols for modules loaded from memory. Die Antwort ist immer noch:

WinDbg ist ein Low-Level-Debugger, mit dem Sie das tun können. Der Visual Studio-Debugger ist ein Debugger nicht so Low-Level und kann dies nicht tun.

Blackbone vorsätzlich und böswillig entfernt das Modul aus den PEB geladenen Module Listen (siehe BBUnlinkFromLoader), wenn es stört sich sogar in einem mehr oder weniger sinnvoll zu laden. Sie möchten ein Modul aus der Modulliste ausblenden? VS sagt: "Gut."

Wenn es Ihnen so wichtig ist, können Sie versuchen, den WinDbg-Debugger von der Visual Studio-GUI zu verwenden, aber es wird immer noch WinDbg mit all seinen Vor- und Nachteilen sein. (Erfordert die Installation der WDK, denke ich.)

Verwandte Themen