V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
imbushuo
V2EX  ›  分享发现

千万不要硬编码 SMBIOS 机器 UUID

  •  
  •   imbushuo · 2019-01-19 11:58:04 +08:00 · 3577 次点击
    这是一个创建于 2134 天前的主题,其中的信息可能已经有所发展或是发生改变。

    故事是这样的:我去年无聊搞了 Lumia950XLPkg,之前我也展示过启动 Debian 了。当时弄的时候并没有预计到这个玩意会发布,于是为了快速开发,我在 SMBIOS 里硬编码了一个机器的 UUID:

    SMBIOS_TABLE_TYPE1 mSysInfoType1 = {
      { EFI_SMBIOS_TYPE_SYSTEM_INFORMATION, sizeof (SMBIOS_TABLE_TYPE1), 0 },
      1,    // Manufacturer String
      2,    // ProductName String
      3,    // Version String
      4,    // SerialNumber String
      { 0x0bc52bb9, 0x9473, 0x4875, { 0xbe, 0x2a, 0x39, 0x73, 0x07, 0x6c, 0x20, 0xe2 } },
      SystemWakeupTypePowerSwitch,
      5,    // SKUNumber String
      6,    // Family String
    };
    

    https://github.com/imbushuo/Lumia950XLPkg/blob/9bc2d337cdf0d1417bc0598791c912a5b985daf4/Driver/SmBiosTableDxe/SmBiosTableDxe.c#L151

    现在奇葩的事情出现了,有用户在 LumiaWOA 的群里说:

    Activation.jpg

    用户告诉我 "Activated using Digital License"。所以现在这件事情变成了 Windows 10 加入的方便用户重装的功能被相当程度的自动滥用了:

    • 这些机器拥有相同特征的 CPU
    • 这些机器有完全一致的 ACPI DSDT/SSDT 设备列表和描述
    • 这些机器有几乎完全一致的 SMBIOS (我还是稍微更新了一个东西的)
    • 这些机器也有完全一致的 SMBIOS 机器 UUID

    造成的结果就是,连上网就自动激活。笑死我了,我觉得我下个版本得修掉这个问题 (facepalm)。是不是有人用 Retail/MAK Key 激活过 Windows 10 on Lumia 950/950 XL 了……

    附言:

    • 不知道有没有 PC OEM 这么干。要是有的话就很刺激了
    • 当年 Ghost XP 的时候好像有个类似的问题,不过是遥测上的,间接导致了 Windows 错误报告原本的作用大减
    • 所有 Windows Phone 的 stock UEFI 都有类似的固定 SMBIOS GUID
    • Device & Experience (OSG/WDG) 的人,你们就没觉得出现了同样特征的机器在全世界各地激活这样的事情很奇怪吗,遥测应该能发现的吧(
    4 条回复    2019-01-20 12:03:31 +08:00
    univert
        1
    univert  
       2019-01-19 12:32:53 +08:00
    每个机器应该有不一样的 smbios uuid, 能自己做 ueifi 的本来就很少的,
    imbushuo
        2
    imbushuo  
    OP
       2019-01-19 12:36:30 +08:00 via iPhone
    @univert 对,正常情况下生产线上就生成出来放进去了,但是不排除那些寨板会有鬼故事
    jjxtrotter
        3
    jjxtrotter  
       2019-01-19 16:53:22 +08:00 via iPhone
    hmmm...
    考虑到 lumia950xl 的销量,影响程度有限...
    zea
        4
    zea  
       2019-01-20 12:03:31 +08:00 via Android
    @jjxtrotter 最佳回复 手动 doge
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1072 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:07 · PVG 03:07 · LAX 11:07 · JFK 14:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.