我在.net 3.5 SP1中有一个很大的程序,可以很好地进行编译。
但是,当我想使用Obfuscator Pro(现在进行评估)对其进行模糊处理时,Obfuscator停止并显示以下错误:
[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)崩溃并显示以下错误:
该应用程序已请求运行时以一种异常方式终止它。
请与应用程序的支持团队联系以获取更多信息。
有人知道错误可能是什么吗?
我的系统是Windows 7 x64,带有Visual Studio 2008(SP1)中的工具。
更新:
我联系了混淆器支持人员,并为他们做了一些测试。顺便说一句,他们在那里确实很有帮助。
我们发现仅当使用.net 2.0 framework文件夹中的x86 ILASM时,才会发生该错误。如果使用来自framework64 \ v2.0的版本,则不会发生此错误。
同样,当使用.net 4.0(Beta 2)中的(x86或x64)ILASM时,它也可以通过。
因此,这确实看起来像是x86的.net 2.0 ILASM中的错误。
最佳答案
虽然ILASM的问题尚未真正解决,但以下内容解决了该问题:
从framework64文件夹使用ILASM
x64 ILASM可以正常工作。但是我不能强迫Dotfuscator使用它。
安装.net Framework 4.0(Beta 2)
当使用来自.net framework 4.0的ILASM时,它可以正常工作。
使用'/ inpl:on'标志运行Dotfuscator
Dotfuscator支持人员告诉我使用此标志,它工作正常。
根据他们的说法,生成的EXE应该没有任何区别,所以我目前正在使用此解决方案(该标志在GUI中不可用)。