A Deep Dive into the GetProcessHandleFromHwnd API
Source Google Project Zero
Description
This analysis examines the GetProcessHandleFromHwnd API in Windows, focusing on its implementation changes and security implications. Originally introduced in Windows Vista, the API attempts to obtain a handle to a process owning a specified window handle (HWND). Early versions used a windows hook technique to duplicate process handles, but modern Windows 11 implementations use a kernel-mode function to open process handles directly. The API's documented security properties contain inaccuracies, particularly regarding UIAccess requirements and user integrity levels. The analysis highlights that the API can be used in certain UAC bypass scenarios, such as with Quick Assist, even when processes run under different user contexts.