问题与ilasm

时间:2010-01-22 08:56:43

标签: c# .net compilation dotfuscator ilasm

我在.net 3.5 SP1中有一个非常大的程序,编译得很好。 但是,当我想用​​Obfuscator Pro对其进行模糊处理时(现在进行评估),Obfuscator会因以下错误而停止:

  

[Build Output]此应用程序已请求Runtime以不寻常的方式终止它   [构建输出]有关更多信息,请联系应用程序的支持团队   [Build Output] 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.il

第一个命令(ILDASM)传递正常,我得到一个450MB的IL文件 但是,第二个命令(ILASM)崩溃并出现以下错误:

  

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

有人知道错误是什么吗? 我的系统是带有Visual Studio 2008(SP1)工具的Windows 7 x64。

更新:
我联系了Obfuscator支持并为他们做了一些测试。顺便说一句,他们在那里真的很有帮助 我们发现只有在使用.net 2.0框架文件夹中的x86 ILASM时才会发生错误。当使用framework64 \ v2.0中的那个...时,错误不会发生 当使用.net 4.0(Beta 2)中的任何(x86或x64)ILASM时,它也会正常通过 所以这看起来像是x86的.net 2.0的ILASM中的一个错误。

1 个答案:

答案 0 :(得分:1)

虽然ILASM的问题并未真正解决,但以下问题解决了这个问题:

  • 使用framework64文件夹中的ILASM
    x64 ILASM工作正常。但是我不能强迫Dotfuscator使用它。
  • 安装.net framework 4.0(Beta 2)
    当使用来自.net framework 4.0的ILASM时,它可以正常工作。
  • 使用'/ inpl:on'标志运行Dotfuscator Dotfuscator支持告诉我使用这个标志,它工作正常 据他们说,生成的EXE应该没有任何区别,所以我当前正在使用这个解决方案(该标志在GUI中不可用)。