分かりやす〜い
コンピュータ技術情報

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ウィルスがどのようにして発病してしまうのか
を解説したいと思います。



←前へ戻る    ▲このページの上へ    続きを読む→