5

【译文】我破解小米空气净化器 4 Pro 的故事

 7 months ago
source link: https://www.techug.com/post/https-unethical-info-2024-01-24-hacking-my-air-purifier/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client



FilterEdit-edited-1.jpg.jpg

我在网上搜索了一款不错的 空气净化器,小米 4 Pro 似乎能满足我的所有要求。过滤器大小、日程安排和风量都符合我的要求。我把它设置好后就没再多想,直到上周我的房间里响起了 “剩余0%”更换滤网的警告。我曾将设备设置为禁用液晶显示屏,所以这让我大吃一惊。我点击用户按钮解除了警告,15 分钟后,我的房间又亮了起来……

应用程序中没有任何地方可以让我禁用该警告,在这一年中,我已经多次清洁过滤器,我确信它至少还有 12 个月的使用寿命。我决定对粘在过滤器底部的噩梦般的 DRM RFID 芯片进行调查。

警察与小偷

当我拿起我的 Proxmark 时,我意识到肯定有人已经做了大量的工作,我部分地猜对了。Flamingo Tech 介绍说,他花了一些时间对这些过滤器进行了逆向工程,并公布了他的工作成果

在他的 repo 中,他概述了标签中的重要模块:

第 8 块回到 00000000,恢复到 100%
其他区块信息:

  • 区块 4 : rfid-factory-id
  • 区块 5 :rfid-product-id(xx:xx:xx:xx:xx 常规过滤器)
  • 区块 6:rfid-time
  • 区块 7:rfid-serial-num

不幸的是,NfcA 标签仍被锁定,没有密码我们就无法编辑标签。幸好 proxmark 社区已经解决了这个问题。您可以在这里查看他们发现密码密钥基因的过程。

Flamingo Tech 发布了一个由 Doegox 编写的脚本,概述了密码破解的工作原理。尽管标题是 “他们是这样做的!”,但他并没有在文章中解释代码,而是把博客作为推销自己标签的行动号召。通常这种事情不会让我感到困扰,但 “这将大大减少从整个过滤器……到一个贴纸的废物足迹 “的评论却让我感到不快。如果他真的关心碳足迹,他应该解释一下如何更新过滤器上的标签。不过,如果你想支持他的工作,还是可以在这里买到他的贴纸

我决定在这里解释代码,但如果你想跳过实际的过滤器重置,请向下滚动到 “破解标签”。

Password Key Gen:

脚本包含两个示例,第一个示例基于标签 UID “04A03CAA1E7080 “生成密码 “CD91AFCC“。

首先,我们将 UID 转换为字节数组。这样,04A03CAA1E7080 就变成了一个字节序列 [04、A0、3C、AA、1E、70、80]
接下来,对这个字节数组应用 SHA-1 哈希函数,得到 bcaf806333ccf720cd441a167f914fbe6ea4a513,将其转换为字节数组,因为我们只需要从这个字符串中提取 4 个字节来组成密码。

使用数组中的第一个字节 “BC“,我们将其转换为十进制,得到 188,并使用该字节确定每个字节在哈希值中的位置。
计算出的索引为

188 % 20 = 8
(188 + 5) % 20 = 13
(188 + 13) % 20 = 1
(188 + 17) % 20 = 5

现在回到我们之前生成的哈希值 – bcaf806333ccf720cd441a167f914fbe6ea4a513

按照正确的顺序抓取字节,我们可以得到

8th byte: CD
13th byte: 91
1st byte: AF
5th byte: CC

将这些字符串连接起来就是密码:
CD91AFCC

现在我们知道了它的工作原理,就可以修改/重置我们自己的过滤器了。不是每个人都能买到价值 350 美元的 Proxmark,因此我编写了使用任何 NFC 手机更新标签的说明。

步骤 1:

为启用了 NFC 功能的 Android 或 iPhone 安装 NFC 工具。

第 2 步

使用免费应用程序的读取功能扫描滤镜底部的 NFC 标签。

步骤 3:

将获取的 “Serial Number/UID”(14 个字符的十六进制值)复制到某个地方。

步骤 4:

输入以下 14 个字符,生成重置命令。如果 UID 为 12345678901234,则密码为 011853E8,重置过滤器的命令为1B011853E8,3008,A20800000000

步骤 5:

在应用程序的主菜单中点击 “Other”->”Advanced NFC commands “并接受免责声明。然后将上述命令粘贴到数据框中。(注意:安卓用户必须从下拉菜单中选择 I/O 类别,即 “NfcA (ISO 14443-3A)“)。

步骤 6:

确保手机顶部位于标签上方,然后点击 “‘Send Command”。

完成!您已经成功重置了过滤器。根据需要重复操作,即可实现持续、无忧的 空气净化

兼容设备列表:

小米 空气净化器 小米空气净化器  Compatible:  Tested:
4 Pro  ✓  ✓
4 Lite  ✓  ⨯
4  ✓  ⨯
MI PRO  ✓  ⨯
MI PRO H  ✓  ⨯
PRO H  ✓  ⨯
PRO  ✓  ⨯
3H  ✓  ⨯

如果您有时间对旧机型进行测试,请在下面发表评论,我将更新我的列表。

本文文字及图片出自 Breaking Free from DRM: The Story of Hacking My Air Purifier


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK