手电大家谈-手电筒爱好者之家

 找回密码
 注册成为会员,享受更多功能。

QQ登录

只需一步,快速开始

只需一步,快速开始

搜索
查看: 2242|回复: 3

[其他DIY] iPhone蓝牙广播随机地址的识别

[复制链接]

该用户从未签到

发表于 2019-11-29 10:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册成为会员,享受更多功能。

x
默认的IOS开启了连续服务功能,会用蓝牙4.0的低功耗不断的发送“广告”包。 本来想利用这个来制作一个接近开关,比如带着手机到门口,能自动解锁门。自动解锁电动车之类的。

但是这个广告包用的是一个随机蓝牙地址。而且其附带的厂商数据,是苹果自定义的,至今网上未有人能解析出来。

后来研究蓝牙规范,发现这个随机地址是可解析的,前提是你要有相应的Key。 这个key就是 IRK。

于是我复制粘贴,终于组装出了一个函数,来判断空中的“广告”包的蓝牙地址是否属于自己的手机。
项目开源,上传到了GitHub。

https://github.com/fryefryefrye/Decoding-Random-Bluetooth-Address

里面包含两个小项目:

No.1   获得你的iPhone 的 IRK
用Arduino环境,把get_irk项目烧进一块ESP32板子,这块板子就会打开一个蓝牙服务。 然后在iPhone上安装LightBlue软件,找到“ESP_BLE_SECURITY”服务,点击连接,就会有提示是否配对。确定后手机端连接成功,ESP32端就会打印出IRK。

No.2   低成本监听蓝牙广播包
用Arduino环境,把nrf_ble_add项目烧进一块nano板子,连接上一块nRF24L01,即可监听广播包,提取其中的随机MAC地址,然后与之前获得的IRK进行比较,就能判断是不是自己的手机。

回复 dsu_marcocopyright:copyright

使用道具 举报

  • TA的每日心情
    开心
    2023-10-14 19:15
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2019-11-29 13:12 | 显示全部楼层
    不明觉厉
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-6-21 15:45
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2019-11-29 20:31 | 显示全部楼层
    牛,膜拜
    来自安卓客户端来自安卓客户端
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-2-13 02:29
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2019-11-29 21:44 | 显示全部楼层
    论坛风气不错哦
    回复

    使用道具 举报

    本版积分规则

    小黑屋|手机版|Archiver|论坛自带搜索|下载论坛app|手电大家谈-手电筒爱好者之家 ( 备案序号:鲁ICP备05002565号 )
    以上言论纯属个人观点,与手电大家谈立场无关。
    最佳浏览模式:1920*1080


    GMT+8, 2024-5-29 10:51 , Processed in 0.199362 second(s), 30 queries , Gzip On.

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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