云莓智能抓包分析

2023 年 9 月 4 日 星期一(已编辑)
/ , , ,
350
这篇文章上次修改于 2023 年 10 月 2 日 星期一,可能部分内容已经不适用,如有疑问可询问作者。

云莓智能抓包分析

前言 --

很早就研究过了,也用于计量便民平台上,这里我写个文章重新再演示下 环境配置 ----

随便找个模拟器抓包,这里我直接用 mumu 新建了个

装好云莓智能后打开

打开 fiddler,记录电脑本机 ip

然后模拟器进入 WiFi 设置代理

fiddler 有所变化就说明成功了

然后打开浏览器(建议先打开浏览器再设置代理,mumu 似乎通过上面那个接口与后端通信,设置代理后就会出现点击无反应问题)

输入 ip:8888 (8888 是 fiddler 默认端口,可以修改)

下载 Root 证书

安卓 12 不能直接点击证书安装

我一开始在 设置-安全 中没能找到安装证书的选项

搜了一下才知道安卓12把安装证书放到 设置-网络与互联网-互联网-网络偏好设置 里来了

我们安装好证书

抓包分析 ----

云莓智能输好账密,点击登录

查看 fiddler 的包

登录部分很简单,没有验签什么的,只有一个用户名(手机号)和密码(MD5)的参数

登录成功便可获得 token

header 中携带 token 去访问用户信息(测试只有 tokenData 和 tokenUserId 是必要的)

然后便可获得新的 token

使用新的 token 去获取门锁信息(注:如果没有权限是获取不到的,比如假期非留校人员)

可以获得门锁蓝牙地址、链接密钥、电量等信息

再使用新 token 去获取室友信息

里面学院、专业、班级、手机号啥的都有

开源库 ---

我已经用 php 写了个库:

[github]FoskyTech/Yunmei-Auth[/github]

各位可直接使用 composer 安装:

composer require foskytech/yunmei-auth

演示文件:

<?php 
require_once '../vendor/autoload.php'; 
use FoskyTech\YunmeiAuth; 
$yunmei = new YunmeiAuth; // 登录 
$login = $yunmei->login('手机号', '密码');
# print_r($login);

$userId = $login['data']['userId'];
$token = $login['data']['token'];

// 使用登录返回的参数获取学校信息
$school_info = $yunmei->schoolInfo($userId, $token);
# print_r($school_info);

$schoolNo = $school_info['data']['schoolNo'];
$serverUrl = $school_info['data']['serverUrl'];
$token = $school_info['data']['token']; // 服务器返回了新的token

// 获取宿舍信息及门锁信息
$dorm_info = $yunmei->dormInfo($serverUrl, $userId, $token, $schoolNo);
# print_r($dorm_info);

$areaNo = $dorm_info['data']['areaNo'];
$buildNo = $dorm_info['data']['buildNo'];
$dormNo = $dorm_info['data']['dormNo'];

// 获取室友列表
$roommate = $yunmei->getRoommate($serverUrl, $userId, $token, $schoolNo, $areaNo, $buildNo, $dormNo);
print_r($roommate);

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...