无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 85955|回复: 599
打印 上一主题 下一主题

[原创] 开源的硬件信息工具nwinfo [20241107]

    [复制链接]
跳转到指定楼层
1#
发表于 2021-12-3 14:34:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wintoflash 于 2024-11-7 20:31 编辑

下载:v1.0.4 nwinfo.zip (1.96 MB, 下载次数: 1717)
历史版本:
    v0.1.0   nwinfo_v0.1.0.zip (789.03 KB, 下载次数: 57)
    v0.2.0   nwinfo_v0.2.0.zip (799 KB, 下载次数: 47)
    v0.3.0   nwinfo_v0.3.0.zip (1.16 MB, 下载次数: 52)
    v0.4.6   nwinfo_v0.4.6.zip (1.2 MB, 下载次数: 37)
    v0.5.6   nwinfo_v0.5.6.zip (1.04 MB, 下载次数: 38)
    v0.7.1   nwinfo_v0.7.1.zip (1.66 MB, 下载次数: 58)
    v0.8.11 nwinfo_v0.8.11.zip (1.72 MB, 下载次数: 85)
    v0.9.7   nwinfo_v0.9.7.zip (1.65 MB, 下载次数: 20)
主页:https://a1ive.github.io/nwinfo/
源码:https://github.com/a1ive/nwinfo
支持 XP 及以上系统,需要管理员权限。
图形界面:

命令行用法:
  1. .\nwinfo.exe OPTIONS
  2. OPTIONS:
  3.   --format=FORMAT  指定输出格式,支持 'YAML' (默认),'JSON' 和 'LUA'。
  4.   --output=FILE    指定输出文件名。
  5.   --cp=CODEPAGE    指定输出文本编码 'ANSI' 或 'UTF8'。
  6.   --human          以易读形式显示数字 (自动转换KB/MB/GB等单位)。
  7.   --debug          显示调试信息。
  8.   --hide-sensitive 隐藏敏感信息 (MAC 及 S/N)。
  9.   --sys            打印系统信息
  10.   --cpu            打印 CPU 信息。
  11.   --net[=FLAG,...] 打印网络信息。
  12.     GUID           指定网络接口的 GUID,如 '{B16B00B5-CAFE-BEEF-DEAD-001453AD0529}'。
  13.     FLAGS:
  14.       ACTIVE       过滤活动的网络。
  15.       PHYS         排除虚拟网络接口。
  16.       ETH/WLAN     过滤有线/无线网络接口。
  17.       IPV4/IPV6    过滤 IPv4/v6 地址。
  18.   --acpi[=SGN]     打印 ACPI 信息。
  19.     SGN            指定 ACPI 表的签名,如 'FACP'。
  20.   --smbios[=TYPE]  打印 SMBIOS 信息。
  21.     TYPE           指定 SMBIOS 表的类型,如 '2' (主板信息)。
  22.   --disk[=FLAG,..] 打印磁盘信息。
  23.     PATH           指定磁盘路径,如 '\\.\PhysicalDrive0' 或 '\\.\CdRom0'。
  24.     FLAGS:
  25.       NO-SMART     不显示 SMART 信息。
  26.       PHYS         排除虚拟磁盘。
  27.       CD/HD        过滤光盘/硬盘。
  28.       NVME/SATA/SCSI/SAS/USB
  29.                    过滤 NVME/SATA/SCSI/SAS/USB 设备。
  30.   --smart=FLAG,... 指定 SMART 选项。
  31.                    默认选项: 'WMI', 'ATA', 'NVIDIA', 'MARVELL', 'SAT', 'SUNPLUS',  'IODATA',
  32.                           'LOGITEC', 'PROLIFIC', 'USBJMICRON', 'CYPRESS', 'MEMORY', 'JMICRON',
  33.                           'ASMEDIA', 'REALTEK', 'MEGARAID', 'VROC', 'ASM1352R'。
  34.                    使用 'DEFAULT' 以指定上述选项。
  35.                    其他选项为 'ADVANCED', 'HD204UI', 'ADATA', 'NOWAKEUP', 'JMICRON3'。
  36.   --display        打印显示器 EDID 信息。
  37.   --pci[=CLASS]    打印 PCI 信息
  38.     CLASS          指定 PCI 设备类型,如 '0C05' (SMBus)。
  39.   --usb            打印 USB 信息。
  40.   --spd            打印 SPD 信息。
  41.   --battery        打印电池信息。
  42.   --uefi[=FLAG,..] 打印 UEFI 信息。
  43.     FLAGS:
  44.       MENU         打印 UEFI 启动菜单项。
  45.   --shares         打印共享文件夹和映射网络驱动器。
  46.   --audio          打印音频设备。
  47.   --public-ip      打印公网 IP 和 IP 归属地。
  48.   --product-policy 打印 ProductPolicy。
  49.   --gpu            打印 GPU 信息。
  50.   --font           打印安装的字体。
复制代码


HwRwDrvXXX.sys 是驱动程序,用于读取 CPU 温度、电压、内存 SPD、ACPI 信息。有顾虑的话可以删除,不影响其他功能使用。
libcdiXXX.dll 是由 CrystalDiskInfo 改造的动态链接库,用于读取磁盘 SMART 信息。(https://github.com/a1ive/libcdi)
pci.ids 是 PCI 硬件 ID 数据库,usb.ids 是 USB 硬件 ID 数据库,pnp.ids 是显示器制造商数据库,jep106.ids 是内存模组制造商数据库,删除这些数据库只影响对应设备的识别。
注意:
Win11 用户如果想正常加载驱动,请关闭下面选项:
  1. Windows Registry Editor Version 5.00

  2. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity]
  3. "Enabled"=dword:0000000

  4. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard]
  5. "EnableVirtualizationBasedSecurity"=dword:00000000

  6. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\SystemGuard]
  7. "Enabled"=dword:00000000

  8. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI\Config]
  9. "VulnerableDriverBlocklistEnable"=dword:00000000
复制代码

免责声明:
本软件使用 Unlicense 许可协议,放弃版权。你可以自由分发、修改、使用此软件,且无需告知开发者,也不需要注明。
本软件不对可靠性做出任何保证,不对使用此软件造成的硬件及数据损坏负任何责任。
本软件中读取 CPU 信息部分使用了 libcpuid 项目。
PCI 数据库来自 https://pci-ids.ucw.cz/
USB 数据库来自 http://www.linux-usb.org/usb-ids.html
本软件中使用的驱动是 HwRwDrv,已获得微软官方签名,调用方法来自逆向工程。
如有顾虑,可以替换为开源的 Winring0 驱动。(http://openlibsys.org/) (下载:WinRing0x64.sys WinRing0.sys)

评分

参与人数 15无忧币 +70 收起 理由
Allreal + 5 赞一个!
hlstudio + 5 很给力!
yyz2191958 + 2 赞一个!
lps4290 + 5
807979023 + 5 赞一个!
cuicongyuan + 5 赞一个!
shmoss + 5 很给力!
wybuct + 5 赞一个!
15159050498 + 3 很给力!
wmx400 + 5 赞一个!
xzf680 + 5 抓白嫖一葱,很给力
纯脆entropy + 5
江南一根葱 + 5 亲自白嫖
freesoft00 + 5
slore + 5 很给力!

查看全部评分

2#
 楼主| 发表于 2021-12-3 14:34:53 | 只看该作者
smbios文档:https://www.dmtf.org/standards/smbios
smbios表的获取:
Server2003及以上系统可以使用GetSystemFirmwareTable获得smbios表。
通过BIOS启动的XP系统可以读取物理内存0xf0000-0x10000处,查找标记 "_SM3_" 或 "_SM_"取得smbios表。
smbios表的信息是由固件提供的,信息不一定可靠。

acpi文档:https://uefi.org/htmlspecs/ACPI_Spec_6_4_html/
acpi表的获取:
Server2003及以上系统可以使用GetSystemFirmwareTable获得各个acpi表。
通过BIOS启动的XP可以读取物理内存查找"RSD PTR"获得RSDP的位置。RSDP 一般位于 0xe0000-0x100000,或者EBDA内。

SPD文档:https://www.jedec.org/taxonomy/term/2327
SPD的获取:
遍历PCI设备,查找smbus(类型为0c05),获取smbus端口。
注意 DDR4 的 SPD 数据是 512 字节,读取前 256 字节后要切换页面,再读后 256 字节。
回复

使用道具 举报

3#
 楼主| 发表于 2021-12-3 14:37:24 | 只看该作者
本帖最后由 wintoflash 于 2021-12-3 15:32 编辑

读取cpu信息有两种途径,smbios和cpuid。
smbios表4和表7分别是cpu和缓存的信息。
但是这些信息是由BIOS提供的,可能不准确。
使用cpuid指令可以让cpu报告自己的一些信息,这个是更准确的。
cpuid eax=0,在ebx,edx,ecx中会返回cpu厂商。
cpuid eax=0x80000002, 0x80000003, 0x80000004,可以返回cpu型号。
cpuid eax=0x40000000,可以返回虚拟机的ID。对于VMware,这个字符串是"VMwareVMware"。
回复

使用道具 举报

4#
发表于 2021-12-3 15:35:19 | 只看该作者
原有留旧版单文件 2021/11/01,
新版不是单文件就没收藏了.

原来可删除其它的文件,那就继续收藏.

给个建议:

参数 --sys 这种语法,Linux 常见,
如果在 Windows OS 上,
建议用 -sys /sys 这 2 种也接受,
这是 Windows OS 使用习惯.


回复

使用道具 举报

5#
 楼主| 发表于 2021-12-3 15:38:18 | 只看该作者
对于Intel CPU,可以通过msr寄存器获取CPU的温度。
rdmsr ecx=0x1A2,寄存器的16-22位为Tj。
rdmsr ecx=0x19C,寄存器的16-22位为∆T。
CPU温度=Tj - ∆T。
回复

使用道具 举报

6#
 楼主| 发表于 2021-12-3 15:47:58 | 只看该作者
获取操作系统版本,我这里用的是ntdll.dll中的 RtlGetVersion。
据微软的说法,高版本中 GetVersionEx 已经废弃了,得到的信息是错误的。

获取启动固件类型,使用的是
GetFirmwareEnvironmentVariableA("", "{00000000-0000-0000-0000-000000000000}", NULL, 0)。
如果错误代码为 ERROR_INVALID_FUNCTION,则固件类型为 Legacy BIOS。

回复

使用道具 举报

7#
 楼主| 发表于 2021-12-3 16:04:12 | 只看该作者
本帖最后由 wintoflash 于 2021-12-3 16:06 编辑
plusv 发表于 2021-12-3 15:35
原有留旧版单文件 2021/11/01,
新版不是单文件就没收藏了.

老哥 我还没写完呢你就回帖了。
是的,只保留一个单文件不影响大多数功能的使用。
pci.ids 和 usb.ids 外置,一是因为它们太大了。二是不方便用户更新。用户如有需要,可以自己按pci.ids的格式弄自己的硬件id库。
HwRwDrv驱动外置,是因为这个驱动有一些敏感操作,内置会被大多数杀软报毒。

至于参数格式,因为我更习惯linux的方式,所以使用--xxx这种格式。
支持其他的格式似乎没有必要,增大体积却没有带来实际上功能的增加。
回复

使用道具 举报

8#
发表于 2021-12-3 17:00:44 来自手机 | 只看该作者
好东西,收藏了。
回复

使用道具 举报

9#
发表于 2021-12-3 18:38:05 | 只看该作者
谢谢分享,win确实参数格式减号极少用。
回复

使用道具 举报

10#
发表于 2021-12-3 18:52:53 来自手机 | 只看该作者
功能强大,应该单独发帖!支持!        
回复

使用道具 举报

11#
发表于 2021-12-3 19:03:08 | 只看该作者
这个要收藏。一直想找个这样的工具
回复

使用道具 举报

12#
发表于 2021-12-3 19:07:52 | 只看该作者
旁观者清 发表于 2021-12-3 18:38
谢谢分享,win确实参数格式减号极少用。

从 DOS 到现在 Windows ,
以 / 最多,
以 - 次之.

现在通常是 / 与 - 都通用,
不过最保险的还是使用 / 百分百能用,
- 有些程序不接受.
回复

使用道具 举报

13#
发表于 2021-12-3 20:35:25 | 只看该作者

好东西,收藏了。
回复

使用道具 举报

14#
发表于 2021-12-3 21:39:38 | 只看该作者
谢谢分享
回复

使用道具 举报

15#
发表于 2021-12-3 21:43:39 | 只看该作者
要是开发个UOS版的就好了!
回复

使用道具 举报

16#
 楼主| 发表于 2021-12-3 22:29:28 | 只看该作者
smalldimple 发表于 2021-12-3 21:43
要是开发个UOS版的就好了!

不需要。linux下这些全都有现成的。
回复

使用道具 举报

17#
发表于 2021-12-3 22:44:44 | 只看该作者
plusv 发表于 2021-12-3 19:07
从 DOS 到现在 Windows ,
以 / 最多,
以 - 次之.

ping参数倒是减号,如ping 192.168.4.1 -t
回复

使用道具 举报

18#
发表于 2021-12-3 22:51:47 | 只看该作者
旁观者清 发表于 2021-12-3 22:44
ping参数倒是减号,如ping 192.168.4.1 -t


2 个都可以.

ping 8.8.8.8 -t
ping 8.8.8.8 /t

ping /?
ping -?

--------------------------

dir /? 可以

dir -? 不可以
回复

使用道具 举报

19#
发表于 2021-12-4 00:24:07 | 只看该作者
谢谢分享
回复

使用道具 举报

20#
发表于 2021-12-4 15:23:34 | 只看该作者
好资源
E文显得更专业
回复

使用道具 举报

21#
发表于 2021-12-5 14:55:21 | 只看该作者
旁观者清 发表于 2021-12-3 18:38
谢谢分享,win确实参数格式减号极少用。

我记得某些gnu移植软件,是两个减号
回复

使用道具 举报

22#
发表于 2021-12-5 14:59:37 | 只看该作者
winpefk 发表于 2021-12-5 14:55
我记得某些gnu移植软件,是两个减号

4F

PS:

GNU 是一个自由的作业系统,其内容软体完全以 GPL 方式释出。
这个作业系统是 GNU 计划的主要目标,名称来自 GNU's Not Unix! 的递回缩写,
因为 GNU 的设计类似 Unix,但它不包含具著作权的 Unix 代码。


回复

使用道具 举报

23#
发表于 2021-12-5 15:26:34 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

24#
 楼主| 发表于 2021-12-5 18:27:26 | 只看该作者
DOSforever 发表于 2021-12-5 15:26
这个啥意思? github 上找不到可执行文件下载,难道还要下载源码后自己编译?



回复

使用道具 举报

25#
发表于 2021-12-5 23:06:39 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

26#
发表于 2021-12-6 09:08:25 | 只看该作者
DOSforever 发表于 2021-12-5 23:06
哦,看到了,原来下载链接是在边上不起眼的地方。

有图么?
回复

使用道具 举报

27#
发表于 2021-12-6 12:27:45 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

28#
发表于 2021-12-6 13:42:00 | 只看该作者
DOSforever 发表于 2021-12-6 12:27
我上一层 wintoflash 不是截图用红框框出来了吗,黑图右边的位置。

一周前进去没找到。
回复

使用道具 举报

29#
 楼主| 发表于 2021-12-6 20:13:42 | 只看该作者
2021-12-06 更新:
nwinfo --sys 增加 TPM 检测、Windows域。
nwinfo --net 增加 DHCP 信息。

评分

参与人数 1无忧币 +10 收起 理由
liuzhaoyzz + 10 很给力!

查看全部评分

回复

使用道具 举报

30#
发表于 2021-12-8 07:41:15 | 只看该作者
牛工具,方便实用!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-24 21:31

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表