規則エディター
概要
DashO のユーザー インターフェイスのパネルの多くは規則エディターで、これらは主として、難読化の変換処理における、アプリケーション内の要素の対象除外と対象選択を行います。規則エディターは 2 つの一覧に分かれています。左側のクラス一覧は、入力のクラスとメンバーを表示し、右側では規則の一覧を表示します。規則では、操作の影響を受ける入力の部分と、場合によっては実行される操作を指定します。規則エディターは、以下の操作について規則を設定するために使用されます。
DashO の、エントリ ポイントなどの他の部分は、規則エディターに非常に似たインターフェイスを使用します。
規則の作成
インターフェイスで規則を作成する方法はいくつかあります。
クラス一覧の項目を右クリックする – クラス一覧の項目を右クリックすると、ショートカット メニューが表示されます。そこから、選択した項目に一致する規則を構築することができます。Shift キーを押した状態で規則を作成すると、その規則は正規表現になります。メソッドまたはフィールドの規則を作成した場合、DashO はその新しい規則を既存のクラスの規則に追加します。必要であれば、クラスの規則を作成します。
クラス一覧から項目をドラッグ アンド ドロップする – クラス一覧から項目をドラッグして、規則の上にドロップすることができます。メソッドまたはフィールドをドラッグ アンド ドロップした場合、DashO はその新しい規則を既存のクラスの規則に追加します。必要であれば、クラスの規則を作成します。
ボタンを使用する – 規則一覧の右にある[New xxx]ボタンをクリックして、新しいエントリを作成することができます。
ショートカット メニューを使用する - ショートカット メニューの[New xxx]ボタンをクリックして、新しいエントリを作成することができます。
規則の編集
規則の基本部分は、エディターで直接変更することができます。あらゆる項目の名前と、署名やメソッドは、規則一覧の直下にあるテキスト フィールドを使用して変更できます。また、専門のエディターでこれらの値を直接編集することもできます。
[New xxx]ボタンまたはショートカット メニューを使って規則を作成すると、その規則の設定を編集できるエディターが起動されます。
作成した規則の設定にアクセスするには、以下の方法があります。
規則を右クリックし、ショートカット メニューから[Edit...]項目を選択する
規則をダブルクリックする
規則を選択して Enter キーを押す
規則を選択し、[Edit...]ボタンをクリックする
これらの操作を行うと、規則に対してエディターが起動されます。 このエディターには次のような値の設定があります。
Modifiers – Java の修飾子、またはその否定。この規則が項目と一致するようにするために必要です。ここで使用できる値については、Modifiers 属性の説明を参照してください。
Name – 規則が影響を与える項目の名前。これには定数値、パターン、または正規表現を指定できます。
Signature – メソッドの署名。
Type – 名前および署名が解釈される方法を決定します。詳細については、パターンおよび正規表現を参照してください。
Select class – クラス自体だけでなく、そのメンバーにも影響を与える規則の場合、この設定は、規則がクラスに適用されるかどうか、あるいは、クラスは入れ子になったフィールドやメソッドの規則のための単なるコンテナーであるかどうかを判断します。
Renaming controls – 既定では、エントリ ポイントの名前は変更不能です。エントリ ポイントの種類によっては、名前を変更可能にすることができるため、これらのコントロールは、クラスとそのメンバーの名前を変更できるかどうかを決定します。
Property(プロパティ) - properties パネルにおいて、作成したいプロパティや、値を割り当てたいプロパティ。
Value(値) - properties パネルにおいて、プロパティに割り当てる値。
Source(ソース) - 非クラス ファイルのパス。
Destination(出力先) - 非クラス ファイルにおける希望の出力先。
規則のプレビュー
規則の影響を受けるものを確認するために、プレビュー機能を使用することができます。単一の規則をプレビューするか、すべての規則をプレビューするかを選択できます。規則を右クリックしてショートカット メニューを表示し、[Preview Rule]または[Preview All]を選択します。クラス一覧内で、規則の影響を受ける項目が太字で表示されます。どちらの一覧のショートカット メニューからも、強調表示をクリアできます。
パターンと正規表現
単純な規則は、項目の名前を文字どおりに使用して、クラスなどの特定の項目を選択します。規則でパターンや正規表現を使用して、項目を選択することもできます。詳細については、パターンおよび正規表現を参照してください。
正規表現は自動的に調べられます。式にエラーがある場合は、赤い X 印が式の横に表示されます。マウス ポインターを規則の上に移動させると、ツール ヒントにエラーの場所とその説明が表示されます。
メモ:
正規表現は、全体として規則に適用されます。クラス名が正規表現で指定された場合は、すべてのメンバーの名前が正規表現として扱われます。パターンには、この制限はありません。
対象選択規則と対象除外規則の結合
DashO では、難読化するアプリケーションの部分を決定するために、対象選択規則と対象除外規則を組み合わせて使用することができます。難読化の変換処理が、対象選択と対象除外の両方の定義を許可している場合は、両者を結合させる方法を覚えておくことは重要です。
対象選択規則が何も定義されていない場合は、既定ですべての項目が対象として選択されます。
対象除外規則が何も定義されていない場合は、既定でどの項目も対象から除外されません。
初めに対象選択が決定されてから、次に対象除外が決定されます。項目は、少なくとも 1 つの規則から対象として選択され、変換処理を適用させるどの規則によっても対象から除外されない必要があります。