Monotouch:私のアプリケーションを保護する方法
-
12-12-2019 - |
質問
Dotfuscatorを使用して、アプリケーションをリバースエンジニアリングから保護するために、WindowsアプリケーションでDLLファイルを暗号化しましたが、どのようにOSX / Monotouchで実行できますか?
IPAからDLLを抽出してから、WindowsでDLLを混同し、暗号化されたDLLをIPAに再パックしてから、AppStoreに公開しますか?
は単純な解決策はありますか?
解決
最適IOSでは、 JIT (ちょうど整っていた)コンパイルを許可しないことを忘れないでください。これは、すべてが AOT を鳴らす必要があることを意味します。
これは、あなたのアセンブリからのすべてのILコードがネイティブアーム(V6、V7、および/またはThumb)の命令に変換されている の命令に変換されていることがのもう。
これは、Release|iPhone
を構築しているとき、ILコードはあなたのアセンブリから削除されます。それは剥がれているのでそれはあなたが公表するアプリケーションでは存在しない(断続する)。
注
-
アセンブリは、が依然として必要なので、アプリケーションの内側にあります(例えば、
System.Reflection
が必要です)。したがって、記号の名前とリソースファイルは、一般的に行うobfuscatorsのようにマンゲン化/暗号化されません。 -
ARMアセンブリを分解することができます(AOTコンパイルの前にアセンブリを難読化したとしても、それが当てはまります)が、ILよりも を理解するのが難しい(そしてC#に戻る)ことが難しい。
-
IPAからのアセンブリを抽出し、それらを処理することは、少なくともアプリケーションの署名を破ることになるでしょう(あなたはそれを再署名することができます)。それはまた 他の多くのことを破る可能性があります(コードは変更されたかもしれない名前/構造を指すので)。これが機能するとは思わない(しかし、それはあなたの難読化者から使用するオプションによって異なります)。