AxProtector for .NETアセンブリ
コードメータの自動暗号化ツールAxProtectorには、.NETアセンブリを強力に暗号化する機能が搭載されています。オリジナルコードを暗号化するだけでなく、ソースコードを変更しなくても、AxProtectorで暗号化するだけで、メモリー上の「オンデマンド復号」が実現します。また、リフレクタ (Reflector)などのリバースエンジニアリングツールによりコードを逆アセンブルされても、ソースコードは復号化されません。
暗号化方法は、Windows32/64bitアプリケーションの場合と同じです。AxProtectorを起動し、「.NET assembly」を選択して暗号化処理を行います。現在対応している.NETアセンブリは、.NET 1.0, 2.0, 3.0, 3.5 のEXEまたはDLLプログラムになります。

.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(リフレクタ)等で逆アセンブルしてもソースは復号化されない。(暗号化されたまま)
