호광님 답변 감사드립니다.
자료를 더 찾아본 결과 C++ Builder 6.0에서도 아래와 같은 manifest와 rc 파일을 프로젝트에 추가하면 관리자 권한으로 UAC 권한 상승을 요구하고, 승인하면 관리자 권한으로 실행된다는 것을 알게 되었습니다.
이렇게 나온 실행 파일을 Vista에서 보면 UAC 권한 상승을 요구하는 방패모양의 아이콘도 잘 나오고, 실행하면 UAC 권한 상승을 요구합니다.
권한 상승 후 HKEY_LOCAL_MACHINE (HKLM)의 Registry에 쓰기나 Program Files 또는 System32 폴더 아래 파일 쓰기도 가능한 것으로 보아 권한 상승에 잘 된 것 같은데..
Vista에서 '전역 후킹 DLL'은 여전히 안 됩니다.
2009를 사용하는 방법외에 전역 후킹을 할 수 있는 방법이 없을까요?
HookTest.manifest 파일
HookTest.rc 파일
1 24 "HookTest.manifest"
김호광 님이 쓰신 글 :
: 당연히 UAC 권한 문제입니다.
:
: builder 6에서 하시지 마시고 2009에서 작업하시면서 uac 인증 코드를 넣으시면 됩니다. 델마당 쪽에 보시면 uac 권한 상승이라는 주제로 검색하시면 나옵니다.
:
: Sexyguy™*^^* 님이 쓰신 글 :
: : 'Windows API 정복' 책에 있는 API 후킹 소스를 이용해서 키보드를 전역 후킹하는 DLL을 만들었습니다.
: :
: : Borland C++ Builder 6.0을 사용중인데..
: : #pragma comment(linker, "/SECTION:.SHAREDATA,RWS") 이 되지 않아 DLL만 Visual Studio 2005에서 만들었습니다.
: :
: : 결과적으로 XP에서는 잘 동작합니다만, Vista에서는 'DLL을 이용하는 프로그램'이 활성화된 상태에서만 동작합니다.
: : 당연히 'DLL을 이용하는 프로그램'은 권한 상승하여 실행하고 있구요. 프로그램의 권한이 DLL에도 동일하게 적용된다고 알고 있습니다.
: : 후킹된 메시지를 DLL에서 프로그램으로 보내지 않고, DLL 내부에서 처리하기 때문에 SendMessage()는 문제는 아니구요.
: :
: : 자료 검색을 해보아도 자료가 거의 없네요.
: : 혹시, Vista에서 전역훅 구현해보신분 계시면 조언 좀 부탁드립니다.
: : 읽어주셔서 감사합니다. 즐프하세요~
|
http://byung.egloos.com/2946648