0

アドレス空間にシステム ライブラリがなくても、独自の仮想アドレス空間を持つスレッドまたはプロセスを作成したいと考えています (おそらく別のプロセスである必要があります)。私の目標は、外国由来のコードの実行環境を作成することです。

ユーザーのコードがコピーされ、スレッド エントリ ポイントが配置されるいくつかの実行可能ページと、メイン スレッドとのスタックおよびデータ交換用の RW ページだけを使用して、システム ライブラリを使用せずにスレッドを作成したいと考えています。

Windows (またはおそらく Linux) 上のすべてのシステム ライブラリをアプリケーション レベルの仮想メモリから完全にマップ解除することは可能ですか?

4

2 に答える 2

0

システムライブラリのマッピングを解除しても、バイナリがそれ自体でシステムコールを実行するのを防ぐことはできません。防止しようとしているすべての操作をキャッチするには、何らかの形式のバイナリ変換が必要です。libdetoxfastBT( fastBTに関するGoogle Tech Talk)をご覧になることをお勧めします。

于 2012-04-21T11:34:56.890 に答える
0

達成したい内容によっては、ユーザーモード Linux、qemu、VMware、またはその他の仮想化ソリューション内で外部コードを実行する方が簡単な場合があります (実行ごとに仮想ハード ディスクの新しいコピーを使用し、ネットワーク インターフェイスを提供しません)。など)。

于 2012-04-21T11:52:20.573 に答える