質問: linuxでapiをフックする方法があれば教えてください。 具体的にはfailmallocのように任意のタイミングでapiが失敗するようにしてテストを行いたいのです。 failmallocはmalloc用に用意されたフックの機構を利用しているようですが、そういったフックが用意されていないapiで似たようなことをする方法はないでしょうか?
回答: api - システムコールをフックするには、プログラムが特権モードで動作する必要がありますが、 通常のユーザプログラムは非特権モードで動作するためにそれが出来ません。 そこで、LKM(Loadable Kernel Module)という機構を用いることにより、 特権モードでプログラムを動作させられます。 これはカーネルに任意のモジュールをアタッチ/デタッチするものです。 詳しくは以下のURLを参照して下さい。 LKMに関して http://www.atmarkit.co.jp/fsecurity/rensai/rootkit03/rootkit01.h... フックの例