문제

Internet Explorer에 JavaScript로 로드하는 ActiveX 컨트롤이 있습니다.Vista 및 Win7에서는 UAC에서 중간 무결성으로 실행해야 합니다.이는 C/C++로 작성되었으며 Visual Studio에서 컴파일되었습니다.

권한을 높이는 한 가지 방법은 중간 무결성 수준을 요청할 수 있는 브로커 프로세스를 만드는 것입니다.그러나 이 프로젝트의 경우 이는 실용적인 솔루션이 아닙니다.관리자 권한으로 실행하려면 ActiveX 컨트롤 자체가 필요합니다.

내 질문은 다음과 같습니다이 작업을 수행하는 가장 쉬운 방법은 무엇입니까?프로젝트의 빌드 옵션을 exe로 변경하고 COM 프로세스 간 연결 시스템을 사용하여 자동으로 통신을 처리할 수 있습니까? 아니면 좀 더 정교해야 합니까?수동으로 CreateProcess를 호출하고 일종의 브로커를 만드는 것과 같은 복잡한 작업을 수행해야 합니까, 아니면 자체적으로 상승하는 ActiveX exe로 작동할 수 있습니까?

도움이 되었습니까?

해결책

이는 주로 ActiveX 컨트롤의 기능, 페이지에 포함하는 방법 및 구현 방법에 따라 다릅니다.

가장 간단한 접근 방식은 아마도 이를 서버 EXE로 구현하고 적절하게 등록한 다음 중간 수준에서 실행할 수 있는 실행 권한을 부여하는 것입니다. 낮은 권리 승격 정책.

그렇게까지 가고 싶지 않다면 다시 등록하고 자신만의 구현을 구현하는 간단한 사용자 정의 프로세스 외부 서버를 작성할 수 있습니다. IClassFactory 생성 요청을 기존 DLL로 프록시합니다.기존 객체에 AppID 키를 추가하고 이를 지정할 수도 있습니다. Dll대리자 하지만 (COM+ 응용 프로그램으로 등록하는 것 외에는) 서로게이트에서 개체를 강제로 생성하기가 쉽지 않을 수도 있습니다(IE의 기본값은 프로세스 내 등록을 먼저 선택하는 개체를 생성할 때 CLSCTX_ALL을 지정하는 것이기 때문입니다). .

물론 코드가 위치에 대해 너무 많은 가정을 하거나 프록시되지 않은 인터페이스를 사용하는 경우 어쨌든 작동하지 않을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top