外部のサーバーからTCP経由で他のバイナリアプリケーションファイルを受信して実行する小さな "アプリケーションローダー"プログラムを用意したいと思います。別のプロセス内のメモリからプロセスを実行しますか?
送信したファイルをハードディスクに保存し、system()コールを使用して実行すると、これを実行できます。しかし、ハードドライブに触れることなくメモリから新しいアプリケーションを起動することが可能かどうかは疑問だ。
新しいアプリケーションをロードした後、ローダーアプリケーションの状態は問題になりません。私はCに固執する方が好きですが、C++ソリューションも歓迎します。可能であれば、標準のLinux Cの機能に固執し、外部ライブラリを使用しないことも望みます。
はい、可能ですが、やや複雑です。 OSをエミュレートしてバイナリをメモリなどにマップする必要があります。 –
これをRAMディスク上のファイルに書き込むことができます – TJD
私は、やや近年のCPUの*あらゆる*レベルのOSセキュリティは、これが起こり得ないことを保証するのが最善です。これは確かに実行可能ですが、実際のディストリビューションで使うのに本当に苦痛になるでしょう(私が願って) – BRFennPocock