Protector4Jの仕組み
現在のJavaコード保護ソリューションの問題点
Protector4Jの仕組みを理解する前に、まず他のJavaコード保護ソリューションに存在する問題点を学びましょう。
コード難読化
JVMバイトコードは非常にセマンティック性が高いため、分析や解読が非常に容易です。動的デバッグを使用すれば、実行ロジックを簡単に分析できるため、難読化は信頼性の高い保護ソリューションではありません。
詳細については、以下の記事を参照してください:https://protector4j.com/ja/articles/the-issues-of-code-obfuscation/
クラスファイル暗号化
JVMアタッチメカニズムの存在により、通常のJREから分離されていないすべてのいわゆる暗号化コードは、アタッチツールを使用して簡単に取得できます。したがって、これは最も効果のない保護ソリューションです。
詳細については、以下の記事を参照してください:https://protector4j.com/ja/articles/the-issues-of-class-encryption/
VMP保護
仮想化保護は最も安全なコード保護形態ですが、パフォーマンスへの影響が大きいため、プログラム内の重要なコードにのみ適用できます。その他のコードは依然として露出のリスクがあります。他の部分のコードを対象にすることで、クラッカーは仮想化されたコードの機能情報を取得できます。
詳細については、以下の記事を参照してください:https://protector4j.com/ja/articles/the-issues-of-vm-protection/
AOTコンパイル
AOTコンパイルの構成とコンパイルは非常に困難で、コンパイル失敗の確率が高いです。コンパイルが成功したとしても、コードロジックはバイトコード表現からマシンコード表現に変換されただけで、その固有のロジックは特別な保護なしにそのまま存在します。コンパイルと実行のメカニズムを理解できれば、依然として可読コードをリバースエンジニアリングできます。
詳細については、以下の記事を参照してください:https://protector4j.com/ja/articles/the-issues-of-aot-protection/
Protector4Jの仕組み
独自の圧縮パッケージ形式JARXを定義
Javaコードを保護するために、JARXと呼ばれる独自の圧縮ドキュメント形式を作成し、JVMランタイムに統合しました。Protector4Jで処理されたJARファイルはJARX形式に変換されます。
JVMの深いカスタマイズと修正
JVMを深く研究した上で、JVMに対して深いカスタマイズと修正を行いました。すべての追加メカニズムを削除し、バイナリセキュリティレベルで多くの強化と最適化を適用しました。 これにより、クラッカーが既存の方法を使用してクラス情報をエクスポートすることを防ぎます。現在の強度で、Protector4Jで保護された暗号化アプリケーションは高いレベルのセキュリティを持っていると考えています。 ただし、クラッキングとアンチクラッキングの戦いは常に絶え間ない改善です。暗号化と保護のソリューションを継続的に改善し、アプリケーションのセキュリティを常に強化していきます。