サーバー上で任意の (潜在的に危険な) バイナリを実行したいと考えています。したがって、objcopy
「メイン」シンボルの名前を「other_main」に変更して、other_main を呼び出す前に適切な値を設定しRLIMIT_CPU
てフラグを切り替える独自の小さなメイン関数にリンクできるようにしSECCOMP
ました。これまでのところ、このソリューションに非常に満足しています。
問題は、サードパーティのプログラム コードに malloc の呼び出しが含まれている可能性があることです (sbrk は許可されていません)。SECCOMP
したがって、malloc / realloc / calloc / free で使用する必要がある設定の前に、適切なサイズの配列 (20MB など) を事前に割り当てたいと思います。残念ながら、最後のステップをアーカイブする方法がわかりません。これら 4 つの機能をすべて自分で実装する必要がありますか? 独自の関数を stdlib に挿入するにはどうすればよいですか (たとえば、printf が内部で malloc を呼び出すとどうなりますか?)。