2009-01-28 10 views
6

Estaba pensando en una herramienta para inspeccionar objetos en tiempo de ejecución, principalmente para ingeniería inversa y me pregunto si existe tal cosa.¿Hay alguna herramienta que permita inspeccionar objetos .NET en un proceso en ejecución?

La forma en que lo pensaba era que tenía dos vistas, un gráfico de objetos y una lista de clases. Desde la lista de clase, puede seleccionar una clase y ver las instancias de la misma, ya sea en una lista o en el gráfico. En el gráfico, puede ver las conexiones entre objetos, anotadas apropiadamente, p. Ej. las claves en una tabla hash podrían ser etiquetas en los bordes entre el objeto de la tabla hash y el valor.

También puede obtener una lista de las propiedades del objeto y ver/manipular los valores en su interior. Los metadatos proporcionados en .NET harían esto bastante trivial.

¿Alguien sabe de una herramienta que puede hacer esto? Parece una herramienta inmensamente útil para la depuración y la ingeniería inversa.

Editar: Además, otra característica útil sería la capacidad de establecer asignaciones de nombres mientras mira un archivo binario. Es decir, si tiene un binario ofuscado, podría intercambiar los nombres ofuscados por marcadores de posición o nombres reales. Esto no afectaría el binario real, solo la vista en el inspector.

Editar parte 2: la herramienta debería poder ejecutarse en Vista y XP y ser compatible con x64.

Respuesta

1

Si tiene un proceso en ejecución, entonces tiene el binario en algún lugar de su máquina.

Puede cargar este binario en Reflector.

O si tiene instalado Visual Studio, puede conectar el Visual Studio Debugger al proceso en ejecución.

+0

reflector no tiene apoyo real para la depuración (que tiene un depurador de plugins pero es inútil) y el depurador de VS tiene un apoyo muy limitado para excavar a través de todos los objetos en el proceso. Gracias, sin embargo. –

1

Hay un programa llamado Hawkeye que le permite ver los elementos de la interfaz de usuario en una aplicación .NET.

También he encontrado un programa llamado .NET Component Inspector No estoy seguro de qué tan bueno es (intentándolo ahora).

+0

Esto solo parece permitirle ver los elementos de la GUI. ¿Estoy equivocado? –

+0

Sí, lo siento por eso :( –

+0

Gracias de todos modos, es bueno ver que la gente hace cosas al menos cerca de esto - me da esperanzas de que toda la herramienta exista :) –

1

Siempre puede obtener un minivolcado de la aplicación en cuestión e inspeccionarlo con WinDBG y SOS.

+0

He jugado con esto, pero realmente me gustaría una herramienta de GUI como la que describí. Gracias por la entrada :) –

Cuestiones relacionadas