Welche CLR / .NET-Bytecode-Werkzeuge gibt es? [geschlossen]

7

Ich kenne Java-Werkzeuge zum Manipulieren, Erzeugen und Dekompilieren von JVM-Bytecode (ASM, cglib, jad usw.). Welche ähnlichen Werkzeuge gibt es für den CLR-Bytecode? Machen Menschen Bytecode-Manipulation für die CLR?

    
Alex Miller 23.09.2008, 20:37
quelle

5 Antworten

2

Bytecode ist ein binäres Format. .NET-Assemblys funktionieren in Bezug auf die Speicherung der Ausführungsanweisungen sehr unterschiedlich.

Anstatt sich auf eine Bytecode-ähnliche Struktur zu kompilieren, werden .NET-Sprachen in eine Intermediate Language kompiliert (eigentlich heißt das nur IL).

Dies ist eine von Menschen lesbare Sprache, die wie eine objektorientierte Version von Assembler aussieht.

Im Hinblick auf die Untersuchung oder Manipulation der IL für einzelne Baugruppen können Sie mit Werkzeugen wie Reflector und ILDASM die IL für jede Baugruppe bequem betrachten.

Manipulation ist ein bisschen anders, ich würde vorschlagen, einige der AOP-Tools im .NET-Bereich zu betrachten. Ich würde auch vorschlagen, einen Blick auf Phoenix zu werfen, welches ein Compilerprojekt ist, das MS in den Werken hat. Es hat einige wirklich coole Manipulationsfunktionen nach der Kompilierung.

Wenn Sie mehr über die .NET AOP-Tools erfahren möchten, würde ich vorschlagen, eine weitere Frage zu stellen (das ist eine ganz andere Dose Würmer).

Es gibt auch einige Bücher, die dir die Feinheiten von IL beibringen. Es ist keine sehr komplizierte Sprache zu lernen.

    
therealhoff 23.09.2008, 20:43
quelle
14

Reflektor ist immer gut, aber Mono.Cecil ist das beste Werkzeug, das Sie insgesamt benötigen können. Es ist von unschätzbarem Wert, um CIL in irgendeiner Weise zu manipulieren.

    
Cody Brocious 23.09.2008 20:39
quelle
7

Mono.Cecil ist ein großartiges Tool wie ASM. Es ist ein Teilprojekt von Mono und völlig Open Source. Es bietet sogar bessere Funktionen als System. Betrachtung.

    
Sun Liwen 18.12.2008 16:34
quelle
4

ILDASM und Reflektor in den Sinn kommen.

    
GEOCHET 23.09.2008 20:38
quelle
1

NDepend ermöglicht Ihnen die statische Analyse von .NET-Assemblys (Code-Metriken, Abhängigkeitsanalyse usw.). NDepend ist sehr nützlich, um einen Überblick über die Struktur Ihrer .NET-Assemblys zu erhalten, indem Sie Abhängigkeitsgraphen, Abhängigkeitsgraphen und Treemap-Metriken Visualisierungen .

Es ist auch in Reflector integriert: Sie können z. B. die wichtigen Typen und Methoden in Ihren Assemblys mithilfe eines Typs / Methode Rank erkennen metrisch (ein Code-Metrik ähnlich dem Google Page Rank) und direkt von NDepend nach Reflector springen, um den disassemblierten Code in C #, VB.NET usw. zu erhalten.

    
vaucouleur 06.05.2010 10:27
quelle

Tags und Links