MIT License

项目介绍

nefarius/HidGuardian 是一个托管在 GitHub 上的开源项目,主要使用 C 编写,采用 MIT License 许可证,目前获得 197 个 Star、45 次 Fork。

仓库全名
nefarius/HidGuardian
开源许可证
MIT License
Star 数
197
Fork 数
45

README 摘要

HidGuardian Blocks various input devices from being accessed by user-mode applications. This was a research project and an attempt of turning the proof of concept project HideDS4 into a Windows kernel-mode filter driver that allows system-wide hiding of joysticks and gamepads, addressing doubled-input issues in games running with remapping utilities. It has been discontinued in favour of better solutions. The code…

完整内容见 GitHub 原始 README 或本页 。

常见问题

HidGuardian 用什么语言开发?

主要使用 C 编写,采用 MIT License 许可证,目前有 197 个 Star。

HidGuardian 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 HidGuardian 的源码?

可以直接克隆仓库:git clone https://github.com/nefarius/HidGuardian.git,默认分支为 master;安装与运行步骤见仓库 README。

HidGuardian 最近还在维护吗?

仓库最近一次更新为 2023年7月28日,当前没有未关闭的 Issue;Star 数为 197,可作为社区活跃度的参考。

关于

Windows kernel-mode driver for controlling access to various input devices.

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

简要分析

热度分
289
价值分
131
活跃状态
归档

语言占比

C
C#
PowerShell
Shell

贡献者

README

Devil

HidGuardian

Blocks various input devices from being accessed by user-mode applications.


This was a research project and an attempt of turning the proof of concept project HideDS4 into a Windows kernel-mode filter driver that allows system-wide hiding of joysticks and gamepads, addressing doubled-input issues in games running with remapping utilities. It has been discontinued in favour of better solutions. The code will stay up for anyone to use as either an inspiration or a negative example 😜 Do bear in mind, that the code may contain unaddressed issues! Compile and use at your own risk! No support or binaries provided!


The Problem

Games and other user-mode applications enumerate Joysticks, Gamepads and similar devices through various well-known APIs (DirectInput, XInput, Raw Input) and continuously read their reported input states. The primary collection of devices available through DirectInput are HID-Class based devices. When emulating virtual devices with ViGEm the system (and subsequently the application) may not be able to distinguish between e.g. a “real” physical HID Gamepad which acts as a “feeder” and the virtual ViGEm device, therefore suffer from side effects like doubled input. Since coming up with a solution for each application available would become quite tedious a more generalized approach was necessary to reliably solve these issues.

The Semi-Solution

A common way for intercepting the Game’s communication with the input devices would be hooking the mentioned input APIs within the target process. While a stable and user-friendly implementation for the end-user might be achievable for some processes, targeting the wide variety of Games available on the market is a difficult task. Hooking APIs involves manipulating the target processes memory which also might falsely trigger Anti-Cheat systems and ban innocent users.

The Real Solution

Meet HidGuardian: a Windows kernel-mode driver sitting on top of every input device attached to the system. With its companion user-mode component HidCerberus it morphs into a powerful device firewall toolkit allowing for fine-grained access restrictions to input devices.

Supported Systems

The driver is built for Windows 7/8/8.1/10 (x86 and amd64).

How to build

Prerequisites

You can either build directly within Visual Studio or in PowerShell by running the build script:

.\build.ps1

Do bear in mind that you’ll need to sign the driver to use it without test mode.

评论

暂无评论