“不是.NET模块。”这是什么意思?

时间:2011-06-27 19:34:41

标签: reflector

我正在使用beta 7.2反射器,当我试图反映一些exe文件时,我看到了这条消息。这是什么意思?

感谢

5 个答案:

答案 0 :(得分:6)

这意味着EXE不是.NET assembly.它是标准的Windows可执行文件或COM可执行文件。

例如,用VB6编写的程序不是.NET程序集;它们不包含您期望.NET程序集包含的metadata

答案 1 :(得分:3)

如果它真的是一个.NET程序集(作为你后来的一些评论,基于Spy ++的信息,建议),那么它可能会被混淆。一些混淆器可以修改程序集元数据流,使它们看起来对ildasm和Reflector都无效,而CLR仍然可以加载它们,因为它没有做那么多的验证。

HTH,

巴特

答案 2 :(得分:0)

.Net Reflector只能反编译.NET程序集。我的猜测是可执行文件不是.NET可执行文件,因此Reflector无法加载它。

答案 3 :(得分:0)

我认为它正在寻找一个CLI标头,表明.exe实际上是一个.NET程序集,它看起来不像你有资格的那个。

答案 4 :(得分:0)

您正在尝试反映COM或本机可执行文件/动态链接库,而不是.NET程序集。反射器不能那样做。还有其他用于检查COM资源的工具,尽管它们不像Reflector在.NET程序集上那样完全解组。