.NETとC#の難読化ツール|AxProtector .NET

Share:

AxProtector .NET ソフトウェアの自動保護

AxProtector .NETは、.NETソフトウェアに保護を組み込む際に、時間と労力を節約するための理想的なソリューションです。AxProtector .NETを使用すると、完全に自動化された方法でソフトウェアを著作権侵害やリバースエンジニアリングから保護することができます。

  • .NETアプリケーション全体を暗号化し、ライセンスチェックを自動的に追加(基本構成)。
  • .NETアプリケーションにモジュール型の暗号化を選択し、ユーザーサイトで個々の機能を個別にアクティベーション(カスタムライセンス)。Wibu Universal Protection Interface(WUPI)は、必要な個々のライセンスをチェックし、アプリケーションの実行方法を制御。
  • AxProtector .NETをリバースエンジニアリング対策としてのみ使用し、ユーザーはライセンス不要(IP保護モード)

アプリケーションは、クラスやメソッドのレベルで暗号化され、安全なシェルであるAxEngineに配置され、最先端のアンチデバッグ、アンチアセンブル技術が自動的に追加されます。

メソッドは暗号化された状態でメモリにロードされ、積極的に必要とされるまでは暗号化されたままです。その時点で、バックグラウンドで自動的に復号されます。JITコンパイラを通過した後、再びメモリから削除されます。つまり、あなたのILコードは、可能な限り短い時間だけ、平文で公開されることになるのです。アプリケーションへの影響は最小限であり、保護レベルも非常に高いままです。

AxProtector.NETを使用することで、CodeMeter Core APIを使用する場合と比較して、非常に高い保護レベルを最小限の労力で実現できる優れた方法です。しかし、CodeMeter Core APIを追加で使用することは常に可能です。

基本設定

AxProtector .NETを使用する場合、ソースコードの変更は一切必要ありません。ビルド後の処理としてAxProtector.NETを組み込むだけです。暗号化処理は、ソフトウェアのコンパイル後、セットアップの作成前にAxProtector.NETによって実行されます。AxProtector .NETは、グラフィカルユーザーインターフェイスとコマンドラインツールの両方で使用することができます。コマンドラインツールとして、AxProtector .NETは、自動ビルドシステムの継続的インテグレーションで実行することができます。

AxProtector .NETは、独自に定義したライセンスを持つメソッドを自動的に選択し、小さなメソッドや技術的な理由で暗号化できないメソッドを除いて暗号化します。ランタイム中にオンザフライで復号化するため、アプリケーションのパフォーマンスへの影響はごくわずかです。保護とパフォーマンスのバランスを微調整するために、暗号化に除外するメソッドと含めるメソッドを定義するオプションも用意されています。

プロテクトされたアプリケーションを起動すると、必要なライセンスがあるかどうかが自動的にチェックされます。利用可能な場合は、ランタイム中に個々のメソッドが動的に復号され、アプリケーションの実行が可能になります。ライセンスがない場合、システムはエラーメッセージを表示するか、アプリケーションを停止するか、例外を報告します。エラーメッセージをカスタマイズしたり、例外に対応する暗号化されていないメソッドを定義することができます。

カスタムライセンシング

モジュールの保護については、ライセンス(プロダクトコード)と個々のメソッドまたはクラス全体の間の関連付けを定義します。また、WUPIを使用してソフトウェアのソースコード内の異なるライセンスを照会し、ライセンスが不足している場合にソフトウェアが適切に対応するように設定することができます。たとえば、メニューを隠したり、カスタムエラーメッセージを表示したりすることができます。別のライセンス(製品コード)による暗号化は、最高のセキュリティレベルを提供します。WUPIを介したクエリによって、ソフトウェアの制御された動作を設定することができます。このため、暗号化とAPIクエリの組み合わせは最適なソリューションとなります。

IP保護モード

IP保護モードは、特にフリーウェアやフリーミアムモデル、またはライセンスとのハイブリッドモデルのために作成されました。基本構成とは対照的に、IP保護モードは、暗号化をCodeMeterライセンスに結びつけません。その代わり、復号キーをアプリケーション自体に安全に統合し、誰でもアプリケーションを起動できるようにします。

フリーミアムモデルでは、IP保護モードはカスタムライセンスと完全に組み合わせることができます。アプリケーションの一部はIP保護モードでのみ暗号化されているため、いつでも使用することができます。その他の部分はライセンスにバインドされており、ユーザーが必要なライセンスを購入した後にのみアクセスできます。WUPIクエリーは、ユーザーが与えられた特徴や機能にアクセスする権利を持っているかどうかをチェックすることができます。

サポートするOS

AxProtector.NETは、2つのタイプで提供されています。AxProtector .NETとAxProtector .NET Standardの2種類です。

AxProtector .NETは、.NET Framework 2.0以降で作成されたアプリケーション(実行ファイル)とライブラリーを保護します。最新のセキュリティとパフォーマンスの向上を利用するためには、.NET Framework 4.7.2以降を推奨します。

4.7.2以前の.NETフレームワークを使用している場合、設定可能な時間の後、メソッドはメモリから削除されます。インテリジェントな2段階のキャッシュのおかげで、この場合もパフォーマンスに対する保護の影響はわずかであり、実装されたメカニズムはここでも非常に高い保護レベルを提供します。

IP保護モードは、.NET Framework 4.0以降が必要です。

AxProtector .NET Standardは、.NET Core 2.0やMono 5.4アプリケーションなど、.NET Standard 2.0アプリケーションを保護します。

AxProtector .NETのセキュリティメカニズム

AxEngineは、暗号化されたメソッドに初めてアクセスする際に起動します。必要なライセンスが利用可能かどうかが確認されます。必要なライセンスがある場合、ライセンスは自動的にアクティブになり、問題のメソッドを復号化するために使用されます。完全性チェックの一環として、AxEngineはソフトウェアが改ざんされていないかどうかもテストします。最先端のアンチデバッギング、アンチリバースエンジニアリングの手法を用いて、ソフトウェアに対する脅威を認識し、そのようなリスクが確認された場合には停止させます。オプションで、このような場合にライセンスをロックするように設定することも可能です。

AxProtectorは、ライセンス、ソフトウェアの整合性、脅威の存在を定期的にチェックするバックグラウンド監視機能を備えています。

AxProtector .NETには、オプションでCodeMeter用の隠しコマンドも用意されており、ソフトウェアに追加のハニートラップメソッドとして追加することが可能です。保護された関数を全て復号化しようとすることでソフトウェアのクラックを試みる人は、自動的にこれらのトラップに引っかかり、ライセンスをロックし、それ以上の関数の復号化に使用できないようにするコマンドを発動させることができます。このため、AxProtector.NETは、ソフトウェアの体系的な解析に対する優れた手段となっています。

一般的な難読化ツールと比較して、AxProtector .NETは大幅に優れた保護機能を提供します。従来の難読化では、名前を変えるだけで、ソフトウェアをスパゲッティコードとしてスクランブルしていましたが、AxProtector .NETは、実行コードを256ビットAES暗号化で強力に暗号化します。これにより、ハードディスク上のアセンブリを逆コンパイルすることは、入手可能な最高のツールを用いても不可能となります。保護されたコードは、安全なドングルまたはWindowsシステムサービス内で復号され、.NETレベルでの単純な難読化よりもさらにハッカーの手の届かないところに置かれます。正しいライセンスと正しいキーを持たないハッカーは、コンピュータのメモリからコードを抽出することはできません。ハニートラップを追加することで、すべての方式をむやみに組織的に復号・回収することも現実的には不可能になります。トラップが作動すると、ライセンスはロックされ、他の復号の試みに対してキーを失うことになります。AxProtector .NETは、その優れた保護性能に加え、難読化ツールと比較してもう一つ重要な利点を持っています。関数名を変更する必要がないため、リフレクション、リモーティング、WCFなどの機能をソフトウェアのセキュリティに影響を与えることなく使用することができます。

関連情報

貴社の課題をCodeMeterで解決しませんか?
お気軽にお問合せください。製品説明および最適な使い方をご提案します。

お問合せ

To top