找回密码
 加入我们
搜索
      
查看: 6141|回复: 8

[CPU] 【搬运/机翻】Chips and Cheese:为什么你不能信任 CPUID

[复制链接]
发表于 2022-10-29 13:19 | 显示全部楼层 |阅读模式
- 78X/73X,和GB5上的那一堆7000系CPU,均为Fake

2022 年 10 月 27 日 MrFreak, clamchowder

虽然 AMD 肯定会计划更多基于 Zen 4 架构的处理器,但不幸的是,昨天在社交媒体上流传的许多“泄露”的 Geekbench 5 结果都是伪造的。然而,这并不意味着他们的报道应该受到抨击,因为归根结底,这些虚假结果与真实结果无法区分。稍后我们将解释我们是如何做到这一点的,但首先我们需要讨论伪造真实的测试结果是多么微不足道。

所有这些测试结果都是通过编辑一组包含处理器名称字符串的六个 CPUID MSR 来实现的,根据 AMD 的处理器编程参考 (PPR) 表,它们既可读又可写。我们提供了 AMD 的 Zen3 PPR 部分,以提供有关这些 MSR 如何工作的更多信息。你可以在下面找到。
unknown-1.jpg

根据我们的测试,这些甚至可以追溯到 Bulldozer;但是,软件检测变化的能力并不一致。这些 MSR 通常在启动时写入以设置处理器名称,然后在需要时通过 CPUID 指令读取,例如在 Geekbench 5 系统信息收集期间。

6 个寄存器,每个寄存器有 8 个字符,总共可能有 48 个字符;但是,CPUID 指令返回的 CPU 名称必须以空值结尾。这允许我们设置一个最多包含 47 个字符的名称,这对于 Prequel meme 来说非常方便。
image-4.jpg

撇开玩笑不谈,如前所述,在启动后对其进行编辑的能力会产生严重的后果。因此,让我们从 CPU-Z 开始讨论一些应用程序以及它们是如何受到影响的。
cpu-z-overview.jpg cpu-z-bench.jpg

可以清楚地看到,CPU-Z 仍然知道它是 Zen 4 架构的 AMD 处理器,但 CPUID 完全错误。那是因为 CPU-Z 使用 CPUID 指令来获取处理器品牌字符串。这是通过将 EAX 寄存器设置为 0x80000002、调用 CPUID 并将前 16 个字符取回寄存器 EAX、EBX、ECX 和 EDX 来完成的。重复该过程,将 EAX 设置为 0x80000003 和 0x80000004 以获得另外两组 16 个字符,从而得到一个 48 个字符的字符串。我们可以控制 AMD 的 Zen CPU 响应 CPUID 调用序列返回的内容,这意味着任何依赖该 CPUID 功能的工具都会报告我们喜欢的任何名称。但在未经训练的人看来,它看起来很逼真。CPU-Z 只是受影响的应用程序的一个示例。

现在让我们来看一下病毒式传播的结果,即 Geekbench 5 结果。
gb5-overview.jpg screencapture-browser-geekbench-v5-cpu-18237412-2022-10-26-22_59_40-1.jpg

这是大多数基准测试软件的大多数问题所在:您无法判断它是假的,因为性能是正确的假设处理器应该在哪里,并且没有任何迹象表明 CPUID 已更改。它使用与 CPU-Z 相同的指令,因此由于相同的原因它很容易受到攻击。

我们测试了 Geekbench、Cinebench、AIDA64、HWMonitor、Blender Benchmark 等等。它们都受到影响并显示修改后的 CPUID。

当然,这会引出一个重要的问题:我们可以信任哪些应用程序?答案几乎没有。如果我们知道我们的应用程序在裸机上运行,​​我们可以信任 CPUID 指令返回的某些参数。
QQ截图20221029131809.jpg

如您所见,通过标准 CPUID 指令识别 CPU 可能充满危险。通过裸机访问,您至少可以在一定程度上确定 CPU 代,除非有人得到了不太常见的 CPU。但是一旦涉及到虚拟化,一切都会消失。管理程序可以拦截 CPUID 指令并报告它喜欢的任何内容,而不管底层硬件如何。

幸运的是,有一些软件不使用 CPUID 指令。两个例子是 HWiNFO 和 BenchMate(利用 HWiNFO),因为它们似乎与非标准的供应商特定组件进行通信以获取有关处理器的信息。例如,可以在较新的 AMD CPU 上查询 SMU。

但为了安全起见,最好避免报道谣言。制造商是了解哪些处理器 SKU 将投放市场的最佳信息来源,除非他们可能决定事后推出SKU。

现在对于那些仍然想愚弄他们的朋友的人,这里有一个关于我们如何制造 AMD Ryzen 7 7800X 的快速解释。首先,获得一些资源比您尝试制作的 SKU 更多的功能强大的硬件;AMD Ryzen 9 7950X 和支持超频的主板将涵盖这一点。然后你需要一些软件来改变 CPUID。这由一个名为PMCReader的应用程序覆盖它是由我们自己的作者之一 clamchowder 创建的。它最初用于找出 CPU 瓶颈,但现在用于设置 CPUID MSR 以查看可能的情况。现在,一旦你添加了一个负的 350mhz PBO 偏移并移除了每个 CCD 的 3 个内核,你就有了一个引人注目且逼真的系统,它会欺骗大多数人。虽然它不适用于所有软件,有时它根本无法在某些机器上运行,但它显然运行良好,足以在社交媒体上传播。

MsrUtil:https://github.com/ChipsandCheese/MsrUtil
原文:https://chipsandcheese.com/2022/10/27/why-you-cant-trust-cpuid/

评分

参与人数 1邪恶指数 +10 收起 理由
醉酒棕熊 + 10

查看全部评分

发表于 2022-10-29 13:21 | 显示全部楼层
翻译:你买个7950X,即可实现万法全通
 楼主| 发表于 2022-10-29 16:49 | 显示全部楼层
叶子烟 发表于 2022-10-29 13:21
翻译:你买个7950X,即可实现万法全通

是的,除了模仿比7950X核心数更多的不行,其他随便造
发表于 2022-10-29 20:41 | 显示全部楼层
叶子烟 发表于 2022-10-29 13:21
翻译:你买个7950X,即可实现万法全通

言简意赅,严重好评。
发表于 2022-10-29 20:44 | 显示全部楼层
绷不住,篡改型号也能骗这么多人的嘛?
ps 你翻译还挺快XD
 楼主| 发表于 2022-10-29 20:59 | 显示全部楼层
ban2ben 发表于 2022-10-29 20:44
绷不住,篡改型号也能骗这么多人的嘛?
ps 你翻译还挺快XD

没办法嘛,毕竟泄漏一切皆有可能是吧
发表于 2022-10-29 21:06 | 显示全部楼层
我本来期待specification那里写着Fuck you nvidia
发表于 2022-10-29 21:26 | 显示全部楼层
那就只能靠统计学了
 楼主| 发表于 2022-10-29 22:17 | 显示全部楼层
武锋 发表于 2022-10-29 21:06
我本来期待specification那里写着Fuck you nvidia

其实你可以改的,改完传GB,AMD Ryzen Fuck you NVIDIA
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2024-12-11 17:25 , Processed in 0.012450 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

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