数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1990|回复: 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-28 13:56:31 | 显示全部楼层
技术很牛啊,现在搞纯技术分享不多了
回复 支持 反对

使用道具 举报

发表于 2025-4-20 11:00:59 | 显示全部楼层
这个太偏软件了,吃不透
回复 支持 反对

使用道具 举报

发表于 2025-4-18 14:33:32 | 显示全部楼层
tommmmmy 发表于 2025-4-17 15:10
这个绑定微信号的,其实比较难搞,建议考虑上位机处理
https://wwxr.lanzouv.com/iYgO51ldz3ih
密码:9kop ...

谢谢老哥的资料,上位机的使用说明很详细

打赏

参与人数 1家元 +30 收起 理由
hideaway + 30 歡迎探討

查看全部打赏

回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-17 15:10:32 | 显示全部楼层
亚历山大 发表于 2025-4-16 21:45
大师傅,俺买的BT04模块,蓝德的小程序,能正常连接控制器并查看数据,唯一写入提示非法
怎么搞啊 ...

这个绑定微信号的,其实比较难搞,建议考虑上位机处理
https://wwxr.lanzouv.com/iYgO51ldz3ih
密码:9kop
回复 支持 反对

使用道具 举报

发表于 2025-4-17 14:19:02 | 显示全部楼层
1588858 发表于 2025-4-17 12:22
是的,蓝德的就是这么坑,除非你扒了他的小程序自己搞个小程序,或者用上位机自己做个小程序 ...

有PC上位机,能变成APP吗?俺是不懂编程。

打赏

参与人数 1家元 +30 收起 理由
hideaway + 30 歡迎探討

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2025-4-17 14:17:59 | 显示全部楼层
tommmmmy 发表于 2025-4-17 12:11
到网上查了一下,据说蓝德是初次微信登录,会读取蓝牙模块的MAC和控制器的序列号,等于说微信账号——蓝 ...

原来这么麻烦。买他们的模块要80元,俺买的模块才块多钱。算了,有PC上位机用

打赏

参与人数 1家元 +30 收起 理由
hideaway + 30 歡迎探討

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2025-4-17 12:22:28 | 显示全部楼层
tommmmmy 发表于 2025-4-17 12:11
到网上查了一下,据说蓝德是初次微信登录,会读取蓝牙模块的MAC和控制器的序列号,等于说微信账号——蓝 ...

是的,蓝德的就是这么坑,除非你扒了他的小程序自己搞个小程序,或者用上位机自己做个小程序
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-17 12:11:27 | 显示全部楼层
亚历山大 发表于 2025-4-16 21:45
大师傅,俺买的BT04模块,蓝德的小程序,能正常连接控制器并查看数据,唯一写入提示非法
怎么搞啊 ...

到网上查了一下,据说蓝德是初次微信登录,会读取蓝牙模块的MAC和控制器的序列号,等于说微信账号——蓝牙的MAC——控制器的序列号是绑定一起的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-17 12:05:34 | 显示全部楼层
亚历山大 发表于 2025-4-16 21:45
大师傅,俺买的BT04模块,蓝德的小程序,能正常连接控制器并查看数据,唯一写入提示非法
怎么搞啊 ...

蓝德是模块和微信账号绑定的,你需要找到是拿什么东西和微信账号绑定,你才好去克隆,可能是MAC?没玩过蓝德,不懂
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-17 12:03:00 | 显示全部楼层
亚历山大 发表于 2025-4-16 21:45
大师傅,俺买的BT04模块,蓝德的小程序,能正常连接控制器并查看数据,唯一写入提示非法
怎么搞啊 ...

这个可能要分析小程序代码,有可能写入签前需要验证UUID,你最好先分析一下原厂模块的UUID
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-17 11:56:52 | 显示全部楼层
1588858 发表于 2025-4-16 23:58
蓝德的估计不行,那个有和微信账号绑定的验证,,估计就算克隆了,没有账号绑定的也不行 ...

有后端校验的,难搞,不过呢还是的看情况的,一般是蓝牙模块绑定微信账号而已,应该不会这么绝,微信账号、蓝牙模块、控制器一起绑定
回复 支持 反对

使用道具 举报

发表于 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"
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

打赏

参与人数 1家元 +30 收起 理由
hideaway + 30 歡迎探討

查看全部打赏

回复 支持 反对

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

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

使用道具 举报

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

本版积分规则

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

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-9-22 06:10 , Processed in 0.483601 second(s), 18 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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