2012年8月20日月曜日

ProGuardによるライブラリとしてのJARの難読化(1)

ProGuardすごいですね!それほどでもない。
と思ってたけどよく見たらGUIがあるじゃん、ということでやる気回復したので、
ちょっと試してみることにした。

経緯としては
  • 自社製コンポーネントをライブラリとして社外提供するお仕事発生
  • Javaでライブラリ提供とか、ソースコード丸見えも同然じゃないか…
  • EclipseでProGuard使ってたんだから、アレで難読化出来ないかな? -> 無理でした。
  • StackOverflow見たけどやっぱり「JARの難読化は出来ねえよ!」って書いてある
  • アイエエエ…
で、一度はあきらめてた。
成せばなるんだからぁ…ということで、他の難読化ツール使えないかと調べ直し。

世の中にどんな難読化ツールがあるかというのは以下のページにまとめてありました。

  • http://d.hatena.ne.jp/second_sky/20051220/1135052529
  • http://web.archive.org/web/20100430134447/http://cafebabe.jp/item/7
上のは「難読化(obfuscation)」ツールだけをまとめたリンク。
下のはクラスファイルの暗号化とか最適化とかのツールもまとめてあります。感謝。

で、お金掛かる奴はややこしいので今回はパスということで、フリーで使えそうなのは
この二つかな。
ProGuardはおなじみのアレ。EclipseでAndroid開発やってたら最近ははじめから使える奴。
二つ目はよくわからないけどabsolute free!とか書いてあるのでフリーですね。
結局使わなかったのでこれは置いておきます。

で、ProGuardを良く見直すと、当然ながら単体でも利用可能な訳ですね。
というわけで落としてきて解凍すると「proguardgui.jar」などというファイルが。
これを
java -jar proguard.gui.jar
とやって起動してみたら見事にGUIが立ち上がりました。GUIヤッター!
コマンドラインでもまぁEclipseで使ってるような設定ファイル書けば使えるんだろうけど、書式調べるのがめんどくさいのよね…。
というわけでおとなしくProGuardを使ってライブラリJARを難読化してみることにしました。
これで冒頭に戻ってきました。

 具体的な使い方は次回に詳しく書くとしましょう。
-> ProGuardによるライブラリとしてのJARの難読化(2)

0 件のコメント:

コメントを投稿