2009-01-28 3 views
6

Ich habe über ein Werkzeug nachgedacht, um Objekte zur Laufzeit zu inspizieren, hauptsächlich für Reverse-Engineering, und ich frage mich, ob so etwas existiert.Gibt es ein Tool, mit dem .NET-Objekte in einem laufenden Prozess überprüft werden können?

Die Art, wie ich darüber nachdachte, war, dass Sie zwei Ansichten hatten, ein Diagramm von Objekten und eine Klassenliste. Aus der Klassenliste können Sie eine Klasse auswählen und deren Instanzen entweder in einer Liste oder im Diagramm sehen. In dem Graphen können Sie die Verbindungen zwischen Objekten sehen, die entsprechend mit Anmerkungen versehen sind, z. Schlüssel in einer Hash-Tabelle könnten Beschriftungen an den Kanten zwischen dem Hash-Tabellenobjekt und dem Wert sein.

Sie können auch eine Liste von Objekteigenschaften aufrufen und die darin enthaltenen Werte anzeigen/bearbeiten. Die in .NET bereitgestellten Metadaten würden dies ziemlich trivial machen.

Kennt jemand ein Werkzeug, das dies tun kann? Es scheint ein immens nützliches Tool zum Debuggen und Reverse-Engineering zu sein.

Bearbeiten: Auch ein anderes nützliches Feature wäre die Möglichkeit, Namenszuordnungen beim Betrachten einer Binärdatei festzulegen. Das heißt, wenn Sie eine verschleierte Binärdatei haben, können Sie die verschleierten Namen für Platzhalter oder echte Namen austauschen. Dies würde die eigentliche Binärdatei nicht beeinflussen, nur die Ansicht im Inspector.

Teil 2 bearbeiten: Das Tool sollte unter Vista und XP laufen können und Unterstützung für x64 haben.

Antwort

1

Wenn Sie einen laufenden Prozess haben, dann haben Sie die Binärdatei irgendwo auf Ihrem Computer.

Sie können diese Binärdatei in Reflector laden.

Oder wenn Sie Visual Studio installiert haben, können Sie den Visual Studio-Debugger an den laufenden Prozess anhängen.

+0

Reflector keine wirkliche Unterstützung für das Debuggen hat (es hat einen Debugger-Plugin, aber es ist nutzlos) und der VS-Debugger hat nur sehr begrenzte Unterstützung für alle in den Prozess der Objekte Graben durch. Trotzdem danke. –

1

Es gibt ein Programm namens Hawkeye, mit dem Sie Benutzeroberflächenelemente in einer .NET-Anwendung anzeigen können.

Ich habe auch ein Programm namens .NET Component Inspector Ich bin mir nicht sicher, wie gut es ist (versuche es jetzt).

+0

Das scheint Ihnen nur zu erlauben, GUI-Elemente zu betrachten - täusche ich mich? –

+0

Ja, tut mir leid, dass :( –

+0

Danke trotzdem, es ist gut zu sehen, Menschen tun Dinge zumindest in der Nähe - gibt mir Hoffnung, dass das ganze Werkzeug existiert :) –

1

Sie könnten immer eine Minidump aus der Anwendung bekommen und überprüfen Sie es mit WinDBG und SOS.

+0

Ich habe damit herumgespielt, aber ich würde wirklich gerne ein GUI-Tool wie ich beschrieben haben. Danke für die Eingabe :) –

Verwandte Themen