代码之家  ›  专栏  ›  技术社区  ›  Marc

ILASM的问题

  •  3
  • Marc  · 技术社区  · 16 年前

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

    [生成输出]此应用程序已请求运行时以异常方式终止它。
    [生成输出]有关详细信息,请与应用程序的支持团队联系。
    [生成输出]ILASM返回3
    [生成输出]生成错误。

    由于错误来自ILASM,我认为让我们做模糊器所做的(不进行模糊)并执行以下命令:

    =>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框架文件夹中的x86 ILASM时才会发生错误。使用Framework64\v2.0中的一个时…这样就不会发生错误。
    同样,当从.NET 4.0(Beta 2)中使用(x86或x64)ILASM时,它通过得很好。
    所以这看起来像是.NET 2.0的iLASM中的一个用于x86的bug。

    1 回复  |  直到 16 年前
        1
  •  1
  •   Marc    16 年前

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

    • 使用framework64文件夹中的ilasm
      X64 iLASM工作正常。但是我不能强迫dotfuscator使用它。
    • 安装.NET Framework 4.0(测试版2)
      当使用.NET Framework 4.0中的ILASM时,它工作得很好。
    • 使用“/inpl:on”标志运行dotfuscator
      Dotfuscator支持人员告诉我使用这个标志,它工作得很好。
      根据它们,生成的exe不应该有任何区别,所以我目前正在使用这个解决方案(该标志在GUI中不可用)。