极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

admin 2024年10月2日12:08:06评论32 views字数 2735阅读9分7秒阅读模式

本文转自LINUXDO一位大神的技术文章,蓝牙门锁解锁过程使用AI进行分析提问并引导AI生成相应的代码,最终完美实现目的,非常值得所有想要使用AI来提升能力的小伙伴们学习。

解决过程

第一步:抓包

对手机APP进行抓包(安卓手机我用抓包精灵,iPhone我用Stream),点击开锁我看到四个POST请求(抓包过程不在此介绍),分别是:

API接口 猜测功能用途
/api/user/devices_and_keys 获取与用户相关的设备和密钥信息
/history/push/record 向服务器推送历史解锁记录
/push_record 记录解锁事件
/update_device_battery 更新设备电池状态

不得不说一句,接口命名很规矩,节省了我很多时间极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

/api/user/devices_and_keys请求返回内容如下(看到了设备密钥等信息):

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

分析接口发现开锁并不是使用网络请求开锁,并且结合安装APP时索取的各种权限(设备信息、网络、短信、蓝牙等等一堆强制权限)以及远离门锁时无法找到设备,不难猜想门锁极有可能是蓝牙解锁方式,使用蓝牙靠近门锁搜索,确实看到了与网络请求返回一致的device_name蓝牙设备[Slockxxxxxxxxx]

第二步:尝试抓包蓝牙

我使用了以下方式,确实抓到与门锁通信的记录了,但是!我看不懂 极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

但是可以确定的是!手机和蓝牙设备进行了多次沟通~并且蓝牙请求每次传输的值是完全不同的
网上查询到类似的蓝牙解锁方案:BLE蓝牙的智能门锁应用案例-电子发烧友网 6

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

通过各种查询和研究抓包信息得知通信区块:读FFF4,写FFF3,读FFF4,写FFF3,读FFF5
我猜,写第二次FFF3的时候应该就是开锁
其中,读FFF4的操作,读取出来的值每次都是不同的!写FFF3时测试到只要进行写操作就自动断开蓝牙(因为没匹配正确的缘故)

接下来怎么办呢?咱也不懂蓝牙啊!极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

第三步:解包APP

第二天,我决定,解包apk看看有什么突破口没有!于是我去吾爱搜解包的方法
找到一个蛮适合小白的方案:

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

开整!很爽,一解就开极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

丢VSCode全局搜索devices_and_keys
找到文件如下:

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

简单的看了下~反编译的,不太懂,直接丢AI

第四步:AI 分析

既然知道是BLE通信,那我决定直接从BLE文件夹开始(按照感觉,dal处理网络请求,ble处理蓝牙通信解锁)

1. 首先我需要了解一下这个ble文件目录,看看这些文件分别是什么?

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

2. 得知目录作用继续追问

UnlockToolCallback.smali可能定义了解锁工具的回调接口,或类,处理结果,所以,先看看它做了什么!**

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

从AI分析结果看,这确实是处理解锁结果,比如判断设备电量,不是我想要的,但是前面提到的读FFF5操作,似乎就是对应设备电量获取的(但是在我手动进行蓝牙调试读取时FFF5返回为0000,不知道为什么,故我决定放弃对电量的考究)

但是这个结果不是我想要的,我想追溯解锁过程

3. 那就问问AI有什么文件进行了蓝牙通信

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

UnlockTool2.smali 可能存在主要逻辑!弄它!

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

好!这应该就是解锁主线了!

4. GATT连接及通信深入

  • 设备连接:在 unlockTheDevice() 方法中,通过 GATT 连接到目标设备,使用 bleGattCallback 处理连接和数据传输。

所以,看看bleGattCallback有什么!

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

好!极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!越来越接近真相!

5. 印证前文 读FFF4,写FFF3,读FFF4,写FFF3,读FFF5

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

与之前蓝牙抓包中获取的信息一致!这就是我要的最终文件了!那按照猜想,写FFF3就是解锁, 接下来,从bleGattCallback的 onCharacteristicRead入手,探索详细过程!

6. 探究蓝牙详细通信过程

从onCharacteristicRead中得到了详细的通信过程步骤!并且我看到了全文最重要的!加密操作:AesEncryption

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

当我继续提问AesEncryption过程时,AI噶了

感觉是全文长度太长了,还是问的太多了?于是我就转战Claude了(因为代码全文很长,出于上下文考虑以及9月初感觉ChatGPT很呆 那时o1模型还没来,我先选择了克劳德,但克劳德额度太少了,后续还是ChatGPT辅助探索的)

7. 探索AES加密

在Claude问了一些,基本对AES和通信过程了解了,就不一一截图了!

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

至此!对加密通信过程了解完成!我开始转移到写程序复现!

8. 蓝牙通信调试过程,踩到了坑!

我开始引导ChatGPT使用Python写蓝牙调试程序,
以下是我的逐步引导提问内容:

- 对话1
1. python,在windows调用蓝牙,读取设备列表

- 对话2
1. 我想使用windows调试ble如何操作

- 对话3
1. 以下代码中,进行ble的通信过程是怎么样的 附代码:`BleGattCallback.smali`
2. 使用python模拟这个过程
3. 加密过程请使用AesEncryption中的开锁逻辑 附代码:`AesEncryption.smali`
(这个对话得到的结果不是很好,可能是上下文限制的缘故 很省略,且没有细节,故放弃)

- 对话4
1. 以下代码中,进行ble的通信过程是怎么样的,转换为python进行通信,使用import bluetooth,加密代码预留,稍后我来增加 附代码:`BleGattCallback.smali`
2. 好的,参照以下加密过程: 附代码:`AesEncryption.smali`
3. 开启门锁的蓝牙通信,帮我优化代码,打印详细日志,完善加密过程 附代码:`刚刚ChatGPT回复的代码,进行了简略的增删` 以及 `AesEncryption.smali`

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

至此 Python代码通信代码完成!

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!
但是!调试发现一直各种报错,各种AI之后得知,使用电脑进行的通信协议不合适,咋不合适俺也不知道,没准备继续探究了!

9. 改写Python为HTML,直接手机端打开!

通过AI得知,安卓手机浏览器web页面也是可以调用蓝牙通信的!
所以直接将Python丢给了ChatGPT,引导他改成了HTML页面!

当时的录像:

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

撒花 极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

等等!我的iPhone设备无法web调用蓝牙怎么办?我不能写个iOS的APP吧

上个周末,为了不带两个手机,我还顺便学习了ESP32开发板,连接WIFI之后,利用siri进行GET请求至开发板,开发板与门锁蓝牙通信解锁。(缺点:过程慢,需要五六秒;停电了怎么办;WIFI坏了怎么办;开发板坏了怎么办),算了,将就过吧 极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

前天楼下散步,也不知道哪股风,突然让我灵光乍现!

极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

好好好!!!那就!再来一局!
极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

原文始发于微信公众号(AI技术笔记):极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月2日12:08:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   极强AI入门学习实战案例:我用AI刻了把电子门锁-蓝牙BLE门锁解锁分析!https://cn-sec.com/archives/3228230.html

发表评论

匿名网友 填写信息