jmark 1.3 に対するパッチ

Copyright (C) 1997-2004 by Haruaki TAMADA All rights reserved.
Last Modified: Mon Jan 10 11:07:30 JST 2005

jmark 1.3 に対するパッチ

はじめに

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 に私のパッチが 適用されました。透かしを入れられるインストラクションも追加されてるみたいなので、 私のパッチではなく、jmark-1.4.0 を入れた方が良いです。

ちなみに、configure で bad interpreter と言われる場合は autoconfconfigure を作り直しましょう。 こんな感じ。

$ autoconf

もちろん、

$ nkf -d configure > aaa ; mv aaa configure ; chmod 755 configure

configure を作り直しても良い。

ページのトップへ