3

mono の AOT (Ahead of Time Compilation) 機能を使用して、独自の .NET DLL (または EXE) のすべてまたは一部をネイティブに「プリコンパイル」して、リバース エンジニアリングを困難にすることはできますか? 私は Windows (7 / x64 ですが、x86 XP マシンも持っています) と .NET 3.5 (VS 2008) を使用していますが、この目的で mono/AOT を使用できるかどうか、または使用されているかどうか知りたいですか? (この時点では、x86 に関連付けても問題ありません。)

これを試して運がなかったこの質問も参照してください。

4

3 に答える 3

3

アセンブリ内の IL コードは、コードがプリコンパイルされると削除できます (これは、たとえばアプリのダウンロード サイズを縮小するためにモノタッチで行うことです)。いくつかの制限がありますが、機能します。ただし、難読化でコスチュームを台無しにするためにそのような長さまで行く必要があるかどうかは別の問題です.

于 2010-04-07T08:04:09.340 に答える
1

短い答え、いいえ。

アセンブリをAOTすると、共有ライブラリのみが生成されるため、次にそのアセンブリを使用するときに、Monoは使用するメソッドをJITコンパイルする必要はありませんが、代わりに.soからそれらをロードします。アセンブリ内のメタデータは引き続き必要であるため、アセンブリはそこにある必要があります。

于 2010-04-06T18:02:26.323 に答える
1

私の知る限り、モノの AOT はメタデータを削除しません。つまり、ハッカーはコード内のロジックを理解しようとするための多くの情報を持っています。また、すべてのプロセッサとプラットフォームで利用できるわけではありません (特に、Windows では利用できないと思います)。ほとんどのメタデータを削除しながら、それを行ういくつかの商用の難読化ツールを試す方が簡単です。

于 2010-04-06T18:04:17.937 に答える