.NETとC#の難読化ツール|AxProtector .NET
AxProtector .NET ソフトウェアの自動保護
AxProtector .NETは、.NETで開発されたアプリケーションをリバースエンジニアリングから保護する信頼性の高いソリューションです。様々なオプションにより、ボタンを押すだけで簡単に、.NETアプリケーションの効率的な暗号化やライセンシングを行うことができます。
- 自動保護:.NET アプリケーション全体を暗号化し、自動でライセンスチェック機能を統合します。(基本ライセンス)
- モジュラーライセンシング:アプリケーションをモジュール化し、割り当てられたライセンスに応じて、各機能のロック解除を行います。(要オプションライセンス)
- ファイル暗号化: コンフィグレーションファイルやAIモデルなど、保護したアプリケーションに関連するファイルのライセンシングと保護を行います。(要オプションライセンス)
- CodeMoving:暗号化されたコードをCmDongleまたはCmCloudContainerへ移動させ、セキュアな環境で実行します。これにより、リバースエンジニアリングに対する高水準の保護が可能になります。(要オプションライセンス)
- ライセンスフリー保護:保護されたアプリケーションの利用には、ライセンスは不要なため、知的財産(IP)データ自体やノウハウを保護します。(要オプションライセンス)
AxProtector .NETは、自動でのライセンスチェック、ソフトウェアの真正性と整合性のモニタリング、ソフトウェアの統合、リバースエンジニアリングからの保護を行い、アプリケーションの安全性を高めます。アプリケーションは、クラスとメソッドレベルで暗号化されるとともに、異なるプラットフォーム間での互換性を保持します。
さらに、特定のライセンス操作を行うために、CodeMeter Core APIをアプリケーションに統合することも可能です。
自動保護
AxProtector .NETの大きな特長として、ボタンを押すだけで簡単に、.NETアプリケーションのライセンシングと保護を行うことができます。こうすることで、アセンブリーのすべてのメソッドは、ユーザーによって定義されたライセンスを使用して暗号化されます。これらのメソッドは、必要に応じて、ライセンスに含まれるキーにより復号できるよう、変換されます。正規ライセンスをもつ場合のみ、.NETアプリケーションを復号できます。
アプリケーション実行中、暗号化された各.NETメソッドは、メモリにロードされます。これらは使用されるまで、暗号化されたままです。ユーザーが定義したライセンスをエンドユーザーが所有している場合のみ、実行時に、メソッドは、動的に復号されます。この復号は、バックグラウンドで自動的に行われます。.NETバイトコード(ILコード)は、通常、エンドユーザーのマシン上で、JITコンパイラーによって変換されます。変換直後、ILコードは、セキュリティレイヤーによってメモリから削除されるため、暗号化されていない時間はほんのわずかです。これにより、セキュリティの大幅な向上が見込めるとともに、パフォーマンスへの影響も最小限に抑えることができます。また、セキュリティレイヤーは、実行環境へインテリジェントに統合されるため、セキュリティとパフォーマンスの両立が可能です。
AxProtector .NETは、カスタマイズ可能な対話ベースのイベント処理をデフォルトとして提供します。オプションで、ユーザーは、ニーズに合わせた、イベント処理のカスタマイズが可能です。例えば、メッセージの表示や、バックグラウンドでの透過的な応答などです。すぐに使用できるよう設定することも可能ですが、汎用ライブラリとして、すべてのアプリケーションの標準動作を定義したり、例外処理などで既存のアプリケーションに動作を統合することもできます。
AxProtector .NETには、オプションとして、シンボルを難読化する機能があります。これは、不可逆的な変換であるため、コードを解析しようとする攻撃者に手がかりを残すことがなく、効果的です。
AxProtector .NETを展開する際、ソースコードの変更は不要です。暗号化は、コンパイル後、セットアップ前のポストビルドプロセスとして行われます。AxProtector .NETは、継続的インテグレーションの一環として、自動ビルドシステムに統合することもできます。
モジュラーライセンシング
モジュラーライセンスでは、各機能へ個別にライセンスを付与し、アクティベートさせることができます。これにより、ユーザーの.NETアプリケーションに対して、カスタマイズしたフィーチャーオンデマンドのライセンシングが可能になります。
統合方法は2種類あり、シンプルなライセンスチェックをコードに組み込む、または、個々のメソッドやクラスにライセンスを割り当てることが可能です。ニーズに合わせて選ぶことができます。
ライセンスチェックの場合、プログラムのフローを制御することができます。例えば、ライセンスがない機能の非表示、それらが呼出された際に表示させるメッセージの設定が可能です。
個別ライセンスの割り当ての場合、セキュリティの向上が期待できます。割り当ては、コンフィグレーションファイルを介した、ユーザーフレンドリーで直感的なインターフェイスを通して、もしくはコードに直接アノテーションとして指定できます。
ファイル暗号化
アプリケーション開発に関わるIPは、アプリケーション内だけでなく、コンフィグレーションファイルやデータファイルなど、使用されるファイルにも存在することがよくあります。AxProtector .NETは、不正操作やスパイ行為からこれらのファイルを保護する機能を提供します。
ソースコードを変更することなく、配布前にこれらのファイルを暗号化することができます。各ファイルには個別にライセンスが付与され、有効なライセンスがある場合にのみ、保護されたアプリケーションによる読込みや復号が可能です。
アプリケーション実行時に、ファイルの書き換えや変更が生じる可能性がある場合には、CodeMeter Core APIとのカスタマイズ統合をおすすめします。
CodeMoving
CodeMovingは、.NETアプリケーションに最高水準のセキュリティをもたらします。セキュリティ上、機密性の高いコードは、別のCソースファイル内の個別のサブプログラムとして実装されます。暗号化処理中、各サブプログラムは、自動でコンパイルされ、暗号化されたバイナリ・ブロブとして、アプリケーションに組み込まれます。
実行時に、これらのパーツは、API経由で呼出され、CmDongle/CmCloudContainer内のCmContainerへコードを転送し、そこで復号・実行されます。CmContainerへの動的なオフロードは、拡張と更新を可能にします。
このように、CodeMovingを使用することで、従来の保護メカニズムを超えた、最高水準のアプリケーション保護が可能になります。セキュリティが最優先されるアプリケーションには最適です。
ライセンスフリー保護
ライセンシングによる保護の代わりとして、ライセンスフリー保護があり、ライセンスなしでアプリケーションを使用することができます。フリーウェア、フリーミアムモデル、またはユーザー独自のライセンスとの組み合わせに最適なオプションです。
フリーウェアの場合、アプリケーション全体が、暗号化や追加の防御手段によって、リバースエンジニアリングから保護されます。もちろんライセンスは不要です。
フリーミアムモデルでは、アプリケーションもライセンスなしで実行されますが、確実に保護されます。アンロックされたプレミアム機能は、モジュラーライセンシングを介してCodeMeterで簡単かつセキュアな保護とライセンシングが行われます。
自社開発や別のライセンシングソリューションを用いて、リバースエンジニアリングに対する保護を強化したい場合にも、ライセンスフリー保護は、追加のセキュリティ対策として役立ちます。アプリケーションは保護され、悪意ある第三者から、ライセンス呼出しを隠し、不正操作を防ぎます。この方法は、セキュアなCodeMeterテクノロジーへ移行する場合に特に適しており、移行過程における、古いライセンスとの互換性が保証されます。
システム要件
- 暗号化環境(ISV側):Windows(x86_64)、Linux(x86_64 glibc)
- ランタイム環境(エンドユーザー側):Windows(x86、x86_64)、Linux(x86 glibc, x86_64 glibc、armhf glibc、aarch64 glibc、x86_64 musl、armhf musl、aarch64 musl)、macOS(x86_64、Apple Silicon)
- 利用可能なライセンスコンテナ:CmDongle、CmActLicense、CmCloudContainer
- .NETバージョン:4.7.2 - 9.0, Core 2.0 - 3.1
関連情報
- ライセンス不要でソフトウェアのIPを保護(KEYnote 38)
- CodeMeter Protection Suite – 幅広いニーズに対応可能なツール(KEYnote 40)
貴社の課題をCodeMeterで解決しませんか?
お気軽にお問合せください。製品説明および最適な使い方をご提案します。
お問合せ