Frage

Gibt es eine Möglichkeit, mit Mono.cecil eine Exe in eine DLL zu konvertieren (Entfernen des Symbols und anderer nicht benötigter Daten, Entfernen des Einstiegspunkts)

    AssemblyDefinition sourceAssembly = AssemblyDefinition.ReadAssembly(file);
    sourceAssembly.EntryPoint = null;
    sourceAssembly.Write(outputFile);

scheint überhaupt keinen Effekt zu haben.

War es hilfreich?

Lösung

Um eine verwaltete .exe in eine .dll umzuwandeln, können Sie verwenden:

var file = "foo.exe";
var module = ModuleDefinition.ReadModule (file);
module.Kind = ModuleKind.Dll;
module.EntryPoint = null;
module.Write (Path.ChangeExtension (file, ".dll"));

Eine Sache, die noch nicht implementiert ist, ist Cecil 0.9.5, dass Sie das Win32 -Symbol nicht programmatisch entfernen können. Das ist Fehler #3.

Lustige Tatsache: Einige .Dll des .NET -Frameworks haben einen Einstiegspunkt.

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