Windows服务HidServ及Hid.dll工作原理
2022-05-06
1343
0
在Windows操作系统下,使用自定义HID接口通讯时,离不开hid.dll,就算你使用的是hidapi等第三方HID库,它的底层也是HID.dll这个库。而我们使用系统原生的hid.dll库时,也一般是这样引用的。
#include<hidsdi.h>
#pragma comment(lib,"hid.lib ")
所以,从这里来来,hid.dll是windows提供给用户的关于HID通讯的最底层的应用层库。
而这个hid.dll的标准库,却是以服务的形式存在于系统,这样的好处是无论是多少用户登录,只有此一份服务,与当前的用户会话无关。
在Windows设备管理器中,我们可以看到一个hidserv的服务,这个服务就是hid.dll的服务名。
而当我们转至详情时,可以看到进程名为svchost.exe,其命令行为
c:\windows\system32\svchost.exe -k LocalSystemNetworkRestricted -p
hidserv注册表项
而经过我们的研究,在注册表中该hidserv的服务信息如下:
注册表路径为:
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hidserv
其内容如下:
可以看到,这里的注册表记录着该服务的一些基本信息,如ImagePath和ServiceDll。
SVHOST hidserv
从上面的svchost.exe的命令行
c:\windows\system32\svchost.exe -k LocalSystemNetworkRestricted -p
可以知道,其分类为LocalSystemNetworkRestricted,在注册表的计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost
路径下,找到LocalSystemNetworkRestricted项,可以看到其有hidserv的项。
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936