Mono.Cecil将.exe转换为dll?

时间:2011-09-08 21:50:19

标签: .net mono.cecil

有没有办法使用Mono.Cecil将exe转换为dll,(删除图标和其他不需要的数据,删除EntryPoint)

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

似乎没有任何影响..

1 个答案:

答案 0 :(得分:5)

要将托管.exe转换为.dll,您可以使用:

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

Cecil 0.9.5尚未实现的一件事是,您无法以编程方式删除Win32图标。这是错误#3

有趣的事实:.net框架的某些.dll确实有一个入口点。