M2の皆さんと、修論提出の打ち上げでピザを食べました。浮かれ気分も今日までですね、来週は発表練習です。
卒研生の人たちがやばそうです。その雰囲気に混ざって、ドコモの作業を進めていたら次の日になってました。何してるんだろ…俺。
卒論生達が大変そうだったので何か手伝おうと思ったのですが、スーパーバイザーたるいけじやhdk氏がいるし、特に仕事はなさそうでした。
ドコモのプログラムを進めてみたら結構めんどくさいことがわかってしまって、徹夜の作業になりました。これがミーティングの直前だったらやばかったなあ。今気づいて良かったか…。
出来たところメモ。fp-treeもどきの構築/解放、ファイルからの読み込み/保存、それとスタックリストの読み込みです。
腐れプロテクトに邪魔されずにマウスやキーボードをいじってみたくて、キーボードのフィルタドライバを書いています。ざっと見た感じでは、押したか離したかという情報やキーコードが取れているようです。
キーボードから来た情報は読めますが、新たに何かしたよという情報をどうやって作るのかイマイチわかりません。しかもアンロード処理がうまくないらしくて、フィルタドライバを削除した後にキーを押すとBoD します。これが俺クオリティ。
どうやらドライバを削除した後なのにI/O完了通知ルーチンに登録していた関数(IoSetCompletionRoutineでセットしたやつ)が呼ばれて、落ちているようです。
MSDNを見るとIoSetCompletionRoutineExなる関数があって、上記のようにドライバを削除する場合はこれを使え、とあります。しかし良く見るとWindows XP専用とあります。俺は2000なんだよ。惜しい、惜しいよ!
今日は時間切れなので、またいつか。
ブックマークに入っていて思い出したので、リンク張っておきます。QUOQのショートフィルム bunkatsu 全4話です。最初は頭おかしいって思ったけど、最後は頭良いなあって思いました。あまり書くとネタバレするので書きません。気になる方は見てくださいな。
DDKに付いているフィルタドライバのサンプルを見てみると、自分が書いているやり方と全然違いました。しかもクラスとかデバイスとか、色々別れていて良くわからんす。本買おうかなあ。
普通、キーボードフィルタドライバというと、全てのキーボードに対して作用しますが、自分の書いたドライバは 1つめのキーボードにしか作用しません。これだとフィルタドライバとは呼ばないんだろうな。しかしこれはこれで使い道が有りそうなので、取っておきます。
明日の発表練習に向けてスライドを作りました。発表は20分、スライドは26枚…完全に時間オーバーです。明日、練習前にまた直そう。
昼頃起きて、服を着替えたらずいぶんズボンがきつくなってて、これが噂のメタボ?とか思ったら、パジャマの上から着てました。ありえねー。
机の上の携帯を見ると不在着信があったので、かけ直しました。そしたら何を間違ったか、着信履歴の次のページにあった塚田氏にかけてしまった。これもありえねー。
当然ながら(俺)「電話の用件はなんでしょう?」(塚田氏)「いや、かけてませんよ?」(二人)「ええ??」という、全く意味のわからん会話となった。
会話終了後にちゃんと見たら、不在着信は非通知のワン切りでした。もうね、何も合ってない、そもそもかけてきた人すら合ってない。これが一番ありえねー。
しかしなぜか電話をかけたときは、塚田氏だと確信していたんだ…。むしゃくしゃしてやったわけではないが、今は反省している。
修論の公開延期願いという書類を出すことになりました。特許に絡むかも知れないからだそうです。
書類はWebに載っているのですが、リンク切れで落とせなかったため、F棟9階の事務(CS専攻事務)に聞きに行きました。そうしたら、え?そんな書類あった?とか言われて、あせりました。えぇー、提出先ここなんですけどー…。
んで、書類のリンク切れの件を話したら、技官さんに連絡が行ってすぐにリンクが復活しました。これはつまり今まで誰も出したことがない、ってことでファイナルアンサー?
大量に入った直しを反映しつつ、頑張って作ったよ!(`・ω・´)
明日隙を見て、スライドをチェックしてもらおうかな。
明日は修士論文の発表会です。自分の順番は一番目なので、会場の準備をしなければならないそうです。頑張って早起きします。
明日の修士論文発表を乗り切った後は、明後日のドコモミーティングのために作業しなければならないです。終わったのになんで…、ってちょっと暗い気持ちになりそうです。
質疑応答の時に突っ込まれてちょっと固まりましたが、無事に終了しました。学生生活に一区切り付いた感じです。
朝イチだったので事務にプロジェクタを借りに行ったら、返すときも同じ人が返さなきゃだめだと言われた。何それ。俺だけ最初から最後まで居なさいってか。
自分たちが使っていた部屋は15:40で終わりだったのでまだ良い方で、18:00までやっていた部屋は一体どうなっていることやら。偶然一番手だったというだけで、9時間も拘束(9:00〜18:00)され、挙げ句に事務やってないから次の日返しに行くなんて、おかしいよね?
作業を頑張りましたが、眠いので無理ぽでした。
やっぱり思い直して頑張りました。徹夜でござる。
国立科学博物館に行って、ものづくり展を見てきました。前のばけもの展が失敗感漂う感じで微妙だったのに対し、今回の展示は科博の本領発揮と言ったところでしょうか。面白かったです。
ニュースにもなっていた表面が磨かれたピッカピカの車もありましたよ。残念なことに時間が経ってしまって若干曇っていました。
工業製品の原料とか部品が多いのですが、車の部品、携帯の外装なども展示してあります。これらは身近にあるものですが、作るとなると結構複雑で難しいらしいのです。すげー複雑で細かい部品とか、何に使うのかわからなくても製品の形、材質を見て、これが一発で作れるか?と考えてみるとその技術力に感動します。
科学系の展示では珍しく、あちこちのパネルで「職人が〜」「熟練の技で〜」といったフレーズを見かけます。工作機械では到底なし得ない精度の加工も、熟練工がやれば一発というのは珍しくないようです。ものづくりには理屈じゃない技も必要ですね。
昼にキューバ料理の店に行こうと誘われて6号沿いのお店に行きました。そういえばキューバってどこだっけ?って思いながら店に入ったら、壁にでかでかと地図が書いてありました。ああそうか、カリブ海の島国でしたね。
料理は辛い物が基本らしいですが、店員さんに辛くないのありますかって聞いたらいくつか教えてくれました。その中から一つ頼んでみると、不思議な香りの肉野菜炒めが出てきました。なんのスパイスかわからないけど…、おいしかったです。
今年でつくばを離れてしまう阿部さんのための、送別会が開かれました。修論、卒論生のみなさん、発表お疲れ様でした。という労いの会も兼ねています。
場所は灯禾軒でした。飲み会にありがちな、ご飯が大量に余る状況にはなりませんでした。料理が少なかったのか、単にみんなおなかが空いていただけかな。最近のOS研ではM1の人々の就職/進学の話しで持ちきりです。さて、来年どうなっているやら?
2次会は横にあるじんぱちでした。酒を飲まなかったせいか、かなり安かったです。
3次会というか既に3人しかいなかったんですが、STEPで卓球とカラオケをしました。
某プロテクトを殺せないかと思って、変なドライバを書いてみました。結果を先に言うと、うまくいきませんでした。
某の動きを観察してみると、SSDTを書き換えているようです。具体的には、NtDeviceIoControlFile, NtOpenProcess, NtProtectVirtualMemory, NtReadVirtualMemory, NtWriteVirtualMemoryの5つ(2/14 NtWriteVirtualMemoryを追記)にフックを入れています(Windows2000の場合)。このやり口はもはやrootkit以外の何者でもないですね。
まずは単純に、正しいSSDTを記録しておいて、書き換えられた後に元の値に戻してやりました。ところが強制リセットがかかってしまい、駄目でした。
次にプロテクトが使っているフックルーチンの先頭を無条件near jmpに書き換えて、正しい位置に飛ぶように書き換えたのですが、Windowsがハングアップしてしまって、うまくいきません。
何か間違ってるのでしょうけど、いまいちわかりません。難しいですね…。
昨日に続き某プロテクトを眺めていたら、もう一つ発見しました。
Windowsではプロセスの構造体をActive Listという双方向?リストで繋いでいます。ところが腐れプロテクトはリストを壊して自分の前と後ろを繋いでしまいます。そうすることで自分は居ないかのように見せかけています。
しかしそのままではOSからも見えないため、実行されなくなります。そのため自分のプロセスが持っているスレッドを、適当なプロセス(恐らくID:8のSystemプロセスだと思います)に押しつけて実行させます(※)。
SSDTに加え、カーネルオブジェクト書き換えと来たもんだ…。このゴミプログラムは何やってくれてるんでしょうね、ほんと最低です。
(※)カーネルオブジェクト書き換えはFu rootkitというrootkitが使用しているそうです。
明日までに作ります、と言ってしまったものを作りました。すごい眠くてやる気が出ません。たくさん寝たのになぜだ…、もしや寝過ぎ?
MSDNにはカーネルモードドライバのサポートルーチンとして、スレッドを作ったときに通知される関数を登録するPsSetCreateThreadNotifyRoutineという関数と、通知関数を削除するPsRemoveCreateThreadNotifyRoutineという関数が載っています。
しかしWindows 2000にはPsRemove〜 がありません。じゃあPsSet〜 もないのかというと、なぜか存在します。なんだこの片手落ち。しっかり作れよ!!
仕方ないから自分で登録解除する方法を紹介します。
PspCreateThreadNotifyRoutineという配列に通知関数のアドレスが登録されているので、自分で登録した関数を探してNULLに変えます。さらにPspCreateThreadNotifyRoutineCountと言う変数をデクリメントすれば登録解除されます。
私の環境(Windows 2000 SP4最新パッチ適用済み)だと、0x80483200(RoutineCount) と0x804831a0(Routine) というアドレスで、Routineの配列長は8(合計32バイト)でした。
ドコモの方々と飲み会しましょうという話しが出ていたのですが、先生を始め皆様忙しくて予定が合わず、できずじまい。ところが今日は奇跡の日、皆さんの予定が合ったようです。
忘年会、新年会、歓迎会、送別会が全部一緒になった結果、通常の飲み会になりました。宴会の席で色々話しましたけど、やっぱりOS研って凄い人の集合だなってのと、ちょっと変わった人が多いなあと(自分も含めて)改めて思いました。もちろんそこは良いところですよ!
某プロテクトさんの姿をやっと拝めたかに見えたものの…?一瞬このような絵が出ますが、直後にOSがフリーズします。
GameMon.desという変な名前のプロセスが某プロテクトだと思われます。
あと、もう一つhiddenのプロセスがあるんですが、名前を見るに恐らくゲームのプロセスなので、どうでも良いです。というわけで、余計な部分は海苔で隠しておきました。
ちなみに同じ事をXPでやったらリセットがかかりました。BoDになってもリセットかけないように設定しているのに。某プロテクトが何か異常を検出したらリセットかけるようになっている、というのはさすがに考えすぎでしょうから、私のいじり方が悪くて吹っ飛んでるだけでしょう。
某プロテクトはあまりに手の込んだrootkitでして、簡単には戻せないんじゃないか、って気がしてきました。この手のものって戻したら戻したで何かおかしくなりそうですよね。
我が家のWindows XPのリモートデスクトップ接続のプログラム(mstsc.exe)がアップデートされ、バージョンが6.0.6000.16386になっていることに気づきました。XPなら5.1.xxxxのはずなので、バージョンだけ見るとVistaの一部に見えます。
Vistaになってリモートデスクトップのプロトコルが変わったのかなあ?rdesktopが動かなくなるとちょっと不便だな。
大下さんからチョコレートタルトとムースをいただきました。おいしかったです。
じょー、田口氏、大下さんとSTEPでビリヤードと卓球をしました。やはり卓球は楽しい。
STEPを後にして百香亭へ。晩ご飯の後は、大下さんの家で軽く飲んで解散しました。
以前、登録してちょっとやって放置していたトリックスター+ですが、修士論文が終わると同時にものすごい勢いでやっています。序盤はレベルが上がりやすいとは言え、2週間で40から80へと倍にしたのは、さすがにちとやりすぎだったかも知れません。
トリックスター+を始めたばかりの頃、研究室の皆さんを誘ったらあっさり断られたのに、今は自分を除く3人ほどがやっています。何らかの心変わりがあったのか…?
コアなユーザーには、Lineage(NC Soft) のようにバランスが良くゲームシステムが面白いものは売れます。しかし初心者にとっては、激難の難易度設定や洋ゲーを彷彿とさせる絵は近づきがたいものがあります。
日本にもLineageのようなMMORPGはたくさんありますが、あまり売れないのか大ヒットという話は聞きません。
そんな中、Ragnarok Online(Gravity、ガンホー) はマップだけ3Dで、キャラクターは2D(※) とし、難易度もかなり控えめにしました。これは韓国や日本で大人気を博し、国際版が作られるほどの人気ぶりでした。
ちなみに、洋ゲーの絵にならないように調整してある作品はまだまだあります。ただ、スクリーンショットを見ただけなので見た目からの判断です。詳しいことは知りません。
(※) Gravityのアークトゥルスというゲームに使われた手法だそうです。
卒業前にごたごたするのは嫌だったので、単位を一応確認しておきました。34.0単位、きちっと出てました。
研究室の皆さんと夢屋で夕食。いつもながら量が多いんだよなあ、って話をしていたら半ライスにすればいいのにって言われました。な!そんな裏技がっ!!
明後日のミーティングに向けて、実験用プログラムの実装をせかせかとやりました。でも終わらなかったので寝ます。
と、思ったのですがついトリックスター+を始めてしまったのが運の尽きでした。寝たのは結局朝の6時です。こんな怠惰な生活ができるのも後1ヶ月ですね。
いずれなる社会人に向け、今のうちから規則正しい生活に直して行きたいと…思うはずないよね〜。いつか強制的になるんだからさ。Let's怠惰生活です。
今日もドコモの研究用の実験プログラムを書いていました。一応できたので適当に走らせて結果を取り取り。
結果をExcelでグラフにしたら、X軸の数字(4桁)が勝手に3桁に切り詰められてしまいました。しかもフォントをいじるくらいでは直りません。Excelのグラフ機能は狂ってます。
うちのPS2は起動画面(最初のポワーン〜って鳴る画面)で電源ボタンを押したらリセットがかかりました。
でもゲームを始めてから、電源ボタンを押したら電源が落ちました。こういう仕様なのではなかろうか?
ドコモミーティングでした。3月で筑波を去るというのに、この山積みの仕事は一体何だろう。あと1ヶ月でどこまで終わるのか、そしてちゃんと引き継げるのか…。
引き継いでくれる方々に迷惑をかけない程度に頑張ろうと思います。
塚田氏とともに、がんこやに初めて行きました。メニューを見ると電気ラーメンという変わった名前のラーメンがあるので頼んでみたのですが、良く見ると横に小さい文字で「辛」って書いてありました。気づいたときは時既に遅し。
しかし電気ラーメンは思ったより辛くなくて助かりました。
唐辛子の辛さって痛いだけで味になってないので、入れるにしてもほんの少しにしてもらいたいものですね…。
田口氏を誘って、3人でSTEPに行って卓球しました。学類の体育で使った卓球ラケットを持って行ったのですが、手入れもせず放置していたため店のツルツルラケットと大差ない状態になっていました。せっかく買ったのにちょっと悲しいなあ。
散髪に行ってきました。頭はさっぱりしましたが、昨日今日の冷え込みに対しては逆効果だったようです。さ、寒ー!!
会社から指定されたe-learningの講座を終わらせました。e-learningはWeb上で出来て、送られてきたUser IDとパスワードを使って専用サイトにログインします。確認テストなんかもあって、見事にペーパーレスです。時代の流れだわ。
そのサイトはちょっと変で、ログイン後にログアウトができません。IEを終了させるか、一定時間放置すればセッション切れでログアウトされるとはいえ、明示的なログアウトができないのはさすがにおかしいでしょう。
ってことで、管理者の方に質問しておきました。さて何と返ってくるでしょう?
今日からYRPに出張です。いざ横須賀へ。借りたマシンへ無線LANのアドホックモードでつないでいるのですが、またしても無線LANの調子が悪いです。以前と全く構成が違うのになぜ…。
ホテルが値段の割にすごく広くて、いわゆるビジネスホテルのシングルルームの倍はあります。ソファーとテーブルなんかも置いてあって、もてあますくらい広いです。部屋がタバコ臭いのがいまいちだなー。
珍しく早起きしたせいか、へんな時間に眠ってしまい、夜中の3時に目が覚めました。この日記を書いたら、また寝ます。
いきなり寝坊して、昼前に研究所につきました。出だしから既に駄目な感じ。
横須賀って、昼はいかにも平和な地方都市でじーさんばーさんがその辺うろついてるだけなんですけど、夜は暗くて治安悪そうな雰囲気です。この落差は何だろう。やはり米軍の影響か。
未来日記を書いてしまった。防止策か削除できる仕組みを作らねばまたやってしまうなあ。と、前にもこんなことを書いたけど、結局何もしていない。
今使っているノートPC(NEC VersaPro UltraLite)は研究室からの借り物なので、4月になったら返さなければいけません。就職先へ引っ越すときのゴタゴタで、しばらくデスクトップも使えなくなると予想されます。ネットがないのは仕方ないとしても、PCがないのはちときついでしょう、ってことでノートPCを新しく買いました。
買ったのはSONYのVAIO type Gです。新型VersaProとLet's Noteあたりと結構迷いました。どれも捨てがたいです。
VersaProはCPUがCore Duoです。現行VersaProの1.8インチHDDは遅すぎなので、2.5インチHDDを選べるのは良い点です。キーボードのキーが正方形なのがGoodです。
メモリを2GBにできないのがマイナスと言えばマイナスですが、3機種の中で一番バランスが取れていると思います。
Let's NoteもCPUがCore Duoで、14時間という抜群のバッテリー駆動時間を誇ります。速度重視で2.5インチHDDを採用しています。Let's Noteのスペックが一番好感触でした。
メモリが2GB積めず、キーは正方形ではないです。製品には文句無いのですが、将来Let's Noteを使うだろうことが容易に予想できたので、別の製品を選びました。
VAIOはメモリが2GBまで積めます。あとギガビットイーサが使えます。3機種中最軽量なのと、天板が平らで持ち運びがスムーズにできるデザインが一番の魅力です。
CPUがCore Soloで、HDDが1.8インチなのでかなり遅そうです。これは大きなマイナスポイント…。それとキーが正方形ではありません。
VersaProがボンネット構造をやめるか、VAIOのHDDが2.5インチだったらパーフェクトだったんだけど、どのマシンも限界ギリギリまで作りこんでるから簡単には行かないんだろうなあ。
私も含めて日本人は軽くて小さいPCが大好きなので、メーカーさん、これからも頑張ってください。