.data
strHidD_FlushQueue db "HidD_FlushQueue",0 strHidD_FreePreparsedData db "HidD_FreePreparsedData",0 strHidD_GetAttributes db "HidD_GetAttributes",0 strHidD_GetConfiguration db "HidD_GetConfiguration",0 strHidD_GetFeature db "HidD_GetFeature",0 strHidD_GetHidGuid db "HidD_GetHidGuid",0 strHidD_GetIndexedString db "HidD_GetIndexedString",0 strHidD_GetInputReport db "HidD_GetInputReport",0 strHidD_GetManufacturerString db "HidD_GetManufacturerString",0 strHidD_GetMsGenreDescriptor db "HidD_GetMsGenreDescriptor",0 strHidD_GetNumInputBuffers db "HidD_GetNumInputBuffers",0 strHidD_GetPhysicalDescriptor db "HidD_GetPhysicalDescriptor",0 strHidD_GetPreparsedData db "HidD_GetPreparsedData",0 strHidD_GetProductString db "HidD_GetProductString",0 strHidD_GetSerialNumberString db "HidD_GetSerialNumberString",0 strHidD_Hello db "HidD_Hello",0 strHidD_SetConfiguration db "HidD_SetConfiguration",0 strHidD_SetFeature db "HidD_SetFeature",0 strHidD_SetNumInputBuffers db "HidD_SetNumInputBuffers",0 strHidD_SetOutputReport db "HidD_SetOutputReport",0 strHidP_GetButtonCaps db "HidP_GetButtonCaps",0 strHidP_GetCaps db "HidP_GetCaps",0 strHidP_GetData db "HidP_GetData",0 strHidP_GetExtendedAttributes db "HidP_GetExtendedAttributes",0 strHidP_GetLinkCollectionNodes db "HidP_GetLinkCollectionNodes",0 strHidP_GetScaledUsageValue db "HidP_GetScaledUsageValue",0 strHidP_GetSpecificButtonCaps db "HidP_GetSpecificButtonCaps",0 strHidP_GetSpecificValueCaps db "HidP_GetSpecificValueCaps",0 strHidP_GetUsages db "HidP_GetUsages",0 strHidP_GetUsagesEx db "HidP_GetUsagesEx",0 strHidP_GetUsageValue db "HidP_GetUsageValue",0 strHidP_GetUsageValueArray db "HidP_GetUsageValueArray",0 strHidP_GetValueCaps db "HidP_GetValueCaps",0 strHidP_InitializeReportForID db "HidP_InitializeReportForID",0 strHidP_MaxDataListLength db "HidP_MaxDataListLength",0 strHidP_MaxUsageListLength db "HidP_MaxUsageListLength",0 strHidP_SetData db "HidP_SetData",0 strHidP_SetScaledUsageValue db "HidP_SetScaledUsageValue",0 strHidP_SetUsages db "HidP_SetUsages",0 strHidP_SetUsageValue db "HidP_SetUsageValue",0 strHidP_SetUsageValueArray db "HidP_SetUsageValueArray",0 strHidP_TranslateUsagesToI8042ScanCodes db "HidP_TranslateUsagesToI8042ScanCodes",0 strHidP_UnsetUsages db "HidP_UnsetUsages",0 strHidP_UsageListDifference db "HidP_UsageListDifference",0 strHidservInstaller db "HidservInstaller ",0,0
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 mov strBHidP_GetSpecificValueCaps,EAX invoke GetProcAddress , LibID , addr strHidP_SetUsageValue mov strBHidP_SetUsageValue,EAX invoke GetProcAddress , LibID , addr strHidD_GetPreparsedData mov strBHidD_GetPreparsedData,EAX invoke GetProcAddress , LibID , addr strHidD_FlushQueue mov strBHidD_FlushQueue,EAX invoke GetProcAddress , LibID , addr strHidD_GetFeature mov strBHidD_GetFeature,EAX invoke GetProcAddress , LibID , addr strHidD_SetFeature mov strBHidD_SetFeature,EAX invoke GetProcAddress , LibID , addr strHidD_GetAttributes mov strBHidD_GetAttributes,EAX invoke GetProcAddress , LibID , addr strHidD_GetProductString mov strBHidD_GetProductString,EAX invoke GetProcAddress , LibID , addr strHidD_GetSerialNumberString mov strBHidD_GetSerialNumberString,EAX invoke GetProcAddress , LibID , addr strHidP_GetCaps mov strBHidP_GetCaps,EAX invoke GetProcAddress , LibID , addr strHidD_GetHidGuid mov strBHidD_GetHidGuid,EAX invoke GetProcAddress , LibID , addr strHidD_FreePreparsedData mov strBHidD_FreePreparsedData,EAX invoke GetProcAddress , LibID , addr strHidP_GetScaledUsageValue mov strBHidP_GetScaledUsageValue,EAX invoke GetProcAddress , LibID , addr strHidP_GetUsages mov strBHidP_GetUsages,EAX invoke GetProcAddress , LibID , addr strHidP_GetUsageValue mov strBHidP_GetUsageValue,EAX invoke GetProcAddress , LibID , addr strHidP_SetScaledUsageValue mov strBHidP_SetScaledUsageValue,EAX invoke GetProcAddress , LibID , addr strHidP_MaxUsageListLength mov strBHidP_MaxUsageListLength,EAX invoke GetProcAddress , LibID , addr strHidP_GetSpecificButtonCaps mov strBHidP_GetSpecificButtonCaps,EAX invoke GetProcAddress , LibID , addr strHidD_FreePreparsedData mov strBHidD_FreePreparsedData,EAX invoke GetProcAddress , LibID , addr strHidD_GetConfiguration mov strBHidD_GetConfiguration,EAX invoke GetProcAddress , LibID , addr strHidD_GetIndexedString mov strBHidD_GetIndexedString,EAX invoke GetProcAddress , LibID , addr strHidD_GetInputReport mov strBHidD_GetInputReport,EAX invoke GetProcAddress , LibID , addr strHidD_GetManufacturerString mov strBHidD_GetManufacturerString,EAX invoke GetProcAddress , LibID , addr strHidD_GetMsGenreDescriptor mov strBHidD_GetMsGenreDescriptor,EAX invoke GetProcAddress , LibID , addr strHidD_GetNumInputBuffers mov strBHidD_GetNumInputBuffers,EAX invoke GetProcAddress , LibID , addr strHidD_GetPhysicalDescriptor mov strBHidD_GetPhysicalDescriptor,EAX invoke GetProcAddress , LibID , addr strHidD_Hello mov strBHidD_Hello,EAX invoke GetProcAddress , LibID , addr strHidD_SetConfiguration mov strBHidD_SetConfiguration,EAX invoke GetProcAddress , LibID , addr strHidD_SetNumInputBuffers mov strBHidD_SetNumInputBuffers,EAX invoke GetProcAddress , LibID , addr strHidD_SetOutputReport mov strBHidD_SetOutputReport,EAX invoke GetProcAddress , LibID , addr strHidP_GetButtonCaps mov strBHidP_GetButtonCaps,EAX invoke GetProcAddress , LibID , addr strHidP_GetData mov strBHidP_GetData,EAX invoke GetProcAddress , LibID , addr strHidP_GetExtendedAttributes mov strBHidP_GetExtendedAttributes,EAX invoke GetProcAddress , LibID , addr strHidP_GetLinkCollectionNodes mov strBHidP_GetLinkCollectionNodes,EAX invoke GetProcAddress , LibID , addr strHidP_GetUsageValueArray mov strBHidP_GetUsageValueArray,EAX invoke GetProcAddress , LibID , addr strHidP_GetUsagesEx mov strBHidP_GetUsagesEx,EAX invoke GetProcAddress , LibID , addr strHidP_GetValueCaps mov strBHidP_GetValueCaps,EAX invoke GetProcAddress , LibID , addr strHidP_InitializeReportForID mov strBHidP_InitializeReportForID,EAX invoke GetProcAddress , LibID , addr strHidP_MaxDataListLength mov strBHidP_MaxDataListLength,EAX invoke GetProcAddress , LibID , addr strHidP_SetData mov strBHidP_SetData,EAX invoke GetProcAddress , LibID , addr strHidP_SetUsageValueArray mov strBHidP_SetUsageValueArray,EAX invoke GetProcAddress , LibID , addr strHidP_TranslateUsagesToI8042ScanCodes mov strBHidP_TranslateUsagesToI8042ScanCodes,EAX invoke GetProcAddress , LibID , addr strHidP_UnsetUsages mov strBHidP_UnsetUsages,EAX invoke GetProcAddress , LibID , addr strHidP_UsageListDifference mov strBHidP_UsageListDifference,EAX invoke GetProcAddress , LibID , addr strHidservInstaller mov strBHidservInstaller,EAX invoke GetProcAddress , LibID , addr strHidP_SetUsages mov strBHidP_SetUsages,EAX
.endif popad RET
LoadDebug Endp HidD_SetFeature Proc jmp strBHidD_SetFeature ret HidD_SetFeature Endp HidD_GetProductString Proc jmp strBHidD_GetProductString ret HidD_GetProductString Endp HidP_GetSpecificValueCaps Proc jmp strBHidP_GetSpecificValueCaps ret HidP_GetSpecificValueCaps Endp HidP_SetUsageValue Proc jmp strBHidP_SetUsageValue ret HidP_SetUsageValue Endp HidD_GetPreparsedData Proc jmp strBHidD_GetPreparsedData ret HidD_GetPreparsedData Endp HidD_FlushQueue Proc jmp strBHidD_FlushQueue ret HidD_FlushQueue Endp HidD_GetHidGuid proc jmp strBHidD_GetHidGuid ret HidD_GetHidGuid endp HidD_GetFeature Proc jmp strBHidD_GetFeature ret HidD_GetFeature Endp HidD_GetAttributes Proc jmp strBHidD_GetAttributes ret HidD_GetAttributes Endp HidD_GetSerialNumberString Proc jmp strBHidD_GetSerialNumberString ret HidD_GetSerialNumberString Endp HidP_GetCaps Proc jmp strBHidP_GetCaps ret HidP_GetCaps Endp HidP_MaxUsageListLength Proc jmp strBHidP_MaxUsageListLength ret HidP_MaxUsageListLength Endp HidD_FreePreparsedDatae Proc jmp strBHidD_FreePreparsedData ret HidD_FreePreparsedDatae Endp HidP_GetScaledUsageValue Proc jmp strBHidP_GetScaledUsageValue ret HidP_GetScaledUsageValue Endp HidP_GetUsages Proc jmp strBHidP_GetUsages ret HidP_GetUsages Endp HidP_GetUsageValue Proc jmp strBHidP_GetUsageValue ret HidP_GetUsageValue Endp HidP_SetUsages Proc jmp strBHidP_SetUsages ret HidP_SetUsages Endp HidP_SetScaledUsageValue Proc jmp strBHidP_SetScaledUsageValue ret HidP_SetScaledUsageValue Endp HidD_FreePreparsedData proc jmp strBHidD_FreePreparsedData ret HidD_FreePreparsedData endp HidD_GetConfiguration proc jmp strBHidD_GetConfiguration ret HidD_GetConfiguration endp HidD_GetIndexedString proc jmp strBHidD_GetIndexedString ret HidD_GetIndexedString endp HidD_GetInputReport proc jmp strBHidD_GetInputReport ret HidD_GetInputReport endp HidD_GetManufacturerString proc jmp strBHidD_GetManufacturerString ret HidD_GetManufacturerString endp HidD_GetMsGenreDescriptor proc jmp strBHidD_GetMsGenreDescriptor ret HidD_GetMsGenreDescriptor endp HidD_GetNumInputBuffers proc jmp strBHidD_GetNumInputBuffers ret HidD_GetNumInputBuffers endp HidD_GetPhysicalDescriptor proc jmp strBHidD_GetPhysicalDescriptor ret HidD_GetPhysicalDescriptor endp HidD_Hello proc jmp strBHidD_Hello ret HidD_Hello endp HidD_SetConfiguration proc jmp strBHidD_SetConfiguration HidD_SetConfiguration endp HidD_SetNumInputBuffers proc jmp strBHidD_SetNumInputBuffers ret HidD_SetNumInputBuffers endp HidD_SetOutputReport proc jmp strBHidD_SetOutputReport ret HidD_SetOutputReport endp HidP_GetButtonCaps proc jmp strBHidP_GetButtonCaps ret HidP_GetButtonCaps endp HidP_GetData proc jmp strBHidP_GetData ret HidP_GetData endp HidP_GetExtendedAttributes proc jmp strBHidP_GetExtendedAttributes ret HidP_GetExtendedAttributes endp HidP_GetLinkCollectionNodes proc jmp strBHidP_GetLinkCollectionNodes ret HidP_GetLinkCollectionNodes endp HidP_GetUsageValueArray proc jmp strBHidP_GetUsageValueArray ret HidP_GetUsageValueArray endp HidP_GetUsagesEx proc jmp strBHidP_GetUsagesEx ret HidP_GetUsagesEx endp HidP_GetValueCaps proc jmp strBHidP_GetValueCaps ret HidP_GetValueCaps endp HidP_InitializeReportForID proc jmp strBHidP_InitializeReportForID ret HidP_InitializeReportForID endp HidP_MaxDataListLength proc jmp strBHidP_MaxDataListLength ret HidP_MaxDataListLength endp HidP_SetData proc jmp strBHidP_SetData ret HidP_SetData endp HidP_SetUsageValueArray proc jmp strBHidP_SetUsageValueArray ret HidP_SetUsageValueArray endp HidP_TranslateUsagesToI8042ScanCodes proc jmp strBHidP_TranslateUsagesToI8042ScanCodes ret HidP_TranslateUsagesToI8042ScanCodes endp HidP_UnsetUsages proc jmp strBHidP_UnsetUsages ret HidP_UnsetUsages endp HidP_UsageListDifference proc jmp strBHidP_UsageListDifference ret HidP_UsageListDifference endp HidservInstaller proc jmp strBHidservInstaller ret HidservInstaller endp HidP_GetSpecificButtonCaps proc jmp strBHidP_GetSpecificButtonCaps ret HidP_GetSpecificButtonCaps endp
|