2009-01-07 2 views
0

원래 MS 특정 키보드 저널링 훅 (WH_JOURNALRECORD)을 사용하여 C++ 응용 프로그램을 설치하면 uiAccess를 사용하는 관리자로 실행하지 않는 한 Vista에서 작동하지 않습니다. MSDN Question - Journaling hooks on Vista?키보드 저널링을 사용할 수없는 경우 키 입력을 기록하는 방법은 무엇입니까?

나중에 키 시퀀스를 친숙한 방식으로 녹음하여 나중에 다시 녹음하려고합니다. 사용자가 기록 버튼을 누르면, 정지 버튼과 기록 된 키가있는 대화 상자가 표시됩니다.

저널링 훅을 사용하는 한 가지 이점은 사용자가 키 입력 만했기 때문입니다. Shift 키를 누른 상태에서 100 개의 Shift 키가보고되지는 않았지만 문자를 누를 때 보고서 사용량을 기록했습니다. 또 다른 장점은 응용 프로그램 외부 영역에 초점을 설정하고 다른 응용 프로그램 창을 말하고 사용자가 상호 작용할 때 동작을 기록 할 수 있다는 것입니다.

기존 앱의 키보드 캡처 부분을 uiAccess를 사용하여 관리자 권한으로 실행되는 별도의 실행 파일로 만드는 것부터, 2K, 2K3, 2K8, XP, Vista 용 Windows에서 작동하는 키 스트로크를 기록하는 방법에 대한 다른 아이디어를 찾고 있습니다. .

편집 : 아무 것도 녹음하는 것만으로 보안 문제가 있음을 알고 있습니다. 해킹을위한 일반적인 키 스트로크 로거가 있다는 것을 사용자가 알지 못해도 분명히 할 수 있습니다. Soooooo .....

저널링 작업을 수행하는 방법은이 사용자와 해당 앱이 동일한 레벨 (또는 그 이하)에서 실행되고 키 입력을 캡처하는 방법입니까? popup을 사용하면 비스타 보안이 정상적으로 작동 할 수 있습니까? 그렇지만 uiAccess로 프로세스를 표시 할 수 없습니다 (그렇지 않으면 시스템의 다른 부분과 제대로 상호 작용하지 않습니다). 98 %의 경우에는 관리자에게 권한 상승.

답변

0

대신 SetWindowsHook을 사용하여 주요 문제를 해결했습니다. Ctrl + 키를 눌러 아래로 heeld 때 여러 Ctrl 키 프레스를 기록하지 않는 즉, -

const HMODULE hDLL = ::GetModuleHandle(DLL_NAME); 
::SetWindowsHookEx(WH_KEYBOARD_LL, myKeyboardProcCallback, hDLL, 0); 

콜백은 이제 키 입력 정보를 관리하고 사용 가능한 시퀀스로 변환한다.

1

가능하다해도 Microsoft가 다음 패치에서 버그를 수정하고 있음을 알 수 있습니다. 비스타의 변화는 의도적 인 것이었고, 당신이 원하는 것을 여전히 수행하기위한 명확한 방법 (uiAccess == true)이 있습니다.

+0

기존 제안 된 수정 사항의 문제점은 관리자 및 uiAccess를 모두 실행해야하며 대부분 관리자 모드에서 실행할 수없는 사용자 앱입니다. 사용자는 액세스 권한이 없습니다. –

관련 문제