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.il

最初のコマンド(ILDASM)は問題なく通過し、450MBのILファイルを取得します。
ただし、2番目のコマンド(ILASM)は、次のエラーでクラッシュします。

このアプリケーションは、ランタイムに異常な方法でそれを終了するように要求しました。
詳細については、アプリケーションのサポートチームにお問い合わせください。

誰かがエラーが何であるかについて何か考えを持っていますか?
私のシステムは、Visual Studio 2008(SP1)のツールを備えたWindows7x64です。

更新:
私は難読化のサポートに連絡し、それらのためにいくつかのテストを行いました。ちなみに彼らには本当に親切な人たちがいます。
このエラーは、.net2.0フレームワークフォルダーからx86ILASMを使用した場合にのみ発生することがわかりました。framework64 \ v2.0 ...のものを使用すると、エラーは発生しません。
また、.net 4.0(ベータ2)の(x86またはx64)ILASMを使用すると、問題なく通過します。
したがって、これは実際には.net 2.0forx86のILASMのバグのように見えます。

4

1 に答える 1

1

ILASM の問題は実際には解決されていませんが、次の方法で問題が解決しました。

  • Framework64 フォルダー
    の ILASM を使用する x64 ILASM は正常に動作します。しかし、Dotfuscator に強制的に使用させることはできませんでした。
  • .net Framework 4.0 (ベータ 2) をインストールします
    。.net Framework 4.0 の ILASM を使用すると、問題なく動作します。
  • 「/inpl:on」フラグを指定して Dotfuscator を実行する
    Dotfuscator サポートから、このフラグを使用するように言われ、正常に機能しました。
    彼らによると、生成されたEXEに違いはないはずなので、現在このソリューションを使用しています(フラグはGUIでは使用できません)。
于 2010-02-15T09:11:35.200 に答える