strBHidD_FlushQueue dd 0
strBHidD_FreePreparsedData dd 0
strBHidD_GetAttributes dd 0
strBHidD_GetConfiguration dd 0
strBHidD_GetFeature dd 0
strBHidD_GetHidGuid dd 0
strBHidD_GetIndexedString dd 0
strBHidD_GetInputReport dd 0
strBHidD_GetManufacturerString dd 0
strBHidD_GetMsGenreDescriptor dd 0
strBHidD_GetNumInputBuffers dd 0
strBHidD_GetPhysicalDescriptor dd 0
strBHidD_GetPreparsedData dd 0
strBHidD_GetProductString dd 0
strBHidD_GetSerialNumberString dd 0
strBHidD_Hello dd 0
strBHidD_SetConfiguration dd 0
strBHidD_SetFeature dd 0
strBHidD_SetNumInputBuffers dd 0
strBHidD_SetOutputReport dd 0
strBHidP_GetButtonCaps dd 0
strBHidP_GetCaps dd 0
strBHidP_GetData dd 0
strBHidP_GetExtendedAttributes dd 0
strBHidP_GetLinkCollectionNodes dd 0
strBHidP_GetScaledUsageValue dd 0
strBHidP_GetSpecificButtonCaps dd 0
strBHidP_GetSpecificValueCaps dd 0
strBHidP_GetUsages dd 0
strBHidP_GetUsagesEx dd 0
strBHidP_GetUsageValue dd 0
strBHidP_GetUsageValueArray dd 0
strBHidP_GetValueCaps dd 0
strBHidP_InitializeReportForID dd 0
strBHidP_MaxDataListLength dd 0
strBHidP_MaxUsageListLength dd 0
strBHidP_SetData dd 0
strBHidP_SetScaledUsageValue dd 0
strBHidP_SetUsages dd 0
strBHidP_SetUsageValue dd 0
strBHidP_SetUsageValueArray dd 0
strBHidP_TranslateUsagesToI8042ScanCodes dd 0
strBHidP_UnsetUsages dd 0
strBHidP_UsageListDifference dd 0
strBHidservInstaller dd 0
RunID dd 0
LibID dd 0
.code
DebugProc proc
call Hook
ret
DebugProc endp
StartDebug proc
invoke CreateThread,NULL,0,offset DebugProc,NULL, CREATE_SUSPENDED, 0
push eax
invoke ResumeThread, EAX
pop eax
invoke CloseHandle, eax
ret
StartDebug endp
LoadDebug PROC
LOCAL LibPath[200h] :BYTE
pushad
invoke GetSystemDirectory , addr LibPath , 100h
lea ebx , LibPath
add eax,ebx
mov dword ptr [eax], 'DIH\'
mov dword ptr [eax+4], 'LLD.'
mov dword ptr [eax+8],0
invoke LoadLibrary , addr LibPath
.if eax != 0
mov LibID , EAX
invoke GetProcAddress , LibID , addr strHidP_GetSpecificValueCaps