jmark という Java の クラスファイルに電子透かしを入れるツールを奈良先端科学技術大学院大学の門田先生が 公開されています.
しかし,この jmark,メソッドをインデックスでしか指定できません. 「メソッド名で指定できたらいいのにな」ということでこの jmark に手を入れることにしました.
パッチを当てるには http://se.aist-nara.ac.jp/jmark/ から jmark-1.3.tar.gz をダウンロード. そして,パッチ をダウンロード. パッチと jmark 本体(tar.gz ファイル) を同じディレクトリに置き,以下のコマンドを実行.
$ gzip -cd jmark-1.3.tar.gz | tar xvf - $ cd jmark-1.3 $ patch -p1 < ../enable_methodname-1.3.patch $ ./configure $ make $ su # make install
これでパッチが当たります.
使い方は次の通り.
jmark version 1.3
Copyright (C) 1997-2002 Akito Monden
Usage: jmark target_file(.class) method "watermark" [options]
target_file: watermarking java class file
method: method name or index
watermark: watermark phrase
Options: -k"....": key phrase
-a0...2: algorithm (default = 0)
-d: disassemble
例えば,SampleApplication というクラスの
actionPerformed メソッドに
pakurunayo という透かしを暗号キー osienai
で入れたい場合は以下のコマンドを実行します.
$ jmark SampleApplication actionPerformed pakurunayo -k osienai
実際に actionPerformed に透かしを入れるとアプリケーション本体が 動かない場合が多いので透かしを入れるなら別のメソッドにしましょう.
メソッド名で透かし対象のメソッドを決めることはできますが, メソッドオーバーロード(メソッド名が同じで引数が違う)には対応していません. もし,透かしを入れる対象のメソッドがオーバーロードされていた場合, 最初に宣言したメソッドに対して透かしが入れられます.
今後の予定は「jmark-1.3.1 に対するパッチも作ろう」です.
jmark-1.4.0 に私のパッチが 適用されました。透かしを入れられるインストラクションも追加されてるみたいなので、 私のパッチではなく、jmark-1.4.0 を入れた方が良いです。
ちなみに、configure で bad interpreter と言われる場合は
autoconf で configure を作り直しましょう。
こんな感じ。
$ autoconf
もちろん、
$ nkf -d configure > aaa ; mv aaa configure ; chmod 755 configure
で configure を作り直しても良い。
| コンテンツ |
|---|
| リンク |
| おしながき |