コードメータの自動暗号化ツールAxProtectorには、.NETアセンブリを強力に暗号化する機能が搭載されています。オリジナルコードを暗号化するだけでなく、ソースコードを変更しなくても、AxProtectorで暗号化するだけで、メモリー上の「オンデマンド復号」が実現します。また、リフレクタ (Reflector)などのリバースエンジニアリングツールによりコードを逆アセンブルされても、ソースコードは復号されません。 暗号化方法は、Windows32/64bitアプリケーションの場合と同じです。AxProtectorを起動し、「.NET assembly」を選択して暗号化処理を行います。
AxProtectorを起動し、「.NETアセンブリ」を選択して暗号化処理を進めます。
1.AxProtectorにより、オリジナルアセンブリを逆アセンブルし、クラス(class)、メソッド(method)、フィールド(field)を抽出します。
2.同じ名前のクラス(class)とフィールド(field)を作成します。
3.同じ名前のメソッド(method)を作成します。 ただし、メソッド(method)の中身(コード)は含まず、AxEngineを呼び出すようにします
4.実際のメソッド(method)のコード部分は暗号化されてデータセクション(Data section)に保存され、メソッド(method)を復号するためのAxProtector classが追加されます。
5.実行時に、新しく作成されたメソッド(method)は、AxProtector classを呼び出します。 AxProtector classは、暗号化されているコード部分をメモリー上で復号して実行します。 これにより、メモリー上の「オンデマンド復号」を実現します。
.NETアセンブリは、プログラム構造の性質上、Reflector(リフレクタ)などのリバースエンジニアリングツールによって、簡単にソースコードに変換することができます。これにより、オリジナルソースコードが流出されてしまいます。コードメータのAxProtectorは、ソースコードを強力に暗号化するため、リバースエンジニアリングを行ってもソースコードは暗号化されたままです。
Reflector(リフレクタ)等で逆アセンブルしてもソースは復号されない。(暗号化されたまま)