Windows API에는 DuplicateHandle
이라는 유용한 기능이 포함되어 있습니다.이 기능을 사용하여 파일, 레지스트리 키, 프로세스, 뮤텍스 등의 핸들을 한 프로세스에서 다른 프로세스로 전송할 수 있습니다. 이것은 브로커 프로세스가 HANDLE (샌드 박스 프로세스가 액세스 할 수 없음)을 열 때까지 샌드 박스로 핸들을 전달하는 샌드 박스를 작성할 때를 비롯하여 여러 가지 작업에 유용합니다. 이는 Unix 도메인 소켓을 통해 POSIX 프로세스간에 파일 설명자를 전달하는 것과 유사합니다.프로세스간에 SC_HANDLE을 전달할 수 있습니까?
불행하게도, 서비스 핸들을 언급하지 않는 DuplicateHandle
에 대한 설명서 (유형 SC_HANDLE
사용/OpenSCManager
같은 API에 의해 반환) 지원 HANDLE 유형으로. 프로세스간에 복제 (또는 다른 방식으로 전송) 할 수있는 방법이 있습니까?
젠장. 고맙습니다. 누군가가 영리하고 애매한 방법으로 나오면 잠시 동안이 문을 열어 두겠다.하지만 그때 아무것도 나타나지 않으면 대답으로 표시 할 것이다. SCM (및 관련 서비스)에 대한 ACL을 설정하여 샌드 박스에서 다른 신뢰할 수없는 프로세스를 열지 않고도 열 수 있다고 생각합니다. gh는 샌드 박스에 직접 여는 것을 싫어합니다. 내 첫 번째 계획을 고수하십시오 (샌드 박스에서 IPC에 대한 응답으로 중개인이 모든 통화를 처리하도록 함). 그것은 더 많은 IPC 코드와 퍼포먼스를 의미합니다. 조금도. – CBHacking