今週はずっと来年の昇進(?)のための資料作り&発表練習です。研究のプレゼンとか、カイシャのプレゼンってのはどうも苦手だなあ。
いつの話かわからんけどWikiのネタ帳にあったので、使ってみる。
いつぞや新幹線に乗ったときに蒟蒻畑のイチゴ味を買って食べてたのですが、原材料表示を見ると「りんご、いちご、アロニア果汁」とあります。
せっかくのイチゴ味なのにリンゴ果汁の方が多い(※)のか?という疑問もさることながら、アロニアって何!?という疑問で頭がいっぱいです。イチゴと関係ない変な植物?いや、そもそも植物?なんてことを想像しつつ、帰路を急ぎました。
家で調べてみるとなんてことはなくて、食用の果実でした。別名チョークベリー、味は渋みが強い(Wikipedia - アロニア属より)とのことです。生でみかけることはなさそうな果物です。
蒟蒻畑に入っているのもおそらく少量で、味に奥行きを出すために加えているのでしょうね。
(※)原材料表示では通常、製品のより多くを占める材料から順に書かれる。
再来週に控えたぷち昇進(?)のための資料作りとか、発表練習のおかげで、普段使わない頭の部分を使っている気がします。おかげでどっと疲れました。
というわけで今週末はのんびり…というかダラダラ。
だいぶ前の話です。店内放送で聞いたことある曲がかかっていたけれど、どうも曲名が思い出せない。NHKのふっるいシルクロード紹介番組で使っていたことも思い出せるのになあ。
なんて曲だっけなあ?と、もやもやしたまま家に着いてしまいました。気になって仕方なくて調べたら、喜多郎の「シルクロード」という曲でした。そのまんまじゃねーか…思い出すもくそもないね。
ラテールのゲームプロセスが見えるようになりました。解き方は書いたらまずそうなので書きません。スマートな方法でもないし…。
以前書き散らした通り、Gamepotプロテクトは比較的単純なrootkitです。具体的には以下のようにしてプロセスを隠蔽しています。
Gamepot rootkit(以降GR)は簡単に言うと、プロセス一覧を取得するサービスコール(システムコール?)をフックし、ゲームプロセスが見えないように書き換えてしまう方法です。
カギとなるのはNtQuerySystemInformationです。NtQuerySystemInformationは様々な機能を持ちますが、その内の一つにプロセスの一覧を取得する機能があります。
プロセス一覧を取得する際、NtQuerySystemInformationは以下の構造体の配列を返します。
先頭のNextEntryOffsetはプロセス情報のサイズをバイト単位で表します。現在のプロセス情報のポインタにNextEntryOffsetだけ足せば、次のプロセス情報の先頭を指す、という寸法です。
最後のプロセス情報のNextEntryOffsetには0が入っているので、区別できます。
SYSTEM_QUERY_INFORMATION *pinfo;
while (pinfo) {
//何かしらの処理をする
...
if (pinfo->NextEntryOffset) {
pinfo = (SYSTEM_QUERY_INFORMATION *)((unsigned char *)pinfo + pinfo->NextEntryOffset);
} else {
pinfo = NULL;
}
}
なぜこんな面倒な方法をとるかというと、プロセス情報のサイズが不定だからです。プロセス情報はスレッド情報を含んでおり、スレッド情報の要素数はプロセスが持つスレッド数によって増減するためです。
GRはシステムコールテーブル(※)を書き換え、NtQuerySystemInformationをフックします。
NtQuerySystemInformationが呼ばれてプロセス一覧が取得されるときに、ゲームプロセスの前に位置している要素を書き換えることで、ゲームプロセスを隠蔽します。下図を参照ください。
NtSystemQueryInformationのフックと書き換え
オレンジ色のNextEntryOffsetを、プロセス情報2つ分(書き換え対象のプロセス情報と、GRが隠したいプロセス情報)のサイズに改竄します。
改竄された情報を用いて、プロセス情報を先頭から処理しようとすると、白抜きしたプロセス(ゲームプロセス)が飛ばされ、認識できなくなります。
つまりGRによってプロセスが隠蔽されてしまったのです。
(※)WindowsではSystem Service Descriptor Table(SSDT) と呼ばれています。
しかしカーネル内のプロセス構造体はそのままなので、プロセスIDを直撃ちして、OpenProcessすると成功してしまいます。とはいえ、ユーザ空間から隠されたプロセスIDを知る方法はないので、メモリを書き換えてくるようなプロセスから身を守るにはこのくらいの機能で十分かもしれません。
Sena氏と屋台焼肉 山一商店(高槻市富田町)に行きました。新潟の和牛を惜しげも無く出してくる店です。
ただ、店舗の入り口や看板はまるで学生向けの定食屋といった作りで、高級肉が出てくる焼き肉屋には見えません。見た目で損してますね。
肉の等級はA4〜A5だそうです。極上五種盛りを頼んだところ、全部が霜降り肉でした。焼けばトロットロです。岩塩につけて食べれば…こ、これはうまい…。ごはんもすすむ。
気になるお値段はピンキリですけど、さきほどの極上五種盛り(霜降りの極上部位を5種、2〜3人前)で5,500円です。むちゃくちゃしなければ5,000円でかなり贅沢できます。おすすめ。
同期の皆さんで問屋街へ買い物に行きました。大下さんも連れて行きました。
今日の目的は大下さんへのクリスマスプレゼントを買うことなんですが、せっかく送る相手が目の前に居るので、最後は本人に選んでもらいました。
朝から夕方くらいまで歩くとどうも疲れてしまう…。ウインドーショッピングは私には向いてない…。
その後は美食酒家ちゃんと(大阪市北区)にて飲み会をしました。この季節は鍋がいいねー。
最後に全員でコンタクトを探すというハプニングもありました。映画やドラマで「コンタクトレンズを落としたから動かないで!」という状況を見かけますが、実際に遭遇したのは初めてです。
無事見つかったので良かったです。踏んでたらなんて謝ろうか…ってちょっとドキドキしました。
風呂(寮の風呂は共同の大浴場)に入って部屋に戻ってきたら、めがねが無くなっていることに気がついた。
風呂場に確認しに戻ってみるも見つからず。とほほ…。
< | 2008 | > | ||||
<< | < | 12 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | 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 | 29 | 30 | 31 | - | - | - |
合計:
本日: