前のエントリのラッパという表現よりはフックという表現の方が正しい気がしてきた。
で、そのエントリのソフトウェアがどのようにしてUSBでレジストリ透過なアプリケーションを実行しているのかというと、API Hookな技術を使っている。詳しくはCiNii – API Hookを用いたWindowsプログラムのモビリティ向上ソフトウェアの作成を見ると分かるはず(インターネット上では発行元の事情で見れない)。
API Hookが何をするのかというと、Windows標準のAPIのエントリポイントを奪って自分のDllのエントリを登録して、所定のアプリケーションに動作させ、自分のDLLで好きな動作をさせて、必要性があるのなら本来のAPIを呼び出す…という手続きを行う。APIのやり方についてはDesert Violet : APIフックについてのまとめ。が詳しい。
んで、API Hookが有名になった事件があって、それがソニーが音楽CDに組み込んだ“Rootkit”とは何者か? − @ITにあるSONY BMGが仕掛けたRootkit事件に繋がる訳である。この記事は秀逸で、レジストリ監視ソフトregmonやファイルアクセス監視ソフトfilemonの作者でWindows Insideの著者の方が書いているだけあって分かりやすい。
ついでにC#で扱えそうなものか調べてみたが、.NETではないアプリケーションから.NETのDLLをどうやって.NETを起動して扱うのだ?という話からHOOKはできないような記述が見つかった。ここら辺はまだ調べ切れてない。
こんなことを調べてばっかりいるから研究が進まない。DCCPのバグ修正して実験をしなければ…