以前、登録してちょっとやって放置していたトリックスター+ですが、修士論文が終わると同時にものすごい勢いでやっています。序盤はレベルが上がりやすいとは言え、2週間で40から80へと倍にしたのは、さすがにちとやりすぎだったかも知れません。
トリックスター+を始めたばかりの頃、研究室の皆さんを誘ったらあっさり断られたのに、今は自分を除く3人ほどがやっています。何らかの心変わりがあったのか…?
コアなユーザーには、Lineage(NC Soft) のようにバランスが良くゲームシステムが面白いものは売れます。しかし初心者にとっては、激難の難易度設定や洋ゲーを彷彿とさせる絵は近づきがたいものがあります。
日本にもLineageのようなMMORPGはたくさんありますが、あまり売れないのか大ヒットという話は聞きません。
そんな中、Ragnarok Online(Gravity、ガンホー) はマップだけ3Dで、キャラクターは2D(※) とし、難易度もかなり控えめにしました。これは韓国や日本で大人気を博し、国際版が作られるほどの人気ぶりでした。
ちなみに、洋ゲーの絵にならないように調整してある作品はまだまだあります。ただ、スクリーンショットを見ただけなので見た目からの判断です。詳しいことは知りません。
(※) Gravityのアークトゥルスというゲームに使われた手法だそうです。
大下さんからチョコレートタルトとムースをいただきました。おいしかったです。
じょー、田口氏、大下さんとSTEPでビリヤードと卓球をしました。やはり卓球は楽しい。
STEPを後にして百香亭へ。晩ご飯の後は、大下さんの家で軽く飲んで解散しました。
我が家のWindows XPのリモートデスクトップ接続のプログラム(mstsc.exe)がアップデートされ、バージョンが6.0.6000.16386になっていることに気づきました。XPなら5.1.xxxxのはずなので、バージョンだけ見るとVistaの一部に見えます。
Vistaになってリモートデスクトップのプロトコルが変わったのかなあ?rdesktopが動かなくなるとちょっと不便だな。
ドコモの方々と飲み会しましょうという話しが出ていたのですが、先生を始め皆様忙しくて予定が合わず、できずじまい。ところが今日は奇跡の日、皆さんの予定が合ったようです。
忘年会、新年会、歓迎会、送別会が全部一緒になった結果、通常の飲み会になりました。宴会の席で色々話しましたけど、やっぱりOS研って凄い人の集合だなってのと、ちょっと変わった人が多いなあと(自分も含めて)改めて思いました。もちろんそこは良いところですよ!
某プロテクトさんの姿をやっと拝めたかに見えたものの…?一瞬このような絵が出ますが、直後にOSがフリーズします。
GameMon.desという変な名前のプロセスが某プロテクトだと思われます。
あと、もう一つhiddenのプロセスがあるんですが、名前を見るに恐らくゲームのプロセスなので、どうでも良いです。というわけで、余計な部分は海苔で隠しておきました。
ちなみに同じ事をXPでやったらリセットがかかりました。BoDになってもリセットかけないように設定しているのに。某プロテクトが何か異常を検出したらリセットかけるようになっている、というのはさすがに考えすぎでしょうから、私のいじり方が悪くて吹っ飛んでるだけでしょう。
某プロテクトはあまりに手の込んだrootkitでして、簡単には戻せないんじゃないか、って気がしてきました。この手のものって戻したら戻したで何かおかしくなりそうですよね。
明日までに作ります、と言ってしまったものを作りました。すごい眠くてやる気が出ません。たくさん寝たのになぜだ…、もしや寝過ぎ?
MSDNにはカーネルモードドライバのサポートルーチンとして、スレッドを作ったときに通知される関数を登録するPsSetCreateThreadNotifyRoutineという関数と、通知関数を削除するPsRemoveCreateThreadNotifyRoutineという関数が載っています。
しかしWindows 2000にはPsRemove〜 がありません。じゃあPsSet〜 もないのかというと、なぜか存在します。なんだこの片手落ち。しっかり作れよ!!
仕方ないから自分で登録解除する方法を紹介します。
PspCreateThreadNotifyRoutineという配列に通知関数のアドレスが登録されているので、自分で登録した関数を探してNULLに変えます。さらにPspCreateThreadNotifyRoutineCountと言う変数をデクリメントすれば登録解除されます。
私の環境(Windows 2000 SP4最新パッチ適用済み)だと、0x80483200(RoutineCount) と0x804831a0(Routine) というアドレスで、Routineの配列長は8(合計32バイト)でした。
昨日に続き某プロテクトを眺めていたら、もう一つ発見しました。
Windowsではプロセスの構造体をActive Listという双方向?リストで繋いでいます。ところが腐れプロテクトはリストを壊して自分の前と後ろを繋いでしまいます。そうすることで自分は居ないかのように見せかけています。
しかしそのままではOSからも見えないため、実行されなくなります。そのため自分のプロセスが持っているスレッドを、適当なプロセス(恐らくID:8のSystemプロセスだと思います)に押しつけて実行させます(※)。
SSDTに加え、カーネルオブジェクト書き換えと来たもんだ…。このゴミプログラムは何やってくれてるんでしょうね、ほんと最低です。
(※)カーネルオブジェクト書き換えはFu rootkitというrootkitが使用しているそうです。
今年でつくばを離れてしまう阿部さんのための、送別会が開かれました。修論、卒論生のみなさん、発表お疲れ様でした。という労いの会も兼ねています。
場所は灯禾軒でした。飲み会にありがちな、ご飯が大量に余る状況にはなりませんでした。料理が少なかったのか、単にみんなおなかが空いていただけかな。最近のOS研ではM1の人々の就職/進学の話しで持ちきりです。さて、来年どうなっているやら?
2次会は横にあるじんぱちでした。酒を飲まなかったせいか、かなり安かったです。
3次会というか既に3人しかいなかったんですが、STEPで卓球とカラオケをしました。
某プロテクトを殺せないかと思って、変なドライバを書いてみました。結果を先に言うと、うまくいきませんでした。
某の動きを観察してみると、SSDTを書き換えているようです。具体的には、NtDeviceIoControlFile, NtOpenProcess, NtProtectVirtualMemory, NtReadVirtualMemory, NtWriteVirtualMemoryの5つ(2/14 NtWriteVirtualMemoryを追記)にフックを入れています(Windows2000の場合)。このやり口はもはやrootkit以外の何者でもないですね。
まずは単純に、正しいSSDTを記録しておいて、書き換えられた後に元の値に戻してやりました。ところが強制リセットがかかってしまい、駄目でした。
次にプロテクトが使っているフックルーチンの先頭を無条件near jmpに書き換えて、正しい位置に飛ぶように書き換えたのですが、Windowsがハングアップしてしまって、うまくいきません。
何か間違ってるのでしょうけど、いまいちわかりません。難しいですね…。
昼にキューバ料理の店に行こうと誘われて6号沿いのお店に行きました。そういえばキューバってどこだっけ?って思いながら店に入ったら、壁にでかでかと地図が書いてありました。ああそうか、カリブ海の島国でしたね。
料理は辛い物が基本らしいですが、店員さんに辛くないのありますかって聞いたらいくつか教えてくれました。その中から一つ頼んでみると、不思議な香りの肉野菜炒めが出てきました。なんのスパイスかわからないけど…、おいしかったです。
国立科学博物館に行って、ものづくり展を見てきました。前のばけもの展が失敗感漂う感じで微妙だったのに対し、今回の展示は科博の本領発揮と言ったところでしょうか。面白かったです。
ニュースにもなっていた表面が磨かれたピッカピカの車もありましたよ。残念なことに時間が経ってしまって若干曇っていました。
工業製品の原料とか部品が多いのですが、車の部品、携帯の外装なども展示してあります。これらは身近にあるものですが、作るとなると結構複雑で難しいらしいのです。すげー複雑で細かい部品とか、何に使うのかわからなくても製品の形、材質を見て、これが一発で作れるか?と考えてみるとその技術力に感動します。
科学系の展示では珍しく、あちこちのパネルで「職人が〜」「熟練の技で〜」といったフレーズを見かけます。工作機械では到底なし得ない精度の加工も、熟練工がやれば一発というのは珍しくないようです。ものづくりには理屈じゃない技も必要ですね。
< | 2007 | > | ||||
<< | < | 02 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | - | - | - | 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | - | - | - |
合計:
本日: