AxProtector for .NETアセンブリ

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

Placeholder image

.NETアセンブリの暗号化原理

1.AxProtectorにより、オリジナルアセンブリを逆アセンブルし、クラス(class)、メソッド(method)、フィールド(field)を抽出します。

Placeholder image

2.同じ名前のクラス(class)とフィールド(field)を作成します。

Placeholder image

3.同じ名前のメソッド(method)を作成します。 ただし、メソッド(method)の中身(コード)は含まず、AxEngineを呼び出すようにします

Placeholder image

4.実際のメソッド(method)のコード部分は暗号化されてデータセクション(Data section)に保存され、メソッド(method)を復号化するためのAxProtector classが追加されます。

Placeholder image

5.実行時に、新しく作成されたメソッド(method)は、AxProtector classを呼び出します。 AxProtector classは、暗号化されているコード部分をメモリー上で復号化して実行します。 これにより、メモリー上の「オンデマンド復号」を実現します。

Placeholder image

リバースエンジニアリングをブロック

Placeholder image

.NETアセンブリは、プログラム構造の性質上、Reflector(リフレクタ)などのリバースエンジニアリングツールによって、簡単にソースコードに変換することができます。これにより、オリジナルソースコードが流出されてしまいます。コードメータのAxProtectorは、ソースコードを強力に暗号化するため、リバースエンジニアリングを行ってもソースコードは暗号化されたままです。

Placeholder image

Reflector(リフレクタ)等で逆アセンブルしてもソースは復号化されない。(暗号化されたまま)