0

dll(.NET4)をmsbuildでビルドし、SmartAssembly5.5で難読化しています。

その後、Mac(10.8)のMonoDevelop(最新)のシンプルなコンソールアプリケーションを参照して設定しました。

正常に構築されましたが、その単純なアプリを実行すると、次のメッセージが表示されます:不明なヒープタイプ:SmartAssembly

SAのサポートを依頼しましたが、まだ運がありません(saprojのアイテムblabla(Monoをサポート)がチェックされています。

スクリーンショットを添付する方法がわかりませんが、アプリケーションを実行すると、コンソールにそのメッセージが2回表示されます。これは、プログラムがコードの最初の行のブレークポイントで停止する前に表示されます。

では、この問題を解決するためにSmartAssemblyまたはMonoDevelopで何を変更すればよいかを誰かが知っているのではないでしょうか。ありがとう

4

1 に答える 1

1

多くの .NET 難読化ツールは、技術的に正しいアセンブリではなく (.NET アセンブリ仕様の範囲外)、Microsoft の実装に固有のバグを悪用して Microsoft .NET ランタイムで実行されるようにアセンブリを変更します。アセンブリリーダーツール/ライブラリがアセンブリをロードするのを難しくするために、これを行っていると思われます。残念ながら、これにより、Mono ランタイムがアセンブリを読み込めなくなります。一般に、Monoには、この種の無効な難読化されたコードのサポートを「修正」しないというポリシーがあるため、SmartAssembly サポートに問い合わせる必要があります。

SmartAssembly の「厳密に有効な」オプションを使用してコンパイルしていて、それが機能しないことが確実な場合は、おそらく「基本」オプションを試すことができます。

于 2012-11-30T22:49:09.317 に答える