VOS/Stratus のシステムコールを乗っ取る2010年04月28日 12時36分37秒

VOS のシステムコールは実はユーザプログラムから乗っ取ることが出来る。相応のオブジェクトモジュールを作り、プログラムモジュールにバインドする。

まず、制御を得たいシステムコールと同じ引数を普通の関数を作るように書く。つまり、そのまま関数書いた関数の名前がシステムコールと一緒なのだ。その関数でやりたいことを自由に書く。もし、本来のシステムコールをこの自前のシステムコールから呼び出したい場合は、システムコールを大文字で記す。それで、本来のシステムコールを呼べる。

この技術を用いることで、システムコールにかかる統計を取ったり、あるシステムコールを意図的に別のシステムコールに入れ換えるなど、かなりきわどい事が出来る。