Java
PreEmptive Protection™ DashO™ プロジェクトを作成するための最も簡単な方法は、New Project Wizard を使用することです。 ウィザードは、アプリケーションを調べて、そのアプリケーションを保護するための適切な設定を決定します。 ウィザードを起動するには、[File]>[Project Wizard]メニューを選択します。
ライブラリ
このウィザードでライブラリを選択する場合、そのライブラリが格納されているディレクトリまたは .jar
ファイルの場所を指定するよう求められるほか、Java ランタイム クラスを解決するために DashO で使用する JDK の場所(Include JDK(JDK の導入)を参照)も指定するよう求められます。
ウィザードはライブラリを調べて、実行時または難読化の目的のために必要となる依存関係を決定します。
難読化する入力として、またはランタイム サポートの jar ファイルとして、追加の jar を加えることができます。
サポート ライブラリの一覧には Java モジュール(.jmod
)も追加できます。
[Missing classes]一覧は、ライブラリによって参照されているが、見つからなかったクラスを示します。
次にウィザードは、ライブラリ内のエントリ ポイントについて尋ねます。 ウィザードは、エントリ ポイントとして使用される特別なクラスやメソッドと一緒に、ライブラリ全体を 1 つのエントリ ポイントとして表示します。
また、ウィザードはコード内のクラス、メソッド、およびフィールドの修飾に使用されるアノテーションについて尋ね、有効にできる可能性のあるアノテーション ベースのエントリ ポイント規則を提示します。 アノテーションについてよく理解しており、これらのアノテーションで修飾されたコード要素を保持する必要があると確信している場合は、アノテーションのエントリ ポイントを有効にします。
さらに、ウィザードには、Hibernate に使用されるアノテーションに基づいてエントリ ポイント規則を自動生成する機能を有効にするチェック ボックスが表示されます。 チェック ボックスをオンにすると、次の規則が設定されます。
javax.persistence.Entity
を使ってアノテーションが付けられたクラスが名前変更されたり除去されたりしないようにする。javax.persistence.Entity
またはjavax.persistence.Embedded
を使ってアノテーションが付けられたクラスの以下のメンバーが除去されないようにする。- フィールド
- getter(パラメーターが 0 個で、名前が
get
またはis
で始まるメソッド) - setter(パラメーターが 1 個で、名前が
set
で始まるメソッド)
最後にウィザードは、結果として生じるプロジェクト ファイルを保存する場所を尋ねます。
既に存在する名前を選択した場合は、そのファイルを上書きするかどうかの確認を求められます。 既存のプロジェクトを上書き保存すると、新しい設定が保存され、古いプロジェクトのバックアップが作成されます。
デスクトップ アプリ
このウィザードでデスクトップ アプリを選択する場合、そのアプリケーションが格納されている .jar
の場所を指定するよう求められるほか、Java ランタイム クラスを解決するために DashO で使用する JDK の場所(Include JDK(JDK の導入)を参照)も指定するよう求められます。
ウィザードはアプリケーションを調べて、実行時または難読化の目的のために必要となる依存関係を決定します。
難読化する入力として、またはランタイム サポートの jar ファイルとして、追加の jar を加えることができます。
サポート ライブラリの一覧には Java モジュール(.jmod
)も追加できます。
[Missing classes]一覧は、アプリケーションによって参照されているが、見つからなかったクラスを示します。
次にウィザードは、アプリケーションのエントリ ポイントについて尋ねます。
jar のマニフェストに Main-Class
属性が含まれている場合は、それがエントリ ポイントとして挙げられます。
それに加えてウィザードは、エントリ ポイントとしても使用できる特別なクラスやメソッドを表示します。
DashO はこれらのエントリ ポイントを使用して、難読化された出力から除去する、使用されていない項目を決定します。
DashO をフォローするために希望するだけのエントリ ポイントを選択できます。エントリ ポイントは、少なくとも 1 つは選択する必要があります。
また、ウィザードはコード内のクラス、メソッド、およびフィールドの修飾に使用されるアノテーションについて尋ね、有効にできる可能性のあるアノテーション ベースのエントリ ポイント規則を提示します。 アノテーションについてよく理解しており、これらのアノテーションで修飾されたコード要素を保持する必要があると確信している場合は、アノテーションのエントリ ポイントを有効にします。
さらに、ウィザードには、Hibernate に使用されるアノテーションに基づいてエントリ ポイント規則を自動生成する機能を有効にするチェック ボックスが表示されます。 チェック ボックスをオンにすると、次の規則が設定されます。
javax.persistence.Entity
を使ってアノテーションが付けられたクラスが名前変更されたり除去されたりしないようにする。javax.persistence.Entity
またはjavax.persistence.Embedded
を使ってアノテーションが付けられたクラスの以下のメンバーが除去されないようにする。- フィールド
- getter(パラメーターが 0 個で、名前が
get
またはis
で始まるメソッド) - setter(パラメーターが 1 個で、名前が
set
で始まるメソッド)
最後にウィザードは、結果として生じるプロジェクト ファイルを保存する場所を尋ねます。
既に存在する名前を選択した場合は、そのプロジェクトを上書きするかどうかの確認を求められます。
既存のプロジェクトを上書き保存すると、新しい設定が保存され、古いプロジェクトのバックアップが作成されます。