たまにっき。 / 2004-08
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12
2004-08-31 Tue
■ もう 8 月も終わり
今年はまだ夏休みを取っていないぞ。
今週末にクマモモと飲みに行くので、そのついでに実家に帰ろうかな。
■ 家のマシンで開発をしていると
本当にイライラする。
maven jar
とするだけで 1 分半ほどかかるのだ。
コンパイルエラーのメッセージを見るだけで 1 分半。
もう駄目だなぁこのマシン。
2004-08-30 Mon
■ Constant_Pool を参照するもの
Constant_Pool 内
- constant_class_info#name_index
- constant_string_info#string_index
- constant_fieldref_info#class_index
- constant_fieldref_info#name_and_type_index
- constant_methodref_info#class_index
- constant_methodref_info#name_and_type_index
- constant_interfacemethodref_info#class_index
- constant_interfacemethodref_info#name_and_type_index
- constant_name_and_type_info#name_index
- constant_name_and_type_info#descriptor_index
ClassFile
- ClassFile#this_class
- ClassFile#super_class
- ClassFile#interfaces
field_info
- field_info#name_index
- field_info#descriptor_index
method_info
- method_info#name_index
- method_info#descriptor_index
attribute_info
- attribute_info#attribute_name_index
- sourcefile_attribute_info#sourcefile_index
- constantvalue_attribute_info#constantvalue_index
- exceptions_attribute_info#exception_index_table
- inner_class_attribute_info#inner_class_info#inner_class_index
- inner_class_attribute_info#inner_class_info#outer_class_index
- local_variable_table_attribute#local_variable_info#name_index
- local_variable_table_attribute#local_variable_info#descriptor_index
instruction
・・・調査中
■ 難読化
ツールがほぼできたので,ClassInformation を難読化してみた.
VerifyError が発生する.
しかし,org.apache.bcel.verifier.Verifier では warning が出るものの,verify が通る.
org.apache.bcel.verifier.NativeVerifier では以下のエラーメッセージ.
NativeVerifier: LinkageError encountered on 'com.oikaze.tama.classinfo.ClassInformation'.
java.lang.VerifyError: (class: com/oikaze/tama/classinfo/ClassInformation, method: parseClassFile signature: (Ljava/io/File;)Lorg/apache/bcel/classfile/JavaClass;) Wrong return type in function
返り値の型が間違っているって言われても・・・.
あっ,そっか.オペランドスタックに積まれている型と返り値の型が違うのか.
そっかそっか.areturn の前に checkcast すれば解決できた.
2004-08-29 Sun
■ orkut にて
友人リストにアメリカ・ニューヨークの女性がいるのだが、その彼女の友人リストの
マヌエラからメッセージが届いた。
が、イタリア語らしく、全くわからない。
orkut の profile 欄に理解できる言語という項目も欲しいなぁ
■ JustIce
BCEL の org.apache.bcel.verifier.Verifier は
JustIce という名称らしい。
SoftIce とかけているのか?
■ 月光ゲーム

読んだのは 2 度目なのだが、学部 3 回生か 4 回生の時だったので全く覚えていない。
火村&アリスシリーズより面白いなぁ、学生アリスシリーズは。
という印象しか覚えていない。
妙にノスタルジックな感じ。
■ Cω なるものがあるらしい.
via javanews.jp
Cω is an extension of C# in two areas:
- A control flow extension for asynchronous wide-area concurrency (formerly known as Polyphonic C#)
- A data type extension for XML and table manipulation (formerly known as Xen and as X#)
新しい言語を作る理由になるほどのもんなのかなぁ.
■ Galshell
via Y's Memo
セクシャル亜空間シューティングゲーム
らしい.といっても,グロ系の横シュー.
■ invokespecial に関してちょっと勘違い
今まで私は invokespecial はコンストラクタの呼び出しのみに使われるものだと思っていたのだが,
それだけじゃなかったようだ.
invokespecial で呼び出されるべきメソッドは
- インスタンス初期化メソッド (<init>)
- thisオブジェクトのprivateインスタンスメソッド
- superオブジェクトのインスタンスメソッド
なぜ,インスタンスメソッドなのに,invokevirtual で呼び出されないのだと困って,
調べてみると,こうですか.
暗黙的に思いこむのはダメだな.
2004-08-28 Sat
■ maven jar で作成される jar ファイルの manifest に Class-Path エントリを追加する
できた。
cvs -z3 -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic co maven-plugins
でチェックアウトし、maven-plugins/jar/plugin.jelly を見て解決。
project.properties に
maven.jar.manifest.classpath.add=true
の一行を追加。
んでもって、project.xml の project/dependencies/dependency を以下のようにすれば良い。
<dependency>
<groupId>bcel</groupId>
<artifactId>bcel</artifactId>
<version>5.1</version>
<url>http://jakarta.apache.org/bcel/</url>
<properties>
<jar.manifest.classpath>true</jar.manifest.classpath>
</properties>
</dependency>
これで解決と思いきや、MANIFEST.MF の Class-Path エントリに改行が入っている・・・。
しかも、中途半端なところで切れてるし。
そして、依存ライブラリを同じディレクトリに置いておかないといけないし。
どうやら、Class-Path エントリが途中で切れていても問題はないようだ。
同じディレクトリに依存ライブラリを置けば
java -jar hogehoge-version.jar
で動いた。
■ Java プログラムの難読化
実験するためのプログラムがだいぶ出来上がった.
後は大規模なプログラムを難読化してみて,動くかどうかだな.
まぁ,この研究テーマのためにバイトコードをいじくったり,
デコンパイルしてみたりしているので,近いうちにまた Tips が増えるかも.
■ Jad - the fast JAva Decompiler
Jad ってスタックをいろいろいじくったクラスファイルはちゃんとデコンパイルできないのね.
dup2_x1, pop, pop, swap なんかを連続で使っていると,バイトコードがほぼそのまま出てきた.
■ オペランドスタックからオブジェクト参照の削除
オペランドスタックに
arrayref
arrayref
value
arrayref
arrayref
というものが積まれているとき,POP2 を使って上の arrayref 二つを消そうとした.
Verify エラーになった.
POP, POP と POP を 2 回使うと Verify エラーが起こらなかった.
仕様を見てみると,
POP2 は 2 ワードのデータか,もしくは 1 ワードのデータ 2 つに対してのみ使える
とある.
なぜだ.まぁ,POP 2 回で解決してるからいいけどさ.
Java仮想マシン仕様 (pp.264) で確認.
残念ながら,第1版の方.
使った Verifier は BCEL の org.apache.bcel.verifier.Verifier
2004-08-27 Fri
■ Maven
最近,maven を使っているのだが,manifest.mf の Class-Path エントリに
dependencies のパスを入れたい.
しかし,やり方がわからん.
maven.dependency.classpath やら maven.jar.manifest.classpath.add が
それっぽいのだが,project.properties に書いても,project.xml の
dependencies/dependency/properties に書いても,反映されん・・・.
ドキュメントも整備されていないし,だから maven 嫌い.
2004-08-26 Thu
■ java.net
DonQuixote で利用しているのだが、
SourceForge と違って、活発なプロジェクトをすぐに参照できないのが
困ったところかな。
2004-08-25 Wed
■ 方舟は冬の国へ

最後の終わり方が良いねぇ。
ただ、冬の国というのがどこかわからない・・・。
候補はいくつかあるのだが、それを絞り込む要素がわからない・・・。
■ Walking Tour
via ishii-kのChangeLog日記
学部時代にお世話になった先輩を思い出してちょっとしんみり。
■ 第46回プログラミング・シンポジウム
参加することにした.
出す内容は新しいテーマである Java プログラムの難読化.
発表申込締切: [2004-10-15]
原稿提出締切: [2004-12-10]
日時: [2005-01-11]〜[2005-01-13]
温泉,温泉.
2004-08-24 Tue
■ 東方永夜抄 〜 Imperishable Night
Extra クリアしますた.
でも,安定しないスペルが多いなぁ.
リプレイデータ
2004-08-23 Mon
■ ISFST 2004
レビューワのコメントがねぇ.
しかもレビューワ一人だけかよ・・・
採択率は
We received 119 paper and 3 proposal submissions, and accepted total 48.
だそうな.
48/119 = 40.336%
2004-08-22 Sun
■ ISFST 2004
accept キタ━━━━(゚∀゚)━━━━!!
[2004-10-20]〜[2004-10-22]まで、西安に行ってくると思います.
final manuscript は [2004-09-19] まで.
2004-08-21 Sat
■ DonQuixote
ページをアップデートしてみた。
ちなみに、oikaze のページじゃなくて、java.net のページ。
新しい研究テーマの実装として、新たに 1 から作るより、これのプラグインとして
作った方が楽そうだから、というのが更新の理由なんだが。
■ いろいろ
- 標準化進む新スクリプト言語“Groovy”
使ってみよう使ってみようと思いながらも,まだ手を出していない.
- jvmstat を使ったパフォーマンス測定
via わんこ日記
日・英両方の SDC に登録が必要.
んー,スクリプトが変だぞ.cygwin に対応していないので,適当に書き換える・・・.
■ misc
- sl の「もう来ねえよ!!」版。
via TokuLog!
早速インストールしてみたり.
- iPod Robot
via 安藤日記
ちょっと欲しくなってみたり.
2004-08-20 Fri
■ 新しいマシン
買おうかなぁ。買うとしたら、やっぱり、Windows マシンかなぁ。
PBG4 の小さい奴も欲しいけど、それだと、やっぱり、使い勝手が限られるからなぁ。
いや、Mac だと、Office を別に購入しないといけないのが嫌なので。
某大学の資料はほとんど PowerPoint や Excel なので、
家で見られないと困る、ということで。
ただ、マシンを買うと、車が買えないなぁ。困ったもんだ。
前に乗っていた車は、故障が激しく、車検通すのにお金がかかり過ぎたので廃車にしたのだ。
■ 東方永夜抄 〜 Imperishable Night
ちなみに、Easy は楽勝でクリア。Normal は調子良ければクリア可能。
Stage 4 のボスが鬼門。
Hard 以上は 1 回しかやっていないのだが、パターンが掴めていないので、
多分ノーコンティニューではまだ無理だろうな。
妖々夢の自キャラはミサマリだったが、今回は霊夢&紫。時々レミリア。
同人ゲームにそこまで求めるのも辛いかもしれんが、業務用なら、組合せ自由だったんだろうな。
2004-08-19 Thu
■ 奇跡体験アンビリーバボー
伝えたい思い。
大橋弘枝さん。聴覚障害者とは思えない。カッコイイ女性ですね。
2004-08-18 Wed
■ クラスファイル情報出力ツール
非常に安直な,クラスファイルの情報を出力するプログラムを作ってみた.
作ってみたっても,出力形式は bcel まかせで,オプション解析もしてないので,
適当なプログラムになっている.
javap -c でも出力されないコンスタントプールの情報も出力される.
使い方.
java -jar lib/classinfo.jar SomeClass.class
■ jakarta-commons digester
<root>
<properties>
<property>
<name>name</name>
<value>value</value>
</property>
</properties>
</root>
のようなもので,java.util.Properties にセットしたい場合,xmlrule は以下のように書けば良いようだ.
<digester-rules>
<object-create-rule pattern="root" classname="java.util.Properties" />
<pattern value="root/properties/property">
<call-method-rule methodname="setProperty" paramcount="2"/>
</pattern>
<pattern value="root/properties/property/name">
<call-param-rule paramnumber="0" />
</pattern>
<pattern value="root/properties/property/value">
<call-param-rule paramnumber="1" />
</pattern>
</digester-rules>
たったこれだけを調べるのに 2 時間ほどかかった.
call-method-rule の属性の methodname を methodName としていたのではまっていたのは内緒.
2004-08-17 Tue
2004-08-15 Sun
2004-08-14 Sat
■ 今日はラーメンを食ってきた。
研究室のボスと 無鉄砲 本店 へ。
とんこつラーメン、餃子、ビールを食す。無料で食べられるタカナもうまかった。
■ ISTC 2004
出す気は今も全くないが、
[2004-02-18-2] の IASTED で喋った人から投稿のお願いが 6 月にあったのだ。
で、研究室の先輩から、南アフリカ情報を手に入れた。
ヨハネスブルグにて
・軍人上がりの8人なら大丈夫だろうと思っていたら同じような体格の20人に襲われた
・ユースから徒歩1分の路上で白人が頭から血を流して倒れていた
・足元がぐにゃりとしたのでござをめくってみると死体が転がっていた
・車で旅行者に突っ込んで倒れた、というか轢いた後から荷物とかを強奪する
・宿が強盗に襲撃され、女も「男も」全員レイプされた
・タクシーからショッピングセンターまでの10mの間に強盗に襲われた。
・女性の1/3がレイプ経験者。しかも処女交配がHIVを治すという都市伝説から「赤子ほど危ない」
・「そんな危険なわけがない」といって出て行った旅行者が5分後血まみれで戻ってきた
・「何も持たなければ襲われるわけがない」と手ぶらで出て行った旅行者が靴と服を盗まれ下着で戻ってきた
・中心駅から半径200mは強盗にあう確率が150%。一度襲われてまた教われる確率が50%の意味
・ヨハネスブルグにおける殺人事件による死亡者は1日平均120人、うち約20人が外国人旅行者。
ヨハネスブルグ面白マメ知識
●ヨハネスブルク警察は、夜間この街を運転する際は「信号は無視し、
極力停車しないように」との通達をドライバーに出しているのだそうだ。
●「(赤信号で走って)人が前に出てきたらどうするんだ」の問に対する警察の答えは、
「ひき殺して走り去れ」だったらしい。
●電車、バス、ミニバス等の公共交通機関は絶対に利用してはいけないというお達しが来てる。
ヨハネスブルグ〜プレトリア間に関しては「乗客全員が強盗だった」例が報告されている。
●殺人事件はニューヨークの十倍、レイプは24秒に一回。
この町の女性の三人に一人はレイプの経験があると言われている
だそうな。絶対行きたかねぇ。
2004-08-13 Fri
■ 昨日に続いて
今日も飲みに行く。今日は研究室のボスと一緒に焼肉を食ってきた。
うまかった。で、おなかいっぱい。
■ 「明日実家に帰るよ」と親に連絡.
すると,
帰ってくるのはいいけど,田舎行ってるから家に誰もおらへんよ
とのこと.orz
止めだ止め.
■ SCORM
SCORM 規格のダウンロードをしようと上記ページに行く.
必要事項を入力し,ダウンロードボタンを押すも,名前が入力されていないと言われる.
何がおかしいんだろうとソースを見ると,JavaScript・・・.
form の一つがコメントアウトされているので,form インデックスが違っているみたい.
仕方ないので,ソースをダウンロードし,ちょいちょいと書き換えてダウンロードした.
■ Sandmark
バージョン 3.4 ができたよー
というメールが来た.早速ダウンロード&コンパイル.
はぁ,またコンパイルできない・・・.
ちょっとやる気が出ないので,Sandmark を動かそう の更新はもう少しあとで.
2004-08-11 Wed
2004-08-10 Tue
■ 新たなテーマに行き詰る
やっぱり難しいか.Java の Watermark は色々な手法が提案されているからなぁ.
攻撃に対する耐性を考えると,結構難しい.
攻撃に弱いのだったらと,ステガノグラフィを考えても,今度は埋め込める量が問題になる.
まぁ今は,別のテーマを新たに考えた.
■ いろいろ
- Java で Flash
via Y's Memo
- Java Technology Concept Map
via わんこ日記
印刷したけど,文字が小さすぎて見られへん・・・.
2004-08-09 Mon
■ スト3
via Miyabi's Diary
Here is a video of..." の "Here" をクリックしてダウンロード
神だ。ブロッキングがすげぇ。
■ 数学的計算による世界最高のホラー映画は「シャイニング」
via 数学的計算により世界最高のホラー映画を決定 (slashdot.jp)
胡散臭いなぁ.
とあるけど,それぞの単位は何なんだ?
■ ステレオグラム暗号
via deal break
この暗号を読んでいる時の顔は人に見られたくはありません.
ref. ASCII Stereograms

