TOPに戻る
▼Virus
Code REDウィルスとは?
┣ マイクロソフトの説明
┃ とIIS機能
┣ アプリケーションソフ
┃ トは機能の寄集め
┣ 呼出・復帰時に行わ
┃ れる事
┣ 復帰の場所を変え
┃ てみると・・
┣ 感染したCode R
┃ EDは何を行うか
┣ 異常データをサーバ
┃ ーのバッファに格納
┣ プロセッサの保護機
┃ 能
┣ ウィルスの場所を特
┃ 定する
┣ウィルスコードを実
┃ 行する
┣ CodeREDの正体1
┗ CodeREDの正体2
Copyright(C) 2001-2002.ugpop. All rights reserved.
■ 呼出・復帰時に行われる事 ■
前回は、バッファオーバーランについての言葉の解説を行いま
した。バッファオーバーランとは、バッファ(メモリ)にオー
バーランと呼ばれるエラーが発生する、という事を解説しまし
た。(オーバーランについては後日解説する予定です。今はメ
モリのエラーの事だと思って下さい。)
また、アプリケーションソフトは小さな機能を呼び出したり復
帰したりする事によって動作している事を解説しました。
今回は、呼出/復帰時に何が行われるのか解説を行います。
アプリケーションソフトは各機能の呼出/復帰を繰り返して動
作しますが、この呼出の時にバッファを確保し、例えば絵を表
示する機能を呼び出す時に、「丸い絵を表示する」とかの細か
い指示をバッファの中に入れておきます。
呼出された側は、このバッファの中を参照して、指示通りに丸
い絵を表示する作業を行ないます。
┌──────────────┐
│アプリケーションソフトの動作│
└──────────────┘ バッファ
1.バッファを確保 ┌───────┐
├─────────────────→│ │
│ └───────┘
2.バッファに細かい指示を格納 バッファ
│ ┌───────┐
├─────────────────→│丸い絵を表示 │
│ └───────┘
3.絵を表示する機能呼出し
│
│
├─────────┐
│復帰 ↓呼出
│←┐ ┌──────────────┐
・ │ │ 絵を表示する機能の動作 │
・ │ └──────────────┘ バッファ
・ │ 4.バッファを読出し ┌───────┐
続きの処理│ │←───────┤丸い絵を表示 │
・ │ │ └───────┘
・ │ 5.丸い絵を画面に表示 画面
・ │ │ ┌───────┐
│ │ │ │
│ │ │ │
│ ├────────┼─→○ │
│ │ │ │
│ │ └───────┘
│ 6.呼出し元へ復帰
│ │
└───────┘
ここで、6項に注目して下さい。
6項の「呼出し元へ復帰」とありますが、何故復帰する場所が
分かるのでしょうか?
呼出す時は「絵を表示する機能」を呼出し、と具体的に何の機
能を呼出すのかが書かれてあります。
しかし、6項の時は「呼出し元へ」復帰としか書かれてありま
せん。「絵を表示する機能」は、いろいろな所から呼出される
為、どこへ復帰するのかは分からないはずです。
何故、復帰する場所が分かるのでしょうか?
実は、3項の「絵を表示する機能呼出し」の時に、自動的にも
う1つバッファが確保されます。そのバッファには何が格納さ
れるかと言うと、「復帰する場所」がどこか、という情報が入
ります。
先ほどの図とは3項の「絵を表示する機能呼出し」と6項の
「呼出し元へ復帰」が異なりますので注意して下の図を見て下
さい。
┌──────────────┐
│アプリケーションソフトの動作│
└──────────────┘ バッファ
1.バッファを確保 ┌───────┐
├─────────────────→│ │
│ └───────┘
2.バッファに細かい指示を格納 バッファ
│ ┌───────┐
├─────────────────→│丸い絵を表示 │
│ ├───────┤
3.絵を表示する機能呼出し ┌─→│復帰する場所 │
├───────────────┘ └───────┘
│ バッファをもう1つ確保し、復帰する場所情報格納
├─────────┐
│復帰 ↓呼出
│←┐ ┌──────────────┐
・ │ │ 絵を表示する機能の動作 │
・ │ └──────────────┘ バッファ
・ │ 4.バッファを読出し ┌───────┐
続きの処理│ │←───────┤丸い絵を表示 │
・ │ │ └───────┘
・ │ 5.丸い絵を画面に表示 画面
・ │ │ ┌───────┐
│ │ │ │
│ │ │ │
│ ├────────┼─→○ │
│ │ │ │
│ │ └───────┘
│ 6.呼出し元へ復帰 バッファ
│ │ ┌───────┐
└───────┘←───────┤復帰する場所 │
どこへ戻るか参照└───────┘
この2つの図の処理の差分は、プログラムに差分があるわけで
はありません。つまり上の図と下の図では、プログラムは全く
同じ物を使います。
では、この差分は何でしょうか?
上の図はプログラムの動作のみが書かれた物です。
つまりソフトウェアの動作のみが書かれた物です。
対して下の図は、プロセッサの動作も含めて書かれてある物で
す。
つまり、ハードウェアの動作も含めて書かれてある物です。
3項の「絵を表示する機能呼出し」の時に行なわれる、「復帰
する場所情報格納」処理と、6項の「呼出し元へ復帰」の時に
行なわれる、「どこへ戻るか参照」する処理は、プロセッサに
より自動的に行なわれます。
これはインテルプロセッサの仕様です。
他のメーカー製プロセッサも、若干異なりますが、大体同じよ
うな処理を自動的に(ハード的に)行なうようになっています。
Code REDウィルスは、このプロセッサの仕様を利用して発病し
てしまいます。
次回はCode REDウィルスがどのようにして発病してしまうのか
を解説したいと思います。
←前へ戻る ▲このページの上へ 続きを読む→