国外网友反向工程破解小米空气净化器延长滤芯使用时间
小米空气净化器和其使用的滤芯之间的通讯是通过NFC的 UUID 确认的,他在净化器的反向工程获得的代码里发现了这个秘密

小米的产品物美价廉,在国外也有很多米粉使用。最近有一位外国网友研究小米空气净化器,通过反向工程,发现了小米空气净化器和空气滤芯之间通讯的秘密。

大家知道,空气滤芯,跟净水器的滤芯一样,使用一段时间后需要更换成新的,才能保证过滤的质量。通常机器上会显示还剩下百分之几的可用度。当这个可用度接近 0 时,意味着你需要购买新的把旧的滤芯换下来。但这位国外网友发现,小米空气净化器和其使用的滤芯之间的通讯是通过NFC的 UUID 确认的,他在净化器的反向工程获得的代码里发现了这个秘密:
import sys
import hashlib
# Usage: pwd.py 04A03CAA1E7080
def getpwd(uid):
uid = bytearray.fromhex(uid)
h = bytearray.fromhex(hashlib.sha1(uid).hexdigest())
pwd = ""
pwd += "%02X" % h[h[0] % 20]
pwd += "%02X" % h[(h[0]+5) % 20]
pwd += "%02X" % h[(h[0]+13) % 20]
pwd += "%02X" % h[(h[0]+17) % 20]
return pwd
assert getpwd("04A03CAA1E7080") == "CD91AFCC"
assert getpwd("04112233445566") == "EC9805C8"
print("PWD:", getpwd(sys.argv[1]))
你可以在GitHub上找到这个 反向工程。
通过观察这段反向代码,对大多数人来说也许更像是段随机字符,但却是问题的关键,净化器和滤芯之间通过一个密码进行确认。 它使用的 NFC 的类型是 NTAG213 (by NXP),密码的产生过程并不清楚。NFC 的 UUID 对于每个滤芯来说都是唯一的。如果使用上面的密码(CD91AFCC),配合一个具有一个 04A03CAA1E7080 UUID NFC 卡,我们就模拟出了一个新的滤芯设备,骗过净化器。
你可以参考网友放在Github上的这些 滤芯信息 破解。

净化器跟伪造的NFC通讯后,会认定这是一个新的滤芯,这样就能延长过期的滤芯的使用时间。

程序员编程中…
你也许感兴趣的:
- YouTube 删除 Windows 11破解教程,声称存在“人身伤害风险”
- 我是如何破解房东的锅炉的
- 【译文】我破解小米空气净化器 4 Pro 的故事
- 面试官在面试时让我去破解一个软件,我成功了
- 雷蒙德·陈 旧事新说:当愤怒的客户要求与比尔·盖茨通话时
- 微软否认使用人工智能用Rust语言重写Windows 11
- 讨论:为什么Python能胜出?
- 使用 PostgreSQL 18 实现即时数据库克隆
- 我断开IPv4整整一周,只为理解IPv6过渡机制
- 我在地铁上编程

你对本文的反应是: