'호환성'에 해당되는 글 1건

  1. 2010.09.29 UAC 적용 조건 및 사례

2010.09.29 21:17 System

이번에는 UAC가 적용되는 조건 이나 사례를 알아보도록 하겠습니다

자기가 UAC를 걸지도 않았는데 방패 모양이 박혀서 UAC 를 요구 하는 경우나

분명 방패 모양도 없는데 실행시켜보니 UAC를 요구하는 그런 황당한 일을 겪어보셨을 겁니다

그런 고로 이번 포스팅의 목표는 UAC입니다

UAC가 걸린 파일들은 다음과 같은 분류로 나누어지게 됩니다


1. Installer

2. Manifest

3. Application Compatibility Database

4. 프로그램 내부 코드에 의해 


[+] Installer

Wise, Install Shield, NSIS 등의 전용 Installer 등은 기본적으로 UAC를 넣어주도록 설정 되어 있습니다

이런 실제 Installer 이외에 문제가 될 만한 특이점이 하나 있는데요

컴파일 된 실제 실행 파일이 바로 그 주인공입니다

Visual 6를 기준으로 컴파일 된 실행 파일들은

Install, Update, Setup 이라는 문자열이 파일명, Descriptor , 등등 프로그램 정보에 해당하는 항목에 있을 경우 

방패를 달게 됩니다

<그림1. 파일명에 Update라는 문자열이 들어가는 것만으로도 UAC가 걸린 모습>

Visual Studio 2008 의 경우는 6와 조건은 같지만 

UAC 대신에 호환성 관리자가 실행 되어 이 파일이 정상적으로 설치 되었는가를 물어보게 됩니다

<그림2. Visual Studio 2008 에서 컴파일한 실행파일명에 해당 문자열을 넣고 실행한 모습>

그런 고로 이런 파일명이나 프로그램 정보등에 Install, Update, Setup 등의 문자열이 들어가는 것을 주의해야 합니다

[+] Manifest

두번째는 Manifest 입니다

가장 보편적으로 UAC를 삽입하는 방법이죠

이는 실행파일등의 Resource에서 Configuration Files 정보에서 확인합니다



<그림3. UAC가 걸려있는 파일의 실제 Manifest 적용 정보>

이에 해당하는 level의 항목은 다음과 같습니다

<그림4. Manifest 설정 파일 내의 항목에 따른 요구 권한>

requestedExecution level 옆의 uiAccess 같은 경우는 기본으로 False가 설정되어 있는데요

이는 사용자 인터페이스 권한 격리 [ UIPI ]를 사용한다는 의미입니다

이게 무슨 소린고 하니, 낮은 신뢰 등급을 가진 프로세스가 높은 신뢰등급을 가진 프로세스에 메세지를 보내는 것은 제한 한다는 것이죠

True로 설정되어 있다면 이를 해제 합니다




[+] Application Compatibility Database

Windows 에서는 기존에 호환성에 문제가 있따고 밝혀진 기존의 파일에 대한 DB가 존재합니다

그 DB에는 더이상 업데이트 되지 않는데 적절한 수정이 없으면 현재 OS에서는 정상동작하지 않는, 그런 프로그램들에 대한 정보가 있습니다
이에 대한 정보는 프로그램 실행 전에 체크 되며

DB에 있는 파일들은 설정된 지시를 따르게 됩니다

이러한 DB를 보려면 Application Compatibility Manager라는 관리툴을 깔아야 하며

http://www.microsoft.com/downloads/en/details.aspx?FamilyId=24DA89E9-B581-47B0-B45E-492DD6DA2971&displaylang=en

에서 다운 받을 수 있습니다 :D

만약 호환성 문제가 되어있되, 지시가 적히지 않은 프로그램의 경우가 있다면, 다음과 같은 메세지를 보이게 됩니다


<그림5. 2.0 버전의 Gom Player에 대한 호환성 DB가 존재하여 프로그램 호환성 관리자 창이 뜬 모습>

이 DB에서 만약 특정 프로그램은 관리자 권한으로 실행해야 한다고 지시가 있으면

그렇게 행하게 됩니다

예를 들면 Filemon이 있죠

<그림6. DB에 관리자로 실행되게 끔 되어 있는 Filemon>

Filemon은 현재 Process Monitor 로 Regimon 과 함께 통합이 되어 더이상 업데이트를 하지 않는데

관리자 권한이 아니면 정상동작하지 않는 고로 호환성 DB에는 관리자 권한으로 실행되라고 하는 지시를 발견할 수 있습니다




[+] 프로그램 내부 코드에 의해

이 경우가 대부분의 방패 모양은 없는데 UAC가 걸리는 그런 상황입니다

특정 프로그램들은 OS Version 에 따라 다른 코드가 실행되곤 하는데 Windows Vista 이상부터는 권한을 상승시켜 재실행 하는 경우를

종종 볼 수 있습니다

그냥 프로그램 권한을 상승시키면 되지 재 실행 할 필요는 없지 않느냐 하는 질문이 있을 수 있는데요

프로그램은 재 실행 되지 않고서 , 권한만 상승 시킬 수는 없습니다

이 점 유의해두시면 좋겠네요 

간혹, 특정 버튼에만 UAC를 걸어 프로그램을 실행 시키되, 보이지 않게 하는 경우도 있다는 걸 알아두시면 좋겠죠?

작업 관리자가 대표적인 경우 입니다


<그림7. 특정 버튼, 동작에만 권한 상승이 걸려있는 모습>

 
이상 UAC가 적용되는 조건에 대해서 써봤습니다

생각보다 복잡하네요

특히 마지막 경우  방패 모양이 실행 파일에 찍히지 않아, 실수하기 쉬운 경우가 되겠죠?
Posted by LinkC

댓글을 달아 주세요

이전버튼 1 이전버튼

블로그 이미지
LinkC

태그목록

Tistory Cumulus Flash tag cloud by BLUEnLIVE requires Flash Player 9 or better.

공지사항

Yesterday31
Today9
Total333,198

달력

 « |  » 2019.10
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

최근에 받은 트랙백

글 보관함


. .