드디어 키보드 데이터 얻어내기 성공!!!

므흣!!! 간단하지만 키보드 입력 데이터 가져왔당!!! 쿠쿠

<ntddkbd.h> 헤더 파일에 PKEYBOARD_INPUT_DATA 구조체가 있었다…

그래서 그냥 irp->AssociatedIrp.SystemBuffer 값을 그냥 저 구조체 변수에 넣어주면 된다. 유유 유유

디버거에서 Hook Done Dispatch에 뷁포인트 걸고서

사용자 삽입 이미지
디버기에서 메모장 열고 ‘a’ 를 입력하면 뷁포인트 건 곳에 멈춰지고,

…….
else if ( irp->AssociatedIrp.SystemBuffer )  {
        pBuffer = irp->AssociatedIrp.SystemBuffer;

                                           }


…….

pBuffer에 배정하고 나면 아래와 같이

PKEYBOARD_INPUT_DATA
구조체 변수 pBuffer에

아래와 같은 스샷처럼 데이터가 들어가게 된다.

사용자 삽입 이미지
저 값을 바꿔 주면 입력된 값을 변경 가능하다.

그리고 나중에 Win32에서 원하는 키 눌러진 것 처럼

하려면 IRP 생성해서 보내주면 될 듯 한데… 그것도 고고씽~!~!

댓글 남기기