伊斯兰问题
我在 .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.il
第一个命令 (ILDASM) 运行得很好,我得到了一个 450MB 的 IL 文件。
然而,第二个命令 (ILASM) 崩溃并出现以下错误:
此应用程序已请求运行时以异常方式终止它。
请联系应用程序的支持团队以获取更多信息。
有人知道错误可能是什么吗?
我的系统是 Windows 7 x64,带有 Visual Studio 2008 (SP1) 的工具。
更新:
我联系了 Obfuscator 支持并为他们做了一些测试。顺便说一句,他们那里有非常乐于助人的人。
我们发现仅当使用 .net 2.0 Framework 文件夹中的 x86 ILASM 时才会发生该错误。当使用framework64\v2.0中的那个时...则不会发生错误。
此外,当使用 .net 4.0(Beta 2)中的(x86 或 x64)ILASM 时,它也可以正常通过。
所以这看起来确实像是 .net 2.0 for x86 的 ILASM 中的一个错误。
I have a quite big program in .net 3.5 SP1 which is compiling just fine.
However when I want to obfuscate it with Obfuscator Pro (evaluation for now), Obfuscator stops with the following error:
[Build Output] This application has requested the Runtime to terminate it in an unusual way.
[Build Output] Please contact the application's support team for more information.
[Build Output] ilasm returned 3
[Build Output] Build Error.
Since the error comes from ILASM, I thought lets do what Obfuscator does (w/o obfuscation) and executed the following commands:
=> 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
The first command (ILDASM) passes just fine, I get a 450MB IL file.
The second command (ILASM) however crashes with the following error:
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
Does anybody have any idea what the error could be?
My system is Windows 7 x64 with the tools from Visual Studio 2008 (SP1).
UPDATE:
I contacted Obfuscator support and did some tests for them. They have really helpful people there by the way.
We've discovered that the error happens only when using the x86 ILASM from the .net 2.0 framework folder. When using the one from the framework64\v2.0... then the error doesn't happen.
Also when using either (x86 or x64) ILASM from .net 4.0 (Beta 2) it passes just fine.
So this really looks like a bug in the ILASM of .net 2.0 for x86.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
虽然 ILASM 的问题并未真正解决,但以下方法解决了该问题:
x64 ILASM 工作正常。但是我无法强迫 Dotfuscator 使用它。
当使用 .net Framework 4.0 中的 ILASM 时,它工作得很好。
Dotfuscator 支持告诉我使用这个标志,它工作得很好。
根据他们的说法,生成的 EXE 应该没有任何差异,因此我当前正在使用此解决方案(该标志在 GUI 中不可用)。
While the issue with ILASM isn't really solved, the following fixed the problem:
The x64 ILASM works fine. However I couldn't force Dotfuscator to use it.
When ILASM from .net framework 4.0 is used it works just fine.
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).