내가 내 실행 파일을 나타내 :임시 폴더에서 서명 된 및 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.tmp
에 PingWarning.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를 요구하지 않고있다.