2005-10 << 2005-11 >> 2005-12

2005-11-11 (金)

*

朝起きたけど,寒いので大学に行くかどうか迷う.迷っているうちにOSの授業が始まる時間になったので,行くのは止めて少しプログラムを書く.で,部屋が寒いので,やっぱり途中から授業に出る.

*授業::オペレーティングシステム

とりあえず,授業中はプログラムを書く時間ということに.ローカルのPCでWinnyを立ち上げて,自分で書いたプログラムを接続してみる.……何も問題なく接続できました.殆どのコマンドは受けるだけで,そのまま捨てますが….

「Winnyの技術」に載ってるプロトコルの詳細はなかなか役立ちました.今まで何だか分からなかったバイト列の意味がほぼ分かりました.

通信の中身を見てて気付いたのは,上流側に検索条件付き拡散クエリが殆ど送られないことかな.偽Winny側で接続を受け付けて本物のWinnyで検索しても,クエリは届かない.これはどういう意味だろう.もちろん,検索が出来ないわけではないけど.あとは,トリップを空のまま検索したときに,先頭にヌル文字を入れただけなので,直前に入力されてたトリップが先頭の文字以外分かることくらいかな.

……という夢を見ていたような気がします.

*授業::コンピュータ通信

もうちょっと,偽Winnyを弄る.検索キーワードや流れているキーの情報の一部を表示するように.キー情報のファイル名は2重に暗号化されているので,どうにかしないと.どうも実際のファイル名より2バイトデータが長くなってるので,先頭か最後にキーが入っているようです.多分アルゴリズムはRC4ですが,先頭と最後の2バイトを使って復号化できないか試しても駄目でした.1バイトはヌル文字ということもあり得るか.

Winnyを逆アセンブルしたソースって何処にやったかな.見つからない.通信系のかなりの部分をCで書き直したものがあったはずなのだけど.もう同じ作業はやりたくない.

…と思ったのですが,適当にUpフォルダに色々なファイル名のファイルを置いて,検索時のデータを眺めていたら,先頭の2バイトと元ファイル名の文字列長に何らかの相関関係があるような…….これはもしやと思ったら,ビンゴ.キャッシュの暗号化の時と同じことをやってますね.

というわけで,検索リンク上を流れているデータは殆ど処理できるようになりました.一応,検索も掛けられるけど,まだちょっと怪しい.前作ったノードリストの復号化プログラムもあったので,適当にノードリストを突っ込んで暫く実際のWinnyネットワークに繋いでみる.流れているデータが凄いですね.色々な意味で.

……というのは授業中に見た夢だった気がしないでもないです.

*小学校

夕方は,小学校にロボットを搬入して会場を作って動作確認.というか,フィールドごと運ぶの大変でした.明日は本番.今度こそ,これが終わったらロボットを解体しよう.

ロボ研のK君がピアノを弾けるのは聞いていましたが,上手い….

*構造体

ネットワーク経由で構造体のやり取りをしていると,htonlやntohlの羅列が見苦しくなる.文字コードやバイトオーダを変換したり,実際の文字列のサイズに合わせて構造体の余分な部分を切り詰めたりその逆の作業が面倒くさい.構造体中の同じ型のメンバ全てに特定の処理をするマクロが書けたりすると嬉しいかもしれない.あと,ある変換の逆変換をする関数も自動で作ってくれたりしてくれれば尚うれしい.

扱うデータ構造をプログラム本体と分離できる言語ってあるかなぁ.オブジェクト指向なら隠蔽できるとはいっても,オブジェクトの中を書くのも人間なわけで….

*時間

時間が全然足りない.もっと本を読みたいし,もっと寝たいし,もっと勉強しなきゃだし,もっとプログラム書きたいし,もっと何もしないでいたい.

CGとネットワークの課題を1ヶ月分溜めてますが,いつやろう.OSの課題もあるし,データベースも溜めてたような.あれ?マイコンのプレゼンの内容っていつまでだっけか.

2005-10 << 2005-11 >> 2005-12