无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 47425|回复: 552
打印 上一主题 下一主题

[分享] 开源的硬件信息工具nwinfo [20240416]

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

下载:v0.9.6 nwinfo.zip (1.64 MB, 下载次数: 1183)
历史版本:
    v0.1.0   nwinfo_v0.1.0.zip (789.03 KB, 下载次数: 41)
    v0.2.0   nwinfo_v0.2.0.zip (799 KB, 下载次数: 38)
    v0.3.0   nwinfo_v0.3.0.zip (1.16 MB, 下载次数: 46)
    v0.4.6   nwinfo_v0.4.6.zip (1.2 MB, 下载次数: 32)
    v0.5.6   nwinfo_v0.5.6.zip (1.04 MB, 下载次数: 32)
    v0.7.1   nwinfo_v0.7.1.zip (1.66 MB, 下载次数: 52)
    v0.8.11 nwinfo_v0.8.11.zip (1.72 MB, 下载次数: 44)
源码:https://github.com/a1ive/nwinfo
支持 XP 及以上系统,需要管理员权限。
图形界面:

命令行用法:
nwinfo --help
    可以查看帮助。
nwinfo --sys
    显示系统版本、启动固件类型 (BIOS/UEFI)、安全启动状态、内存使用等信息。
nwinfo --cpu
    显示 CPU 信息,包括 CPU 型号、核心数、缓存、虚拟机类型、温度、电压等。
nwinfo --net
    显示网络适配器信息,包括 IP、MAC、网关、DNS、子网掩码、连接速率等。
    使用 nwinfo --net=active 可以仅列出激活的连接。
nwinfo --acpi
    列出 ACPI 表。
nwinfo --smbios
    列出 SMBIOS 表。
    使用 nwinfo --smbios=XX 过滤表的类型。
    例如 nwinfo --smbios=0 即为 BIOS 表。表的类型可以查看 SMBIOS 规范文档。
    常用的有:表0 BIOS,表1 系统,表2 主板,表4 处理器,表7 处理器缓存,表16 内存插槽,表17 内存模组。
nwinfo --disk
    列出磁盘信息。包括硬件 ID,序列号,类型,分区表,盘符等信息。
nwinfo --display
    列出显示器信息 (EDID)。
nwinfo --pci
    列出 PCI 设备。
    使用 nwinfo --pci=XXXX 按 PCI 设备类型进行过滤。例如 nwinfo --pci=03 只显示显卡。
    PCI 设备类型见 https://pci-ids.ucw.cz/read/PD/
nwinfo --usb
    列出 USB 设备。
nwinfo --spd
    显示内存 SPD 信息。注意:可能不支持部分电脑的 SMBus。通过此方法获得的内存信息,要比通过 SMBIOS 获取的更加准确。
nwinfo --audio
    列出音频(播放)设备。
nwinfo --uefi
    显示 UEFI 启动信息。

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

免责声明:
本软件使用 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)

评分

参与人数 13无忧币 +60 收起 理由
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-4-19 23:12

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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