3

我在 .net 3.5 SP1 中有一个相当大的程序,它编译得很好。但是,当我想用​​ Obfuscator Pro 混淆它(现在评估)时,Obfuscator 停止并出现以下错误:

[构建输出] 此应用程序已请求运行时以不寻常的方式终止它。
[构建输出] 请联系应用程序的支持团队以获取更多信息。
[构建输出] ilasm 返回 3
[构建输出] 构建错误。

由于错误来自 ILASM,我想让我们做 Obfuscator 所做的事情(没有混淆)并执行以下命令:

=> ildasm.exe /OUT=C:\MyApp.exe.il /TEXT /NOBAR /RAWEH /QUOTEALLNAMES /UTF8 /LINENUM /FORWARD C:\MyApp\bin\Release\MyApp.exe
=> ilasm C:\MyApp. exe文件

第一个命令 (ILDASM) 通过就好了,我得到一个 450MB 的 IL 文件。
然而,第二个命令 (ILASM) 崩溃并出现以下错误:

此应用程序已请求运行时以不寻常的方式终止它。
请联系应用程序的支持团队以获取更多信息。

有谁知道错误可能是什么?
我的系统是 Windows 7 x64,带有 Visual Studio 2008 (SP1) 中的工具。

更新:
我联系了混淆器支持并为他们做了一些测试。顺便说一句,他们那里有非常乐于助人的人。
我们发现该错误仅在使用 .net 2.0 框架文件夹中的 x86 ILASM 时发生。使用 framework64\v2.0... 中的那个时,不会发生错误。
此外,当使用 .net 4.0(Beta 2)中的(x86 或 x64)ILASM 时,它通过就好了。
所以这看起来真的像 .net 2.0 for x86 的 ILASM 中的一个错误。

4

1 回答 1

1

虽然 ILASM 的问题并没有真正解决,但以下解决了问题:

  • 使用 framework64 文件夹
    中的 ILASM x64 ILASM 工作正常。但是我不能强迫 Dotfuscator 使用它。
  • 安装 .net framework 4.0 (Beta 2)
    当使用来自 .net framework 4.0 的 ILASM 时,它工作得很好。
  • Run Dotfuscator with the '/inpl:on' flag
    Dotfuscator support told me to use this flag and it worked fine.
    According to them there shouldn't be any difference in the generated EXE so I'm using this solution currently (The flag is not available in the GUI).
于 2010-02-15T09:11:35.200 回答