윈도우 (D3D)가 활성화되어있는 동안 모든 글로벌 단축키를 비활성화 (캡처/차단/차단)하는 응용 프로그램 (게임)을 리버스 엔지니어링 (OllyDbg)하려고합니다 (Ctrl-Alt -Del).리버스 엔지니어링 글로벌 단축키 블록
윈도우가 활성화되어있는 동안 해당 응용 프로그램이 글로벌 단축키 (다른 응용 프로그램에서 설정 한 winkey, CTRL + Esc 및 글로벌 단축키 포함)를 어떤 방법으로 캡처/비활성화 할 수 있습니까?
DirectInput을 사용하는 것 같습니다 (중요하다면). 낮은 레벨의 후크 (SetWindowsHookEx
)를 설정하지 않은 것을 볼 수 있습니다. 어떤 다른 방법으로 그렇게 할 수 있습니까? 만든
관찰 : 창에 초점이 동안 핫 키를 여전히 사용할 수있다 (그 창에 포커스가있는 동안) 응용 프로그램이 일시 중단
- . 창을 다른 것으로 전환하면 가능합니다. 일시 중단 된 응용 프로그램 창으로 다시 전환하면 바로 가기 키가 다시 비활성화됩니다.
- 같은 일을하고 있지만 창에서 포커스를 잃은 후 응용 프로그램을 일시 중단 한 다음 일시 중단 된 창으로 다시 전환하면 바로 가기 키가 완전히 작동합니다.
- 편집 : 응용 프로그램이
RegisterHotKey
으로 설정된 글로벌 단축키를 차단하지만, 후크 (SetWindowsHookEx
)를 사용하여 만든 단축기를 비활성화하지 않습니다.
위의 실험은 응용 프로그램이 일시 중지 된 경우에도 작동하는 창과 관련된 일부 설정임을 나타냅니다. 그것은 일종의 DirectInput 설정 일 수 있습니까? (내가 본 유일한 DINPUT API 함수 호출은 DINPUT8.DirectInput8Create
입니다.)
이 동작을 변경하여 게임 윈도우에 포커스가있는 동안 다른 응용 프로그램의 바로 가기 키가 작동하도록합니다. 어떤 아이디어와 조언도 감사합니다.
* 모든 * 단축키를 비활성화 할 수 없습니다 - Ctrl-Alt-Del은 항상 시스템에 의해 차단됩니다. –
@KerrekSB : [꼭 그렇지는 않습니다.] (http://oblita.com/Interception) – josh3736
@ josh3736 : 매우 흥미 롭습니다! https://github.com/TTimo/doom3.gpl/tree/master/neo/sys/win32 (충분히 재미있게 그들은 모두뿐만 아니라이 작업 관리자를 비활성화 –