【发布时间】:2011-06-27 19:34:41
【问题描述】:
我正在使用 beta 7.2 反射器,当我试图反射一些 exe 文件时,我看到了这条消息。什么意思?
谢谢
【问题讨论】:
标签: reflector
我正在使用 beta 7.2 反射器,当我试图反射一些 exe 文件时,我看到了这条消息。什么意思?
谢谢
【问题讨论】:
标签: reflector
这意味着EXE不是.NET assembly.它是标准的Windows可执行文件或COM可执行文件。
例如,用 VB6 编写的程序不是 .NET 程序集;它们不包含您期望 .NET 程序集包含的 metadata。
【讨论】:
如果它确实是一个 .NET 程序集(正如您后来的一些 cmets,基于来自 Spy++ 的信息所建议的那样),那么它可能被混淆了。一些混淆器可以修改程序集元数据流,使它们对 ildasm 和 Reflector 都无效,而 CLR 仍然可以加载它们,因为它没有做太多的验证。
【讨论】:
.Net Reflector 只能反编译 .NET 程序集。我的猜测是可执行文件不是 .NET 可执行文件,因此 Reflector 无法加载它。
【讨论】:
我认为它正在寻找一个 CLI 标头,表明 .exe 实际上是一个 .NET 程序集,而且它看起来不像您有资格的那个。
【讨论】:
您正在尝试反映 COM 或本机可执行/动态链接库,而不是 .NET 程序集。反射器无法做到这一点。还有其他用于检查 COM 资源的工具,尽管它们不会像 Reflector 在 .NET 程序集上那样完全反汇编。
【讨论】: