仮想化保護ソリューションの問題

難読化により静的分析の難易度は高まりますが、動的分析を効果的に防ぐことはできません。コード仮想化の目的は、動的分析の難易度を高めることです。

Java コードの仮想化は、カスタム仮想化エンジンを構築することで実現され、直接実行できるバイトコードをこれらの仮想化エンジンを通じて実行できるようになります。カスタム仮想化エンジンであるため、外部からその実行方法や命令形式などの情報に直接アクセスすることはできません。さらに、コードが大幅に拡張されるため、元のセマンティック情報を含むコードのリバース エンジニアリングが困難になります。

仮想化がパフォーマンスに与える影響。

仮想化保護は非常に強力なコード保護ソリューションですが、仮想化保護の最大の問題はパフォーマンス。カスタム仮想化エンジンは、JVM のような多数のパフォーマンス最適化手段を採用することが難しく、JIT などのパフォーマンス最適化手法を適用できません。を使用してみることができますJVMエンジン 前述したように、通常の JVM と同じコードを実行してパフォーマンスを比較すると、100 倍を超えるパフォーマンスの差が生じる可能性があります。

結論

仮想化保護は最も安全なコード保護方法ですが、パフォーマンスに大きな影響を与えるため、プログラム内のすべてのコードに適用することはできません。保護できるのは重要なコードのみですが、他のコードには依然として漏洩のリスクが伴います。コードの他の部分をターゲットにすることで、コードの仮想化された部分に関する機能情報を取得できます。