- PR -

class、JSPの解析防止について

投稿者投稿内容
びしばし
大ベテラン
会議室デビュー日: 2002/03/13
投稿数: 181
投稿日時: 2005-06-17 10:52
話題に便乗して。

先日私が逆コンパイルしたものは、同じシグネチャのメソッドが複数あって再コンパイルできないソースが出てきました。
デコンパイラがおかしいのか、そういう難読化ツールがあるのかわかりませんが、前者はあまり考えづらいのです。そのような難読化ツールなら私も使いたいのですが、どなたかご存じありませんか ?

(ちなみにデコンパイラは「DJ Java Decompiler」です。Jar 丸ごとデコンパイルできるので重宝してます。)

もちろん、そのプログラムは逆コンパイルの許諾をもらってます
カーニー
ぬし
会議室デビュー日: 2003/09/04
投稿数: 358
お住まい・勤務地: 東京
投稿日時: 2005-06-17 11:02
引用:

びしばしさんの書き込み (2005-06-17 10:52) より:
先日私が逆コンパイルしたものは、同じシグネチャのメソッドが複数あって再コンパイルできないソースが出てきました。
デコンパイラがおかしいのか、そういう難読化ツールがあるのかわかりませんが、前者はあまり考えづらいのです。そのような難読化ツールなら私も使いたいのですが、どなたかご存じありませんか ?

(ちなみにデコンパイラは「DJ Java Decompiler」です。Jar 丸ごとデコンパイルできるので重宝してます。)

もちろん、そのプログラムは逆コンパイルの許諾をもらってます



逆コンパイルエンジンにJadを使っていると書いてありますが、逆コンパイルしようとしているファイルはJDK1.4でコンパイルされていたりしませんか? Jadって1.3までしか対応していないようなんですが。

自分はこれで困ったことが多々あります。

1.4対応の逆コンパイラがあればぜひ教えていただきたく。(さらに便乗)
raystar
ぬし
会議室デビュー日: 2003/01/16
投稿数: 251
お住まい・勤務地: Tokyo/Japan
投稿日時: 2005-06-17 11:33
引用:

また、難読化後のclassファイルの実行パフォーマンスは元のclassファイルより、落ちるのではないでしょうか。



技術的な根拠、証拠なしに自分の予想でいってしまいました。
ご迷惑おかけします。
びしばし
大ベテラン
会議室デビュー日: 2002/03/13
投稿数: 181
投稿日時: 2005-06-17 12:09
引用:

カーニーさんの書き込み (2005-06-17 11:02) より:

逆コンパイルエンジンにJadを使っていると書いてありますが、逆コンパイルしようとしているファイルはJDK1.4でコンパイルされていたりしませんか? Jadって1.3までしか対応していないようなんですが。

自分はこれで困ったことが多々あります。

1.4対応の逆コンパイラがあればぜひ教えていただきたく。(さらに便乗)



なんと...たったそれだけのことだったんですね。脱力。
情報ありがとうございました。

同じく1.4/1.5対応の逆コンパイラがあるなら私も欲しいです。

...ん、ということは現状は1.5で難読化すると解析/再利用されない ?

[ メッセージ編集済み 編集者: びしばし 編集日時 2005-06-17 12:12 ]
シュン
ぬし
会議室デビュー日: 2004/01/06
投稿数: 328
お住まい・勤務地: 東京都
投稿日時: 2005-06-17 12:42
「Java Obfuscator」で検索をかければいろいろ引っかかってきそう
ですよ。JDK1.5対応のものも存在するようです。
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2005-06-18 12:47
引用:

raystarさんの書き込み (2005-06-17 11:33) より:
引用:

また、難読化後のclassファイルの実行パフォーマンスは元のclassファイルより、落ちるのではないでしょうか。



技術的な根拠、証拠なしに自分の予想でいってしまいました。
ご迷惑おかけします。



PreEmptive 社の Dash-O という Java 難読化製品を調べたことがあるので補足します。
このスレッドで技術面からの話題では識別子(クラス名、メソッド名、フィールド名、変数名)の難読化が主になっているように読みましたが、難読化には文字列定数の暗号化(バイナリダンプによるメッセージ解析の防止)と参照時の復元、アルゴリズムの難読化(.class ファイルの中に絶対実行されないコードを埋め込む)も含まれます。

展示会で説明員の方に後者二点でのパフォーマンス低下について尋ねたところ、識別子難読化についてはほとんどオーバーヘッドが発生しないが、特にアルゴリズムの難読化では 1〜2% 前後の速度低下が見られると聞きました。

raystar さんがここまでご存知の上書き込まれたのではないと思いますが、利点ばかりでなくデメリットにも目を配る姿勢は良いと思いますよ
未記入
常連さん
会議室デビュー日: 2005/05/24
投稿数: 48
投稿日時: 2005-06-18 13:13
どもども
なるほどー勉強になります
未記入
常連さん
会議室デビュー日: 2005/05/24
投稿数: 48
投稿日時: 2005-06-22 18:24
どもども

使った事ないですけどこんなのもあるようです。
参考になれば幸いです。

逆コンパイル防止ツール
Java Code Protector
URL http://www.chainkey.com/en/jcp/
バージョン 1.2.0
提供 チェインキー
対応Java環境 JDK 1.3.x/1.4.x
対応OS Windows 98/NT/2000/XP、Linux、Solaris、Mac OS X
価格 50ドル(試用版あり)

※参考URL
http://www.javaworld.jp/freesoft_and_shareware/-/10261.html#soft_10261

スキルアップ/キャリアアップ(JOB@IT)