XInput reverse-engineering tools and documentation
This DLL project hooks common Windows APIs used internally by XInput libraries. Compatible device discovery is actually rather primitive, SetupDiEnumDeviceInterfaces
is called on the XUSB device interface GUID (see XUSB.h
), on success device handle is obtained via CreateFile
and data exchanged using DeviceIoControl
. Said APIs get hooked and the arguments of interest dumped into a log file.
Requires Visual Studio 2022 to build.
Build the XInputHooker.dll
for the right architecture (32-Bit for 32-Bit processes and likewise for 64-Bit) and place the ioctls.json
file in the same directory as the DLL. Inject the XInputHooker.dll
into a process/game using any variant of the XInput user API libraries. Upon successful injection a XInputHooker.log
will be generated in the process root directory. All sniffed API calls will be dumped there. It will grow fast so don't run for too long 😉