Ich muss die IL in C# -Code konvertieren. Ich habe eine Baugruppe und lese diese Baugruppe. Ich bekomme MethodBody von MethodInfo und der methodbody hat eine Methode GetILAsByteArraY() , die ein Byte-Array zurückgibt, jetzt möchte ich diese IL in C# -Code konvertieren. Bitte helfen Sie mir bei der Lösung dieses Problems.Konvertieren von IL in C# -Code
Antwort
Das Rad nicht neu erfinden; Verwenden Sie Lutz Roeder .NET Reflector.
Es ist nicht mehr Lutz '. – Will
Ich denke, es ist offensichtlich, dass er versucht, ein anderes Rad wie das von .NET Reflector zu erstellen, und er möchte wissen, wie es gemacht wird. Lutz sollte nicht unbedingt der einzige Mann auf der Welt sein, der weiß, wie man es macht. –
@HasanKhan gegeben OP Wahl der Antwort ist er ziemlich glücklich mit Lutz, der einzige Mann :) – nawfal
Mal sehen, ob ich es zuerst geschafft habe: .NET Reflector! Dies sollte wirklich ein FAQ sein ...
Kannst du das nicht mit Reflector?
Sie können eine Assembly laden und betrachten es als VB.net/C#/IL ...
Sie sollten nur .NET Reflector verwenden, wenn Sie die Montage haben. Versuchen Sie auch die file gen addon.
Es gibt kein Werkzeug in der BCL, die dies tun; Es gibt jedoch ein großartiges Tool namens Reflector, in das Sie Ihre eigenen Add-Ins schreiben können. Sie könnten das also verwenden, um die gewünschten Daten zu erhalten.
Reflector tut dies. Vielleicht könnten Sie Reflektor gegen Reflektor verwenden und erfahren, wie das Problem gelöst wird.
Sie könnten auch sagen, warum Sie dies tun möchten - es könnte eine bessere Lösung für Ihr Gesamtproblem geben.
Reflektoren Interna wurden mit nicht druckbaren Daten verschleiert (zumindest Lutz tat das). Während ja könntest du über sich nachdenken eine bessere Frage wäre es das wirklich wert ... – JoshBerke
Ja, das habe ich vermutet. Deshalb habe ich ihn gefragt, warum er das machen will. –
Lassen Sie mich der Erste sein, der Ihnen vorschlägt, sich eine Kopie von Red Gate's Reflector zu schnappen.
Vielleicht sollten Sie Dis # versuchen, wenn Sie nicht wollen, tun Sie das Rad neu erfinden ... Es ist fast das beste Werkzeug, um den Code bei der Umwandlung von NetDASM ein Werkzeug hat, die Sie konvertieren C# IL lässt. vielleicht solltest du dir das mal ansehen.
Re-Erfinden des Rades sicherlich eine bessere Möglichkeit zu lernen! müssen Sie Ihre eigene Klasse erstellen, die iL in C# konvertiert. Dies erfordert das Wissen der Intermediate Sprache.
Ich nehme an, Sie haben bereits die Byte-Array zu IL Befehle umgewandelt, so wie wir in ildasm.exe sehen, Am Reflection.Emit.OpCodes, OpCode.OperandType, BitConvertor.ReadByte(), BitConvertor.ReadInt32 usw.
Wenn Sie es selbst machen möchten, könnten Sie vom alten Cecil.Decompiler starten und es verbessern, siehe the source code und an old post of Jb. Evain announcing the project (Link unten).
Beide Links sind kaputt. –
Das erste Problem behoben, kann nichts mehr mit dem zweiten tun, da ich nicht weiß, warum er seinen Blog offline gestellt hat, auch wenn er immer noch auf Twitter referenziert. –
Für die Suchmaschine Menschen, Reflektor ist nicht mehr kostenlos. Aber ein neuerer und besser und nicht zu erwähnen FREE Werkzeug wird von Telerik genannt JustDecompile angeboten. Ich habe es gerade heruntergeladen und es ist so toll und es ist nur Beta. Offenbar verspricht Telerik für immer frei zu sein.
Der Lutz Roeder Reflektor wurde gekauft und steht nicht mehr zum kostenlosen Download zur Verfügung.
Es gibt jetzt ein kostenloses (noch einmal) Tool namens ILSpy10. Ich habe festgestellt, dass es sehr gut ist, und es wird nicht nur C# -Code aus IL generieren, sondern auch ein .csproj
Projekt erstellen, wenn eine gesamte DLL-Assembly dekompiliert wird.
- 1. Konvertieren von C++ - Code in C# -Code
- 2. Berechnung von maxstack Wert in IL-Code
- 3. Größe der IL für Xamarin C# -Code?
- 4. InvalidProgramException (ungültiger IL-Code)?
- 5. IL-Level-Code-Debugger
- 6. Ungültiger IL-Code - F #
- 7. Konvertieren von C-Code in Java: Zeiger
- 8. Fehler Konvertieren von VB-Code in C#
- 9. Konvertieren einige C++ - Array-Code in C#
- 10. Python-Programm in C/C++ - Code konvertieren?
- 11. Erhalten Sie AST von .Net-Assembly ohne Quellcode (IL-Code)
- 12. Konvertieren von einfachem C++ - Code in C# automatisch
- 13. Konvertieren von Objective-C/C-Callback-Code in Swift
- 14. Konvertieren von Code C# nach VB - Funktionsreferenzen
- 15. Konvertieren von Win16 C-Code nach Win32
- 16. wie C# -Code konvertieren Code Ironpython
- 17. API zum Abrufen von IL aus Bytearray
- 18. C nach IEC 61131-3 IL Compiler
- 19. C# RSACryptoServiceProvider-Code in Java konvertieren
- 20. Mit dem Lutz-Reflektor zum Sehen von IL-Code
- 21. Abrufen von IL-Code aus der DLL-Binärdatei
- 22. Auslösen von IL-Code zum Laden eines Dezimalwerts
- 23. C# Dynamische Methode - IL vs Ausdruck Bäume
- 24. einen Pseudocode in C# -Code konvertieren
- 25. Wie soll ich Java-Code in C# -Code konvertieren?
- 26. Warum ist es so einfach, .NET IL Code zu dekompilieren?
- 27. Tool zum Konvertieren von Java in C# code
- 28. So konvertieren Sie diesen Code von Swift in Objective C
- 29. Konvertieren Sie eine Zeile von VB.Net Code in C#
- 30. Hilfe zum Konvertieren von XAML in C# -Code
Einstimmige Entscheidung! –
Wozu brauchst du das? Wenn Sie Ihre Situation etwas detaillierter beschreiben, können wir Ihnen vielleicht mehr als .NET Reflector vorschlagen. –
@Anton Wir wären wahrscheinlich besser dran, diesen Hacker nicht zu verstehen. –