コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2008年12月10日 >>> 2008年12月1日
link もっと後

2008年12月8日

ラテールのプロテクト

ラテールのゲームプロセスが見えるようになりました。解き方は書いたらまずそうなので書きません。スマートな方法でもないし…。

以前書き散らした通り、Gamepotプロテクトは比較的単純なrootkitです。具体的には以下のようにしてプロセスを隠蔽しています。

プロセスの一覧

Gamepot rootkit(以降GR)は簡単に言うと、プロセス一覧を取得するサービスコール(システムコール?)をフックし、ゲームプロセスが見えないように書き換えてしまう方法です。

カギとなるのはNtQuerySystemInformationです。NtQuerySystemInformationは様々な機能を持ちますが、その内の一つにプロセスの一覧を取得する機能があります。

プロセス一覧を取得する際、NtQuerySystemInformationは以下の構造体の配列を返します。


SYSTEM_QUERY_INFORMATION構造体

先頭の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;
    }
}

なぜこんな面倒な方法をとるかというと、プロセス情報のサイズが不定だからです。プロセス情報はスレッド情報を含んでおり、スレッド情報の要素数はプロセスが持つスレッド数によって増減するためです。

rootkitによるプロセスの隠蔽

GRはシステムコールテーブル(※)を書き換え、NtQuerySystemInformationをフックします。

NtQuerySystemInformationが呼ばれてプロセス一覧が取得されるときに、ゲームプロセスの前に位置している要素を書き換えることで、ゲームプロセスを隠蔽します。下図を参照ください。


NtSystemQueryInformationのフックと書き換え

オレンジ色のNextEntryOffsetを、プロセス情報2つ分(書き換え対象のプロセス情報と、GRが隠したいプロセス情報)のサイズに改竄します。

改竄された情報を用いて、プロセス情報を先頭から処理しようとすると、白抜きしたプロセス(ゲームプロセス)が飛ばされ、認識できなくなります。

つまりGRによってプロセスが隠蔽されてしまったのです。

(※)WindowsではSystem Service Descriptor Table(SSDT) と呼ばれています。

弱点

しかしカーネル内のプロセス構造体はそのままなので、プロセスIDを直撃ちして、OpenProcessすると成功してしまいます。とはいえ、ユーザ空間から隠されたプロセスIDを知る方法はないので、メモリを書き換えてくるようなプロセスから身を守るにはこのくらいの機能で十分かもしれません。

編集者:すずき(2008/12/09 00:55)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2008年12月7日

うまい焼き肉

Sena氏と屋台焼肉 山一商店(高槻市富田町)に行きました。新潟の和牛を惜しげも無く出してくる店です。

ただ、店舗の入り口や看板はまるで学生向けの定食屋といった作りで、高級肉が出てくる焼き肉屋には見えません。見た目で損してますね。

肉の等級はA4〜A5だそうです。極上五種盛りを頼んだところ、全部が霜降り肉でした。焼けばトロットロです。岩塩につけて食べれば…こ、これはうまい…。ごはんもすすむ。

気になるお値段はピンキリですけど、さきほどの極上五種盛り(霜降りの極上部位を5種、2〜3人前)で5,500円です。むちゃくちゃしなければ5,000円でかなり贅沢できます。おすすめ。

編集者:すずき(2008/12/09 00:02)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2008年12月6日

問屋街

同期の皆さんで問屋街へ買い物に行きました。大下さんも連れて行きました。

今日の目的は大下さんへのクリスマスプレゼントを買うことなんですが、せっかく送る相手が目の前に居るので、最後は本人に選んでもらいました。

朝から夕方くらいまで歩くとどうも疲れてしまう…。ウインドーショッピングは私には向いてない…。

飲み会ならぬ食べ会

その後は美食酒家ちゃんと(大阪市北区)にて飲み会をしました。この季節は鍋がいいねー。

最後に全員でコンタクトを探すというハプニングもありました。映画やドラマで「コンタクトレンズを落としたから動かないで!」という状況を見かけますが、実際に遭遇したのは初めてです。

無事見つかったので良かったです。踏んでたらなんて謝ろうか…ってちょっとドキドキしました。

編集者:すずき(2008/12/08 23:46)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2008年12月5日

めがねめがね

風呂(寮の風呂は共同の大浴場)に入って部屋に戻ってきたら、めがねが無くなっていることに気がついた。

風呂場に確認しに戻ってみるも見つからず。とほほ…。

編集者:すずき(2008/12/08 21:36)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2008年12月3日

どっちもどっち

ラテールのキャラクターがLv.40になりました。スキルが2段階目から3段階目に上がり、コンボが繋がるようになって楽しいです。しかし次の段階はLv.60…遠い…。

このラテールですが、我が家に2台あるPCではどちらも微妙に性能が足りません。画面がガクガクしてます。

デスクトップPCはCPUやグラフィックス性能は十分だけども、メモリが足りなくてゲームがガクガクします。

ノートPCはメモリは十分だけども、CPUやグラフィックス性能が足りなくてやっぱりゲームがガクガクします。

さっさと新しいPCを作りなさいという思し召しなのかもしれないなあ。最近AMD一直線だったから、次はCore2 Quadにしてみようかしら。省エネ万歳。

編集者:すずき(2008/12/08 19:55)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2008年12月10日 >>> 2008年12月1日
link もっと後

管理用メニュー

link 記事を新規作成

<2008>
<<<12>>>
-123456
78910111213
14151617181920
21222324252627
28293031---

最近のコメント5件

  • link 20年6月19日
    すずきさん (04/06 22:54)
    「ディレクトリを予め作成しておけば良いです...」
  • link 20年6月19日
    斎藤さん (04/06 16:25)
    「「Preferencesというメニューか...」
  • link 21年3月13日
    すずきさん (03/05 15:13)
    「あー、このプログラムがまずいんですね。ご...」
  • link 21年3月13日
    emkさん (03/05 12:44)
    「キャストでvolatileを外してアクセ...」
  • link 24年1月24日
    すずきさん (02/19 18:37)
    「簡単にできる方法はPowerShellの...」

最近の記事3件

  • link 24年4月17日
    すずき (04/18 22:44)
    「[VSCodeとMarkdownとPlantUMLのローカルサーバー] 目次: LinuxVSCodeのPlantUML Ex...」
  • link 23年4月10日
    すずき (04/18 22:30)
    「[Linux - まとめリンク] 目次: Linuxカーネル、ドライバ関連。Linuxのstruct pageって何?Linu...」
  • link 20年2月22日
    すずき (04/17 02:22)
    「[Zephyr - まとめリンク] 目次: Zephyr導入、ブート周りHello! Zephyr OS!!Hello! Ze...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 04/18 22:44