PreEmptive Protection - DashO v8.0 User Guide

増分難読化

概要

増分難読化によって、PreEmptive Protection - DashO では前回の難読化時に使用された同じクラスやメソッドの名前変更、および文字列の暗号化/復号メソッドを再利用することができます。これは、アプリケーションの一部を再配布する場合、またはシリアル化されたクラスの名前変更を行う場合に重要です。たとえば、アプリケーションが 3 つの .jar ファイルで構成されているとします。アプリケーションのリリース後、あるロジックに大きな問題が見つかり、.jar ファイルの 1 つをパッチで再配布するとします。増分難読化を使用して以下のことを行う必要があります。

  • 再配布する jar ファイルには、同じクラス名とメソッド名が含まれるようにする。

  • 差し込まれた文字列の同じ復号メソッドを呼び出す(または含める)。

  • ほかの 2 つの jar にある名前変更されたクラスおよびメソッドと適切に整合させる。

増分難読化は、2 つの割り当てファイルによってサポートされます。これらは必ず出力されるように設定する必要があります。

名前変更の割り当てファイル

名前変更の割り当てファイルには、クラスおよびメソッドの元の名前と新しい名前の対応(割り当て)が含まれています。この情報は、スタックトレースのデコードおよび増分難読化に必要です。

文字列の暗号化割り当てファイル

文字の暗号化の割り当てファイルには、DashO が文字列の暗号化に使用するアルゴリズム、場所、および復号メソッドの差し込み時に使用されるアルゴリズムに関する情報が含まれています。この情報は増分難読化に必要です。

これらの出力ファイルはどちらも、内部的に、おそらくソース コントロールに保管する必要があります。そうすることで、スタックトレースのデコードまたは増分難読化の必要性が生じた場合に使用することができます。

増分難読化を実行するには、名前変更および文字列の暗号化用に、これらのファイルの名前を変更し、入力割り当てとして設定する必要があります。クラス/メソッドが名前変更される、または除去される場合、名前変更の除外やエントリ ポイントなどの項目への変更が影響を与えることもあるので、元のビルドと同じ構成を使用するようにしてください。ビルドが完了したら、新しい出力割り当てと入力割り当てを比較し、予期しない矛盾がないことを確認してください。

メモ:

入力割り当てに、次の理由によって使用できない、クラス、メソッド、またはフィールドの新しい名前が含まれている場合には、エラーが出力されます。

  • クラス、メソッド、またはフィールドの名前変更を防止するように設定が変更されている。
  • 新しい名前が別の名前と競合する。


PreEmptive Protection - DashO Version 8.0.0. Copyright © 2016 PreEmptive Solutions, LLC