[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 2770] Re: beditc00.



小柳です。こんにちは。

At Sat, 22 Dec 2001 02:49:25 -0000,
I.Tak. <msy !Atmark! catvmics.ne.jp> wrote:
> 
> Hidemi KAWAI さん、こんにちは。I.Tak. です。
> 
>  OSASK/AT1.9.で試したところ、bedit終了後も変更が生きているようでした。
> また、セキュリティ上問題に思えることがあります。試験は以下のとおりです。
>        1.countdownを起動(1)
>        2.beditを起動
>        3.countdwn.binを開き、GO!をToTに書きかえる
>        4.countdownを起動(2)
>        5.beditを終了
>        6.countdownを起動(3)
> この試験で書き換えの影響を受けるのは(2)のcountdownだけのはずです。
> しかし、実際に影響されたのは全てのcountdownでした。これはかなりまずいの
> ではありませんか? 実際、beditc00.binを書き換えたら、スタック保護例外で
> 死にました。

この全てというのは、(1)も含まれているんですよね。
全てのタスクが同じメモリ上にあるということでしょうか。

プロセスが実行中に、そのプロセスの実行ファイルを変更して書き込みを試み
るとどうなるかは OS によって異なっています。Windows や Linux では、書
き込みが拒否されるのですが、SUN の Solaris(Solaris 8/SPARC で確認)では、
書き込めて新しい内容に置き換わります。動作中のプロセスは応答が無くなっ
たり死んだりします。OSASK の動作は、Solaris と全く同じではないかもしれ
ませんが、類似しています。

どちらの動作も長所・短所があると思います。
前者の動作では、ネットワーク上の他のPCも含めてプロセスが実行されている
と実行ファイルがロックされるので、どこで使用されているかを調べて終了さ
せるのに手間がかかることがあります。
後者の動作では、I.Takさんの試験結果のようなことが起こります。

-- 
小柳 雅明(Koyanagi.Masaaki !Atmark! nifty.ne.jp)
「人の足を止めるのは"絶望"ではなく"諦観"
  人の足を進めるのは"希望"ではなく"意志"」
                  -- ARMS