105
2954
1万
超级版主
智能家居&单板滑雪痴迷爱好者
ruan_yhang 发表于 2021-5-29 19:01 蓝牙广播的数据,比如:48441a033c967e9fca5654edb6d67617d932a539262e30ac 一共24个字节,前面4个48 44 ...
使用道具 举报
0
22
144
注册会员
XCray 发表于 2021-5-29 19:06 我开始也这么以为的。后来看了下蓝牙温湿度计2的插件以及github上几个大神的文章,发现用的是AES 128 CCM ...
ruan_yhang 发表于 2021-5-29 19:27 关键最长13个字节指的是明文,广播出来的是24个字节的密文呀,密文从哪开始到哪结束不知道。 github上大 ...
XCray 发表于 2021-5-29 19:34 密文和明文的长度是相同的,从哪开始到哪儿结束,严格遵循mibeacon,很容易就可以挑出来。 比如这是蓝牙温 ...
ruan_yhang 发表于 2021-5-31 10:15 1. 我也正在验证这个,我用的设备是创米万能遥控器作为网关,锁是米家智能门锁标准版。最新发现,今天当 ...
08:00:01.442 [M: miio C: info F: deal_with_token L: 228]: token is already existed and do not need to regenerated 14:10:25.508 [M: miio C: info F: on_recv_handle_transaction L: 2084]: otu:valid down req:bind_key.
XCray 发表于 2021-5-31 11:29 你咋还在纠结长度问题?不补0,是多长就多长,4个字节的明文加密后就是4个字节的密文、5个字节的明文加密 ...
ruan_yhang 发表于 2021-5-31 15:43 那就换个网关吧,也不贵,我今天抓了一个上午的包,每隔一段时间就会收到 beaconkey,数值一样。 我是在 ...
from Cryptodome.Cipher import AES import binascii mibeacon = '48441a033c967e9fca5654edb6d67617d932a539262e30ac' mac= 'xxxxxxxxxxxxxx' pdid = mibeacon[4:8] fcnt = mibeacon[8:10] ecnt = mibeacon[-14:-8] nonce = binascii.unhexlify(mac+pdid+fcnt+ecnt) key = binascii.unhexlify(b'xxxxxxxxxxxxxxx') aad = b"\x11" ciphertext = binascii.unhexlify(mibeacon[10:-14]) cipher = AES.new(key, AES.MODE_CCM, nonce=nonce, mac_len=4) cipher.update(aad) decrptdata = cipher.decrypt(ciphertext) print("decrptdata:",binascii.hexlify(decrptdata))
XCray 发表于 2021-5-31 18:44 你试试这段代码,填入你门锁的mac地址和key,看看解出来是啥。注意mac地址是逆序。
ruan_yhang 发表于 2021-5-31 23:34 试了你的代码,没问题。解出来的结果和网关输出的一致!!!!!!
本版积分规则 发表回复 回帖后跳转到最后一页
教程高产大神,简直就是为了教程而生~
长期对论坛的繁荣而不断努力,或多次提出建设性意见
Archiver|手机版|小黑屋|Hassbian
GMT+8, 2024-12-27 08:28 , Processed in 0.058441 second(s), 33 queries .
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.