2010-05-13 4 views
5

내가 내 실행 파일을 나타내 :임시 폴더에서 서명 된 및 RequireAdministrator 실행 파일을 실행하고 있습니까? 관리자가 필요로

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 

    <!-- Disable Windows Vista UAC compatability heuristics --> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> 
     <security> 
      <requestedPrivileges> 
       <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> 
      </requestedPrivileges> 
     </security> 
    </trustInfo> 
</assembly> 

을 그리고 난 디지털을 체결했다.

하지만 내가 뭔가 이상한 눈치 실행 파일 실행하면 대화 상자가 pinxxxx.tmpPingWarning.exe에서 변경된 동의에 실행 파일의 이름을; 임시 복사본을 만들고, 그되고있는 실행 된 것처럼 :

alt text http://i42.tinypic.com/nmkppz.jpg

내가 프로세스 Montior을 파고, 난 내 실행 파일을 실행할 때 사람이 * .TMP 파일을 생성되어 있는지, 거기하기 입니다 :

alt text http://i42.tinypic.com/10o1b8g.jpg

이 특정 svchost 용기 내부의 애플리케이션 정보 서비스가 의도적으로 입니다내 실행 파일을 Windows 임시 폴더에 복사하고 거기에서 사용자 "동의"를 요청합니다. 잘못된 파일 이름을 지정합니다. 동의가 부여되면

는 실행 파일은 원래 위치에서 실행됩니다 : link text http://i43.tinypic.com/104noub.jpg

내가 디지털 서명하지 않으면 파일이 임시 폴더에 복사되지 않습니다 :

alt text http://i43.tinypic.com/14kvevd.jpg


내 문제는 입니다.은에 으로 표시됩니다.대화 상자에서 디지털 서명을 실행하면 requireAdministrator으로 표시됩니다.

무엇을할까요?


업데이트 :

내가 찾을 수 있습니다 설명에 가장 가까운 것은 Uninformed.org (http://uninformed.org/index.cgi?v=8&a=6&p=3)에서 유래하십시오 프로그램 요청있는 UIAccess의 발사 요청의 경우

, appinfo! RAiLaunchAdminProcess은 요청을 처리하기 위해 호출 된 입니다. 그런 다음 프로세스는 디렉터리의 허용 된 집합 (하드 코드 된 집합) 내에있는 것으로 확인됩니다. appinfo! AiCheckSecureApplicationDirectory. 허용 된 디렉토리에서 프로그램이 실행 중임을 확인한 후 이 appinfo!AiLaunchProcess 요청을 서비스하기 위해 나머지 작업을 수행하는 요청. 이 시점에서, 에 의한 의 어떤에서 제한된 사용자 (또는 그 문제에 대한 낮은 무결성 실행하는 사용자)에 대한 장소로 응용 프로그램 디렉토리 요구 사항, 그것은 불가능합니다 사용자 정의 실행 파일을 "보호" "안전한"응용 프로그램 디렉토리.

애플리케이션이 "허가"일부 (미등록, 불특정) 하드 경로는 힌트 존재가 위치하고있다. 다른 하나가있는 UIAccess를 요청하는 프로그램 이다

한다. 제 경우에는 원래의 명단에 uiAccess="false"이 없었습니다. 그러나 매니페스트를 변경하면 UI 없음 액세스를 포함합니다 :

을하지만 원래 문제가 해결되지 않았다.


업데이트 2 : MSDN에서

() : Authenticode를해야합니다 true로 설정 있는 UIAccess 플래그

중요
응용 프로그램이 제대로 시작 서명했다. 또한 응용 프로그램은 파일 시스템의 보호 된 위치에 이 있어야합니다. \ Program Files \ 및 \ windows \ system32 \
은 현재 두 가지 허용되는 보호 위치입니다.

이것은 uiAccess을 요청하는 실행 파일이 허용 된 위치에 있어야한다는 개념을 백업 한 것으로 보입니다. 나는 uiAccess를 요구하지 않고있다.

I 구체적 NSIS와 InnoSetup 설치하여, 서명되지 않은 응용 프로그램과 같은 문제를 보이면서

답변

2

(1GB + 설치가의 % windir % \ temp로 복사하고 consent.exe 의해 주사되는 문제의 비트) NSIS 버그 추적기에는 entry이 있습니다. 나는 이것을 조사 할 때 다시 누군가와 만났고 UAC에서 일하는 누군가에게 연락을 취하기로되어 있었지만 실제로는 아무 것도 나오지 않았습니다. 내가 그 대화에서 얻은에만 적용 정보는이 인용했다 : Windows의

한 친구가이 신뢰 대화 상자가있는 동안 변조 파일에 대한 우려에 대한 완화되었을 수도 있다는 막연한 기억했다

를 표시