関数を個別に暗号化|IxProtector
IxProtector:個々の関数を暗号化
個別の保護
AxProtectorとIxProtectorは、リバースエンジニアリングと著作権侵害に対して非常に高レベルのソフトウェア保護が必要な場合に理想的な組み合わせです。AxProtectorは、ソフトウェアパッケージ全体を保護するシールドを作ります。さらに、IxProtectorは個々の関数を暗号化します。 IxProtectorによって処理された関数は、ソフトウェアのロード後も暗号化されたままであり、実際に使用する中で厳密に必要な時だけメモリ内で復号されます。この二重の保護は、メモリダンプ、パッチ、ソフトウェア保護のエミュレーションなどの典型的なクラッキング技法に対する最適な保護を提供します。
IxProtectorはAxProtectorに統合されており、AxProtectorの補助または代替として使用できます。ただし、AxProtectorを使用してソフトウェアの保護レベルを最大化することをお勧めします。アプリケーションまたはライブラリ内で個々のパーツのみが保護されている場合、AxProtectorの代わりにIxProtectorが使用されます。そのような場合、ソフトウェアのパーツもライセンスなしで使用できます。ライセンスのないパーツをリバースエンジニアリングから保護する必要がある場合は、AxProtector IP ProtectionまたはIxProtector IP Protectionを使用することをお勧めします。
サポートするOS
IxProtectorは、Windows、macOS、Linuxの実行ファイルとライブラリを保護します。ソフトウェアが複数のアプリケーションとライブラリで構成されている場合、モジュールの組み合わせが可能です。AxProtectorで保護されたモジュール、IxProtectorで保護されたモジュール、両方で保護されたモジュール、および保護されていないモジュールを混在させることができます。AxProtector .NETで保護されたモジュールを含む混合操作も可能です。
動作原理
保護する関数を定めるためには、アプリケーションのソースコードでフラグを立てる必要があります。その後、 Wibu Universal Protection Interface(WUPI)がソースコードに統合されます。このインターフェースを介して、保護された関数をいつ復号して再暗号化するかを設定できます。各関数の復号と暗号化は、アプリケーションのパフォーマンスに非常に小さな影響を与えます。 WUPIを使用すると、これらのアクションがいつ発生するかを判断し、ソフトウェアのパフォーマンスとセキュリティを最適化できます。
WUPIを使用する代わりに、保護された関数を自動的に暗号化することもできます。 これはTranslocated Executionと呼ばれ、統合されたAxEngineによって処理されます。構成時に、個々の関数を復号した後、キャッシュに保持するか、再度削除するかを決定します。 Translocated Executionは、実行可能コードをコンピューターの作業メモリに移し、攻撃者がアクセスすることをさらに困難にします。
機能の復号と暗号化に加えて、WUPIは要求に応じてライセンスを割り当て、解放する選択肢を提供します。オプションで、IxProtectorがトラップ(Honey Pot)に変換できる未使用のコードをソフトウェアに実装できます。
IxProtectorとWUPIの実装中に、ダミーライブラリを操作します。したがって、暗号化をせずに、開発およびテスト段階でソフトウェアを実行できます。
AxProtectorと同様に、IxProtectorはビルド後のプロセスとして統合され、次のことを行います。
- 選択した機能を検出して暗号化
- フラグの削除
- 復号と暗号化コールを保護された関数に関連づけ
- 暗号操作をライセンスクエリに挿入
これらの暗号化操作により、IxProtectorは典型的な「record and playback」攻撃を確実に阻止します。
さらに、IxProtectorはCodeMeterがトラップ(Honey Pot)として使用するソフトウェアに隠しコマンドを挿入します。すべての暗号化された関数を解読しようとするクラッカーは、必然的に罠に陥ります。この場合、ライセンスがロックされ、他の機能の解読には使用できなくなります。したがって、IxProtectorは、ソフトウェアの体系的な分析に対する保護対策を提供します。