=======================
=======================
=======================
윈도우 비스타 권한상승(Elavation) 방법 (administrator 권한을 갖게 하는 방법)
가. 권한상승 필요한 실행파일을 생성. (실행시 권한상승이 유도됨)
# manifest 파일을 작성하여 리소스에 포함시킴.
다음과 같은 manifest를 resource에 추가한다. 이렇게 하면 Vista에서는 실행 시 실행 파일의 manifest를 검사해서 권한 상승이 필요하다고 표시된 경우 권한 상승을 시도한다.
<?xml version="1.0" encoding="utf-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="x86" name="UACTest" type="win32"/>
<description>UAC Test Program</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
위의 메니페스트 파일을 포함시킨 exe 파일을 보면 ‘윈도우 방패’ 모양이 exe 아이콘에 추가됨을 확인할 수 있습니다(윈도우 비스타에서).
나. 응용프로그램을 shellexecute를 이용 administrator 권한 주며 실행하기
예제 함수) RunAsAdmin( NULL, “regsvr32.exe”, “weblobby.exe” )
RunAsAdmin( HWND hWnd, LPTSTR lpFile, LPTSTR lpParameters )
{
SHELLEXECUTEINFO exeset;
ZeroMemory(&exeset, sizeof(exeset));
exeset.cbSize = sizeof(SHELLEXECUTEINFOW);
exeset.hwnd = hWnd;
exeset.fMask = SEE_MASK_FLAG_DDEWAIT|SEE_MASK_FLAG_NO_UI;
exeset.lpVerb = _TEXT("runas");
exeset.lpFile = lpFile;
exeset.lpParameters = lpParameters;
exeset.nShow = SW_SHOWNORMAL;
if(!ShellExecuteEx(&exeset))
{
return FALSE;
}
return TRUE;
}
다. 권한 상승이 필요한 COM module 만들기
참조하세요=> http://cpplog.tistory.com/5
라. COM 객체 권한 상승하여 ‘생성’하기.
참조하세요=> http://cpplog.tistory.com/5
#출처#
windows vista 보안과 프로그램 동작의 이해.
Vista에서 Administrator로 application 돌리는 방법
http://blog.naver.com/bokstory/70012394842
=======================
=======================
=======================
'프로그래밍 관련 > 프로그래밍 관련팁' 카테고리의 다른 글
C++ STL 키값 찾기 팁 (0) | 2010.01.13 |
---|---|
바탕화면 경로 알아오는 API (0) | 2009.11.11 |
Active X 버전관리 (0) | 2009.06.29 |
웹페이지에 ActiveX 삽입 (1) | 2009.06.25 |
Active X 인증 관련 (안전한 인증) (0) | 2009.06.25 |