Pregunta

Soy muy consciente de Java herramientas para manipular, generar, descompilar JVM bytecode (ASM, cglib, jad, etc).¿Qué herramientas similares existen para el CLR de código de bytes?Hacen las personas de código de bytes de manipulación para el CLR?

¿Fue útil?

Solución

Bytecode es un formato binario..NET asambleas de trabajo muy diferentes en cuanto a la forma de almacenar las instrucciones de ejecución.

En lugar de compilar abajo a un bytecode que-como la estructura .NET languages se compilan a un Lenguaje Intermedio (de hecho, se llama solo eso, IL).

Esta es una manera entendible que se ve parecida a una versión orientada a objetos de ensamblador.

Así que en términos de examinar o de la manipulación de la IL para cada una de las comunidades, herramientas como Reflector y ILDASM permiten convenientemente ver la IL para cualquier asamblea.

La manipulación es un poco diferente, te sugiero echar un vistazo a algunas de las herramientas AOP en el .Espacio NETO.También me gustaría sugerir que tome un vistazo a Phoenix, que es un compilador proyecto que MS tiene en las obras.Tiene algunas realmente genial post-compilar características de manipulación.

Si usted quiere saber más acerca de el .NET AOP herramientas, te sugiero abrir otra pregunta (que otra lata de gusanos).

También hay varios libros que te enseñan los entresijos de la IL.No es muy complicado idioma a aprender.

Otros consejos

Reflector siempre es bueno, pero Mono.Cecil es la mejor herramienta de la que, posiblemente, puede pedir general.Es invaluable para la manipulación de los CIL de alguna manera.

Mono.Cecil es una gran herramienta como ASM.Es un subproyecto de Mono, y totalmente open source.Incluso proporciona mejor característica que Sistema.Reflexión.

ILDASM y Reflector vienen a la mente.

NDepend permite hacer .NET asambleas de análisis estático (código de métricas, análisis de la dependencia, etc.).NDepend es muy útil para obtener una visión general de la estructura de su .NET conjuntos por medio de la dependencia de la matriz, gráficos de dependencia y treemap métricas visualizaciones.

También está integrado con Reflector:por ejemplo, se pueden detectar los tipos importantes y los métodos en su ensamblajes utilizando, respectivamente, un Tipo/Método de Clasificación de métricas (un código métrica similar a Google Page Rank), y saltar directamente desde NDepend Reflector para obtener el código desensamblado en C#, VB.NET, etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top