“该模块预计将包含一个程序集清单。”

时间:2014-01-16 23:29:32

标签: c# dll reverse-engineering .net-reflector reflexil

我有一个C#.NET DLL,我正在尝试修补。我为这项工作选择了带有Reflexil插件的.NET Reflector(以及用于去混淆的de4dot)。 Reflector能够非常成功地向我展示我想要看到的C#,并且我能够使用Reflexil修补CIL组件。当我试图将DLL保存为新的二进制文件时,Reflexil给了我一个Signed Assembly对话框,我选择了Remove Strong Name。

当我尝试运行加载程序集的代码时,我收到错误:

  

System.BadImageFormatException:无法加载文件或程序集“MyAssembly,Version = 1.0,Culture = neutral,PublicKeyToken = somehash”或其依赖项之一。该模块应该包含一个程序集清单。

如何解决这个问题?

此外,如果我在修补的DLL上使用peverify.exe,我会收到错误:找不到文件或标题错误。这让我相信Reflexil的修补过程有问题吗?

1 个答案:

答案 0 :(得分:1)

通常,您可以将程序集清单文件添加到项目中(右键单击项目,添加新文件并选择应用程序清单文件)。这适用于将从程序集生成的dll。添加清单文件后,右键单击项目并选择属性时,在“应用程序”选项卡上,您将看到在底部的下拉列表中选择了清单文件。

也许dll也是从具有应用程序清单文件的项目(类库)创建的。我认为你无论如何都不能改变那个dll来添加一个清单文件。