String Renaming

クラスに含まれるシンボル名を意味のない名前に変換する難読化を実現したプラグイン.

Properties

NameDefault ValueDescription
renamerdefault名前変換ルールを指定する.default のみ.将来の拡張で増えるかも.
wellknown.packagesjava, javax, org.apache, org.omg, org.xml, org.w3c, org.ietf, org.gnu, com.apple, junit, sun, com.sun, org.eclipse, pnuts, groovy既知のクラスのパッケージ名.これらのパッケージ名に含まれるクラス名は難読化の対象とはならない.また,この属性を書き換えることは推奨されない.これらのリストに追加したい場合は wellknown.packages.add プロパティを使用することができる.
wellknown.packages.addemptywellknown.packages プロパティに追加するためのプロパティ.コンマ区切りで指定する.
keep.classesempty難読化の対象としないクラス名を正規表現で指定する.例えば,既知のクラスではない Main クラスなど.

Algorithm

  • クラス名やメソッド名などの参照先である ConstantUtf8 の内容を書き換える.頑張って書き換える.
  • 書き換えた ConstantUtf8 が ConstantString から参照されているとき,新たな ConstantUtf8 を追加し,元の文字列を加える.