2012-11-14 5 views
0

앱이 상승하지 않은 상태에서 실행되는 것을 차단하는 방법을 찾을 수 있습니까? 높은 수준의 권한으로 응용 프로그램을 실행할 때 문제없이 작동합니다. 승격되지 않은 상태에서 실행하면 응용 프로그램이 시작되지 않습니다.앱이 상승하지 않은 (관리자가 아닌) 앱을 실행하지 못하도록 차단하는 방법

앱이 상승하지 않은 것을 막을 수있는 요소를 감지하는 비법이 있습니까?

Google 애플리케이션은 보호 된 폴더 즉 프로그램 파일에 데이터를 쓰지 않습니다.

+0

어떤 프로젝트 유형입니까? WinForms, WPF, 콘솔? VS에서 Debug-> Exceptions를 실행하고 Common Language Runtime Exceptions 옆에 Throw를 체크하십시오. 이렇게하면 어떤 try/catch 블록도 삼키는 예외를 예방할 수 있습니다. – TheEvilPenguin

+0

WinForms (.NET 4). 우리는 응용 프로그램을 컴파일하고 별도의 컴퓨터에 바이너리를 설치합니다. 우리는 컴파일 된 바이너리로 실행되는 것을 막는 것을 탐지해야합니다. –

답변

3

Windows 이벤트 뷰어에서 던진 예외 (가장 효율적인 방법이 아님)를 보거나 예외 정보를 표시하거나 기록하는 예외 처리기로 전체 프로그램을 감쌀 수 있습니다. 프로젝트 편집 및 빌드). 예외가 발생하면 권한이 충분하지 않은 작업을 찾는 데 너무 많은 어려움이 있어서는 안됩니다.

+0

Windows 이벤트 뷰어에서 예외 세부 사항을 찾을 수 있도록 관리합니다. 관심이있는 사용자는 Shell32를 사용하여 바로 가기를 검사 할 때 UnauthorizedAccessException이 발생합니다. 이제 귀사의 솔루션은 올바른 방향으로 나아갑니다. –

1

오류를 파일 (또는 콘솔 또는 원하는대로)에 기록하여 문제의 원인이되는 명령을 기록해야합니다. 디버그에서 오류를 감지 할 수도 있지만이 VS는 관리자로 실행 중이 어서는 안됩니다.

어쨌든 가장 일반적인 원인은 HKEY_CURRENT_USER가 아닌 임의의 하이브에있는 상승 된 권한 (예 : Program Files, Windows ...) 또는 레지스트리 키에만 쓸 수있는 디렉토리에 쓰기를 시도하는 것입니다.

관련 문제