[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[port139:00514] Re: LKM rootkit の検知方法



ども、根暗井です ^^)

From: Hideaki Ihara
Date: 2001/08/13 10:17:51
Subject: [port139:00511] Re: LKM rootkit の検知方法

>一般的に?よく”フックする”という言い方がされると思いますが、これは
>内部的な処理としてはどう動いているのでしょうか?

一般的には「引っ掛ける事が出来る場所」を「引っ掛ける」という
動作だと思います。 (そのままやん・・・<俺)

* 引っ掛けることが出来る場所
  * ソフトウエア割り込みを使うタイプ
      何も考えずに割り込み address を引っ掛ける
        MS-DOS  ... int 21h
        linux   ... int 80h
        FreeBSD ... int 80h
        Be      ... int 25h <- うろおぼえ ^^;
      これをうまく使って別の OS のバイナリを動かすものとして
      BOW (Bsd On Windows) とか LINE (Line Is Not an Emulator)
      みたいのがある(あった?)。(トラップすれば後は自由だし)
  * dll に制御を移すタイプ
     オンメモリで DLL の入り口を書き換えたり、DLL 自体を差し替えたり。
     デバッガーで load 時点でエントリーを差し替えるのもあったような。
        Windows95 系 ... 比較的やりやすかったような(大昔の記憶)。
                         Win/V の本に細かく方法が書いてあった気も。
        WindowsNT 系 ... チト面倒だけど、regmon のようにしっかり
                         やっている例もある。

原理的にはなんかのフラグを立ててそれを監視というのも可能だけど、
普通は単にジャンプテーブルとかを置き換えるのが基本ではないかと。

                                        By  根暗井
------- 根暗井 == 櫻井 -------- (E-mail : nekurai@xxxxx) -------
ちなみに SDK の世界の hook は一般的に message に対する hook です
----------------------------------------------------------------