Linux では通常、ptrace関数を使用してすべての syscall をトレースし、プロセスが自分のマシンに害を及ぼすようなことをしようとした場合はプロセスを強制終了しますsystem("shutdown -s -t 00")。
Windowsでこれを行う方法はありますか?
編集: Windows と Linux の両方で動作する子の時間とメモリ使用量を制限するサンドボックス プログラムを作成したいのですが、現在は Linux でのみ実行できます。ptrace
プロセスをJob オブジェクトにアタッチすると、プロセスの CPU 時間とメモリを制限できます。悪意のあるアクションの実行を防ぐことはできませんが、要求したことを達成することはできます。
サンドボックスでアプリケーションを実行するには、CreateRestrictedTokenを使用して新しい制限付きアクセス トークンを作成し(ここでは、有効化/無効化できる権限に関する情報をいくつか示します)、新しいトークンを使用してImpersonateLoggedOnUserを呼び出し、CreateProcess で新しいプロセスを開始して、元の状態に戻すことができます。RevertToSelfを持つ古いトークン。すべてのコンテキストで代わりにCreateProcessAsUserを直接使用できるかどうかはわかりません。試してみてください。
手遅れかもしれませんが、自分で同じ機能を探しているあなたの投稿に出くわしました.
CPU リミット 1.1 を見つけました
ソースコード付きでここからダウンロードできますhttp://www.killprog.com/etce.html
私はそれを非常にうまく使用しています、それがあなたを助けることを願っています