2016-08-26 9 views
2

Windows APIには、ハンドル(ファイル、レジストリキー、プロセス、mutexなど)をあるプロセスから別のプロセスに転送するために使用できる便利な機能DuplicateHandleが含まれています。これは、ブローカプロセスがHANDLE(サンドボックスプロセスがアクセスできない)を開くことがあり、そのHANDLEをサンドボックスに渡すサンドボックスを書くときを含む、多くのことに役立ちます。これはUnixドメインソケット経由でPOSIXプロセス間でファイル記述子を渡すのと同じです。プロセス間でSC_HANDLEを渡すことはできますか?

残念ながら、DuplicateHandleのドキュメントは、サポートされているハンドルタイプとしてサービスハンドル(タイプSC_HANDLE、使用/ OpenSCManagerのようなAPIで返された)に言及していません。プロセス間の複製(または別の方法で転送)する方法はありますか?

答えて

5

これらのハンドルは複製できません。他のプロセスはOpenSCManagerに電話する必要があります。

+0

Damn。ありがとうございました。誰かが巧妙なやり方でやってくる場合に備えて、これをちょっと開いたままにしておきますが、その時に何も起きなければ、答えとしてマークします。私は、SCM(および関連するサービス)のACLを設定して、サンドボックスが開くことができると思います(他の信頼できないプロセスに開かせずに...サンドボックスに直接開くものは嫌いですが)私の最初の計画を守ってください(サンドボックスからのIPCへの応答でブローカーにすべての呼び出しを行うこと)。それはより多くのIPCコードとperfヒットを意味します。くそー。 – CBHacking

関連する問題