Frage

Ich studiere il.

Ich mag .NET -Reflektor -Tool von Redgate (Lutz anfangs). Ich habe bereits Bücher von Serge Lidin und ECMA-335. Es sieht so aus, als ob diese Dinge alles sind, was wir mit IL arbeiten müssen (außer natürlich Ilasm und Illasmas).

Meine Aufgabe ist es, die Binärdatei der Assembly zu analysieren und IL -Code zu erhalten. Es ist offensichtlich, dass die Baugruppe eine binäre Datei ist; Daher ist es nur eine Kette von Bytes. Um das zu tun, was ich möchte, muss ich die Baugruppenstruktur kennen: Welche Header existieren, wie viel Bytes sie besetzen, Offsets in Bytes, um es Byte nach Byte usw. zu lesen, etc.

Lidins Buch beschreibt es, aber es ist nicht 100% klar für mich. Hat jemand versucht, DLL als Byte -Stream zu analysieren? Metadaten und IL -Code als Byte -Streams zu haben, dann den IL -Byte -Stream analysieren, um IL -Quelle zu erhalten? Ich möchte hier keine Reflexion verwenden. Ich möchte nur mit der Binärdatei arbeiten.

Tut das Mono Cecil dasselbe? Selbst wenn ja, würde ich wissen, wie es geht.

Und ja, ich versuche, ein anderes Rad wie das von .NET Reflektor zu erstellen, und ich möchte wissen, wie es gemacht wird. Wie jemand sagte: "Lutz sollte nicht unbedingt der einzige Mann auf der Welt sein, der weiß, wie man es macht."

Übrigens, wie funktioniert Isdasm? Wurde es in .NET codiert?

Irgendwelche Gedanken, Ressourcen, Beispiele?

Vielen Dank.

War es hilfreich?

Lösung

Mono.cecil macht genau das, was Sie tun möchten. Vielleicht möchten Sie sich den Quellcode ansehen.

In der Tat gibt es ein auf Going Going Project namens Cecil.Decompiler, aus JB Evain, basierend auf Cecil, einem Open -Source -Dekompiler.

Andere Tipps

Du könntest benutzen ildasm direkt:

ildasm.exe MyFile.dll /output:MyFile.il

Es kann in Ihrem Programm aus automatisiert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top