Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1049019
  • 博文数量: 50
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 2037
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-05 08:03
文章分类
文章存档

2011年(1)

2010年(3)

2009年(17)

2008年(29)

我的朋友

分类: WINDOWS

2010-05-02 23:18:15

 

.386
.model flat,stdcall
option casemap:none

include windows.inc
include kernel32.inc
include user32.inc
include gdi32.inc
include Comctl32.inc
include comdlg32.inc
include shell32.inc
include masm32.inc
include advapi32.inc
include dbghelp.inc

includelib kernel32.lib
includelib user32.lib
includelib gdi32.lib
includelib Comctl32.lib
includelib comdlg32.lib
includelib shell32.lib
includelib masm32.lib
includelib advapi32.lib
includelib dbghelp.lib

EnableDebugPrivilege               proto     :DWORD
CTEXT    MACRO y:VARARG
    LOCAL sym
    CONST segment
    ifidni ,<>           
        sym db 0       
    else           
        sym db y,0
    endif
    CONST ends
    exitm
ENDM

.data
hInstance   dd ?  
ProcessId   dd ?
ThreadId    dd ?
lpbaseaddr  dd ?
hProcess    dd ?
hThread     dd ?
hDlg        dd ?
hMenu       dd ?
OutBuff     db 256 dup(0)

.code
include HID.inc
WriteLog proc c fmt:PTR SBYTE, args:VARARG
local hFile:HANDLE,nbr:DWORD,modname[200]:byte,temp[5000]:byte
LOCAL LogPath[256]:byte
    invoke GetModuleFileName,NULL,addr modname,sizeof modname
    invoke GetPathOnly, addr modname, addr LogPath
    invoke lstrcat, addr LogPath, CTEXT("Log.txt")
    invoke CreateFile,addr LogPath,GENERIC_READ or GENERIC_WRITE,FILE_SHARE_READ or FILE_SHARE_WRITE,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL
    mov hFile,eax
    .if sdword ptr eax <0
        ret
    .endif
    invoke SetFilePointer,hFile,0,0,FILE_END
    invoke wvsprintf,addr temp,fmt,addr args
    invoke lstrlen,addr temp
    mov edx,eax
    invoke WriteFile,hFile,addr temp, edx, addr nbr, NULL
    ;invoke lstrcpy,addr temp,CTEXT(0dh,0ah)
    invoke lstrlen,addr temp
    mov edx,eax
    invoke WriteFile,hFile,addr temp, edx, addr nbr, NULL
    invoke CloseHandle,hFile;
    ret
WriteLog endp 
DllMain proc hinstdll:DWORD , reason:DWORD , reserved1:DWORD
    pushad
    .if reason == DLL_PROCESS_ATTACH
        push hinstdll
        pop hInstance
        invoke EnableDebugPrivilege,TRUE
        call LoadDebug
        call StartDebug           
                         
     .elseif reason == DLL_PROCESS_DETACH

             
     .elseif reason == DLL_THREAD_ATTACH
          
     .endif
@@Exit:
     popad
     mov eax,TRUE
     ret
DllMain endp

MyAPI1   proc                 
         push offset Hook_HidD_GetHidGuid
         ret
MyAPI1   endp
Hook proc
         invoke GetCurrentProcessId
         mov ProcessId,eax
         invoke OpenProcess , PROCESS_ALL_ACCESS ,0, ProcessId
         mov hProcess,eax 
         invoke WriteProcessMemory,hProcess,strBHidD_GetHidGuid,offset MyAPI1,7,0
  ret
Hook endp
Hook_HidD_GetHidGuid proc
;68BE13E0 >  8BFF            mov     edi, edi
;68BE13E2    55              push    ebp
;68BE13E3    8BEC            mov     ebp, esp
;68BE13E5    56              push    esi
;68BE13E6    57              push    edi
;68BE13E7    8B7D 08         mov     edi, dword ptr [ebp+8]
          mov     edi, edi
          pushad
          invoke wsprintf,addr OutBuff,CTEXT("%s: %.08X",13,10,0),CTEXT("EDI的值为:"),edi
          invoke WriteLog,addr OutBuff
          popad
          push    ebp
          push    esi
          push    edi
          mov ecx,strBHidD_GetHidGuid
          add ecx,7
          push ecx         
          ret

Hook_HidD_GetHidGuid endp

EnableDebugPrivilege proc isEnable   
local htoken:HANDLE  
local uid:LUID   
local tp:TOKEN_PRIVILEGES   
local isSuccess   
        mov isSuccess,FALSE   
        invoke GetCurrentProcess   
        lea ebx,htoken   
        invoke OpenProcessToken,eax,TOKEN_ADJUST_PRIVILEGES,    ebx           
        invoke LookupPrivilegeValue,NULL,CTEXT("SeDebugPrivilege"), addr uid  
        mov tp.PrivilegeCount,1   
        push uid.LowPart   
        pop tp.Privileges[0].Luid.LowPart   
        push uid.HighPart   
        pop tp.Privileges[0].Luid.HighPart   
        .if isEnable   
                mov tp.Privileges[0].Attributes,   SE_PRIVILEGE_ENABLED   
        .else   
                mov tp.Privileges[0].Attributes,0   
        .endif   
        invoke AdjustTokenPrivileges,htoken,FALSE,addr tp,   sizeof tp,NULL,NULL  
        invoke GetLastError   
        .if eax == ERROR_SUCCESS   
                mov isSuccess,TRUE   
        .endif   
        invoke CloseHandle,htoken   
        mov eax,isSuccess   
        ret   
EnableDebugPrivilege endp
END  DllMain


.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


 


LIBRARY HID


EXPORTS HidD_FlushQueue
EXPORTS HidD_FreePreparsedData
EXPORTS HidD_GetAttributes
EXPORTS HidD_GetConfiguration
EXPORTS HidD_GetFeature
EXPORTS HidD_GetHidGuid
EXPORTS HidD_GetIndexedString
EXPORTS HidD_GetInputReport
EXPORTS HidD_GetManufacturerString
EXPORTS HidD_GetMsGenreDescriptor
EXPORTS HidD_GetNumInputBuffers
EXPORTS HidD_GetPhysicalDescriptor
EXPORTS HidD_GetPreparsedData
EXPORTS HidD_GetProductString
EXPORTS HidD_GetSerialNumberString
EXPORTS HidD_Hello
EXPORTS HidD_SetConfiguration
EXPORTS HidD_SetFeature
EXPORTS HidD_SetNumInputBuffers
EXPORTS HidD_SetOutputReport
EXPORTS HidP_GetButtonCaps
EXPORTS HidP_GetCaps
EXPORTS HidP_GetData
EXPORTS HidP_GetExtendedAttributes
EXPORTS HidP_GetLinkCollectionNodes
EXPORTS HidP_GetScaledUsageValue
EXPORTS HidP_GetSpecificButtonCaps
EXPORTS HidP_GetSpecificValueCaps
EXPORTS HidP_GetUsages
EXPORTS HidP_GetUsagesEx
EXPORTS HidP_GetUsageValue
EXPORTS HidP_GetUsageValueArray
EXPORTS HidP_GetValueCaps
EXPORTS HidP_InitializeReportForID
EXPORTS HidP_MaxDataListLength
EXPORTS HidP_MaxUsageListLength
EXPORTS HidP_SetData
EXPORTS HidP_SetScaledUsageValue
EXPORTS HidP_SetUsages
EXPORTS HidP_SetUsageValue
EXPORTS HidP_SetUsageValueArray
EXPORTS HidP_TranslateUsagesToI8042ScanCodes
EXPORTS HidP_UnsetUsages
EXPORTS HidP_UsageListDifference
EXPORTS HidservInstaller


阅读(10175) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-07-20 13:39:26

laomms兄有VC的代码吗?汇编看得头都大了