数码之家

 找回密码
 立即注册
搜索
查看: 1091|回复: 30

[STM] 破解微信小程序识别蓝牙模块的逻辑(已成功)完结

[复制链接]
发表于 2025-4-13 11:34:09 | 显示全部楼层 |阅读模式
本帖最后由 tommmmmy 于 2025-4-14 15:21 编辑

之前发过一个帖子,内容和这个帖子有关,有兴趣的可以去看看
链接:https://www.mydigit.cn/forum.php?mod=viewthread&tid=514495
接下来,会分享结合之前的破解过程,分享和总结一些个人的方法和见解。


本次所涉及到的微信小程序为启航再扬帆
蓝牙模块型号:MX-01P,有需要的话,可以自行某宝
CH340G通讯串口模块,有需要的话,可以自行某宝,连接模块需要注意的是,RX和TX的通道需要对调能可以,想了解的可以搜一下UART的原理
以及各类的调试软件,电脑端的:XCOM V2.7


手机端的:主要是LightBlue、nRF Connect


还有一个微信解包软件,VScode,详细可以翻看之前的链接
在本次的案例中,启航再扬帆的小程序是如何识别蓝牙模块
打开手机蓝牙后,小程序将会通过读取蓝牙模块的信息,
1、筛选模块--------------------------读取模块的名字,MAC,软件版本,硬件版本以及蓝牙广播包。
2、验证模块的合法性-----------------读取模块的UUID,包括读取、写入,通知的UUID和特性。
3、模块与控制器设备获得通讯--------校验控制器的ID


1、筛选模块。

这里将利用nRF Connect 去克隆原厂模块的部分信息,去验证一下


上面的图片,显示的是一台手机的名称,实际上这个app克隆的功能,只是单纯克隆了广播包,因为是用手机去克隆,所以MAC和名称都是无法修改,但是只要是广播包是对的,就能搜到




打开模块的详细信息,点击CLONE,转到ADVERTISER界面,点击修改,勾选可连接的属性,OK,最后开启广播。
进行到这一步,会发现小程序可以搜到克隆的蓝牙信号,尝试连接,提示蓝牙模块不合法,这里的克隆是用一台手机去克隆的,由于手机的特殊性,克隆只能做到克隆广播包,MAC和名称是无法修改,但一样能识别到模块,这恰恰能说明小程序只通过广播包去筛选模块。

这里总结一下方法,两台手机,一个克隆,一个测试连接,就能简单判断小程序的连接逻辑,当然,就我这个案例来说,是通过广播包去识别的,但不是说市面上全部程序都是这样识别,也可以通过模块名称、MAC等信息去识别,可能是因为修改名称或者MAC比较容易,所以只通过广播包去识别。

2、验证模块的合法性。

这一步的话,我这边就搞得比较费劲了,我是通过分析小程序的源代码,得出模块的UUID,包括读取、写入,通知的UUID和特性。
本人不会写代码,所以就把代码发给了我的朋友去分析,最后通过定位得知,拿到UUID,也得知了校验设备合法性的逻辑。


这里比较遗憾的是,还没有找到代码中广播包的定义,如果是没有原厂的模块,就无法知道广播包数据,所以比较遗憾,这里还要花时间继续分析找找。
操作这一步呢,推荐一个比较好用的软件,LightBlue,个人认为比nRF Connect好用一点,因为LightBlue在读取原厂模块的时候,直接把UUID读出来了,而nRF Connect显示有点不清晰,比较乱。

可以看看两款软件截图对比一下
LightBlue







关键点就是,UART-TX和UART-RX,里面的UUID,还有一个主服务的UUID.
主服务:0000FFE0-0000-1000-8000-00805F9B34FB
写服务:0000FFE1-0000-1000-8000-00805F9B34FB
通知服务:0000FFE2-0000-1000-8000-00805F9B34FB

有人就会问为什么UUID不是00010203-0405-0607-0809-0a0b0c0d1912,00010203-0405-0607-0809-0a0b0c0d2b12,0x2901,与上个帖子不同
这里我一开始也是被nRF Connect给误导了,显示的UUID也误导了我,因为这个UUID的规律太像是人为定义了
00010203-0405-0607-0809-0a0b0c0d1912
00010203-0405-0607-0809-0a0b0c0d2b12
太有规律了,导致我用MX-01P去克隆UUID,默认了就是这样的UUID,这里也希望有懂的大神解释一下,这两个特殊的UUID是用于什么服务的
看看nRF Connect显示的原厂模块的UUID


信息太少,不太准确,不过nRF Connect的克隆功能确实不错。


3、模块与控制器设备获得通讯

这里主要是模块的波特率设置的问题,这里其实我也是走了一点弯路的,原厂的模块应该是定制的,所以没有相关的AT指令,所以试了多个波特率,发了很多AT指令都无法与原厂的模块获得通讯。

个人的理解是,原厂模块的AT指令,应该也是特定的,或者需要特定的指令去打开AT模式,这里就确实没有办法去搞
把原厂模块的外壳打开后,发现主控芯片丝印为TLSR8208,求助万能的某宝,最终定位到了一款同主控的蓝牙模块GC2400-TC017,通过查询规格书,支持多种波特率,默认是115200。我猜是端口的波特率115200,就把MX-01P设置成115200,去尝试连接控制器,结果是无法与控制器获得连接。







最后就只能把笔记本电脑和CH340G模块带上,去测试到底是哪个波特率,现场调试第一次就设置了9600的波特率,一发入魂,就连上了,测试了功能,与原厂模块没有区别

总结一下,就是克隆蓝牙模块的关键点,广播包,UUID,以及UART端口的波特率,希望我分享的经验能够帮助到大家,能提供一些好的思路。
接下来也会继续找时间去分析一下代码中的广播包数据,万一没有原厂的模块也能得到广播包的数据。
最后放出原厂模块的信息。
raw数据,0x0201060502E0FFCOFFOC09584943482D3 537383339340512100020000EFF6E8601383 B2657839402000311
广播包:0EFF-6E8601383B26578394000311
名称:XICH-578394
MAC:38:3B:26:57:83:94
主服务:0000FFE0-0000-1000-8000-00805F9B34FB
写服务:0000FFE1-0000-1000-8000-00805F9B34FB
通知服务:0000FFE2-0000-1000-8000-00805F9B34FB
感兴趣的朋友,也可以自己克隆试试,用扬帆再启航小程序测试,如果能到达控制器验证失败这一步,说明模块是过小程序的合法性验证的。




补充内容 (2025-4-18 18:07):
后面又重新购入了新的模块,用于测试校验广播包,原厂广播包数据:6E8601383B2657839402000311,后面通过修改对比测试,6E8601 ************ 02 ******

补充内容 (2025-4-18 18:10):
发现星号位置可以随便修改,小程序可以显示这个模块,至于那几位不能改动的数据,目前没看出什么门道,可能是设备码?或者模块品牌序列号?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

打赏

参与人数 3家元 +210 收起 理由
家睦 + 150
jpdd521 + 30
兔包公 + 30 以資鼓勵

查看全部打赏

发表于 2025-4-13 15:26:16 | 显示全部楼层
nrf你点那个FFE0服务就会显示具体的详细信息,是你选错了服务而已

打赏

参与人数 1家元 +15 收起 理由
南宁谢工 + 15 精彩回帖

查看全部打赏

回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-13 16:04:13 | 显示全部楼层
猪小呆 发表于 2025-4-13 15:26
nrf你点那个FFE0服务就会显示具体的详细信息,是你选错了服务而已

服务太多了,而且写的是未知服务
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-13 16:05:04 | 显示全部楼层
猪小呆 发表于 2025-4-13 15:26
nrf你点那个FFE0服务就会显示具体的详细信息,是你选错了服务而已

lightblue是写得很清楚,RX和TX
回复 支持 反对

使用道具 举报

发表于 2025-4-13 18:19:34 | 显示全部楼层
那么问题来了。逻辑是什么呢,比如我也想复刻一下。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-14 08:39:11 | 显示全部楼层
jpdd521 发表于 2025-4-13 18:19
那么问题来了。逻辑是什么呢,比如我也想复刻一下。。

1、筛选模块--------------------------读取模块的名字,MAC,软件版本,硬件版本以及蓝牙广播包。
2、验证模块的合法性-----------------读取模块的UUID,包括读取、写入,通知的UUID和特性。
3、模块与控制器设备获得通讯--------校验控制器的ID

这就是逻辑,这只是我这个案例的逻辑,理论上可以更复杂,如果说有设置后端,拿后端的数据和模块校验,就比较难搞,像蓝德控制器那种,就是要和账号绑定的
回复 支持 反对

使用道具 举报

发表于 2025-4-14 09:49:55 | 显示全部楼层
其实看得不是很懂,比如我有其它品牌的电单车控制器,但是没有蓝牙模块,是不是按照文章的意思,只要随便买个蓝牙模块,破解小程序连接蓝牙,就可以用小程序调节电单车控制器了?
回复 支持 反对

使用道具 举报

发表于 2025-4-14 10:11:55 | 显示全部楼层
nRF Connect
我用来连接一个智能手表,小黑3
也有RT RX两个接口,但是按照搜来的资料,连调整时间都失败,也不知道为啥。

暂时放弃不搞了,谁要是知道,请pm或者通知我。
回复 支持 反对

使用道具 举报

发表于 2025-4-14 13:50:03 | 显示全部楼层
谢谢分享~进来学习一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-14 14:49:15 | 显示全部楼层
linlance2000 发表于 2025-4-14 10:11
nRF Connect
我用来连接一个智能手表,小黑3
也有RT RX两个接口,但是按照搜来的资料,连调整时间都失败, ...

你这个手表不用UART接口啊,折腾RT RX没用吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-14 15:07:54 | 显示全部楼层
hongshushu123 发表于 2025-4-14 09:49
其实看得不是很懂,比如我有其它品牌的电单车控制器,但是没有蓝牙模块,是不是按照文章的意思,只要随便买 ...

其实就是克隆了控制器的蓝牙模块,控制器——蓝牙模块——小程序,只是把蓝牙模块搞了而已,小程序和控制器还是原来那样,该怎么控制就控制,控制器和小程序是绑定的,不是说不能弄,只是成本太高
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-14 15:12:50 | 显示全部楼层
本帖最后由 tommmmmy 于 2025-4-15 08:33 编辑
linlance2000 发表于 2025-4-14 10:11
nRF Connect
我用来连接一个智能手表,小黑3
也有RT RX两个接口,但是按照搜来的资料,连调整时间都失败, ...

你讲的这个情况和我不一样,你是连接蓝牙,然后直接控制手表,没有原来的控制程序的话,你很难搞,因为蓝牙模块相当于一个通讯器,你手机发数据给他,蓝牙模块就转发一样的数据,这个数据有可能是加密的,你现在一开始要弄的是连上手表的蓝牙,至于后面传输数据是很复杂的,不好搞,你可以上网查一下资料,有些人利用蓝牙去解锁别人的九号小牛电动车的,你这个就特别像这种情况
回复 支持 反对

使用道具 举报

发表于 2025-4-14 17:17:27 | 显示全部楼层
这个厉害呀!!!
回复 支持 反对

使用道具 举报

发表于 2025-4-14 21:03:26 来自手机浏览器 | 显示全部楼层
这个研究的深
回复 支持 反对

使用道具 举报

发表于 2025-4-15 19:42:17 | 显示全部楼层
看到这个,又想起了几年前的一个想法,对讲机厂宝锋出了一款蓝牙写频器,能把普通对讲机变成可蓝牙写频的机器,当时就在想着找会单片机的大佬研究下原理,然后自己造,反价格给打下来。
从原理上讲,两者应该差不多,都是一个蓝牙转串口,无非宝峰那个专门搞了个APP。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-16 09:24:02 | 显示全部楼层
1325133 发表于 2025-4-15 19:42
看到这个,又想起了几年前的一个想法,对讲机厂宝锋出了一款蓝牙写频器,能把普通对讲机变成可蓝牙写频的机 ...

这个还是需要考虑数据加密的情况
回复 支持 反对

使用道具 举报

发表于 2025-4-16 21:45:47 | 显示全部楼层
大师傅,俺买的BT04模块,蓝德的小程序,能正常连接控制器并查看数据,唯一写入提示非法
怎么搞啊
回复 支持 反对

使用道具 举报

发表于 2025-4-16 23:58:32 | 显示全部楼层
蓝德的估计不行,那个有和微信账号绑定的验证,,估计就算克隆了,没有账号绑定的也不行
回复 支持 反对

使用道具 举报

发表于 2025-4-17 03:41:32 | 显示全部楼层
ESP32 BLE 例程里面有这样三行,也就是说 ESP32 的蓝牙和WiFi 一样,是可以自由定义 MAC / UUID

#define SERVICE_UUID           "6E400001-B5A3-F393-E0A9-E50E24DCCA9E"  // UART service UUID
#define CHARACTERISTIC_UUID_RX "6E400002-B5A3-F393-E0A9-E50E24DCCA9E"
#define CHARACTERISTIC_UUID_TX "6E400003-B5A3-F393-E0A9-E50E24DCCA9E"
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-2 05:17 , Processed in 0.405600 second(s), 21 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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