逆コンパイルの防止

さて、前回(2007/12/13)の日記でJavaが逆コンパイルできることは書きましたが、
コンパイル防止することってできるの?と思い調べたところ
元のソースから構造、変数名等を隠してくれる難読化ツールがあるということが分かりました。
Javaの場合、ProGuardというツールがあります。

使用方法:(かなり大雑把です)
1.ダウンロード
  上のリンクのdownloadページからzipファイルをダウンロードして解凍します。
2.ProGuardの起動
  解凍してできたlibフォルダのproguardgui.jarが実行ファイルになります。
  コマンドプロンプトから
  proguardgui.jarを実行しProGuardを起動します。
3.入出力ファイルの設定
  input/outputボタンを押し、難読化対象のjarファイルと難読化後のjarファイルを指定します。
4.難読化対象jarで使用しているライブラリの設定
  input/outputの画面の下にあるLibrary jars,wars,ears,zips,and directories
  のウィンドウに使用しているライブラリファイルを追加します。
  作成したjarで、antやspringなどを使用している場合は、そのjarをこのウィンドウに追加します。
5.shrinking Keep の設定
 難読化対象ファイルの設定?かな。デフォルトでApplicationsにチェックされていますが、offにして
 Libraryにチェックを入れます。
 mainメソッドがあるjarの場合は、Applications,Libraryのチェック両方OKでした。
 そのjarの内容によってチェック位置を変える必要があるということのようですね。
6.実行
 Processボタンで実行画面を表示し、Process!ボタンで実行すると難読化されたjarができます。

と、ここまでが使用方法になりますが、細かい設定が全然分かりません。
一応これでできましたが、沢山設定がありすぎて何がなにやら・・・。


まぁ、難読化することなんてないだろうなぁ。とは思いつつ。