前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >当智能喂食机停摆……

当智能喂食机停摆……

作者头像
horsley
发布2022-08-16 11:31:49
5100
发布2022-08-16 11:31:49
举报

国庆假期回家,如往常一样set好猫猫的饮用水、摄像头和喂食机,结果却发现喂食机App无法正常工作了,无法在列表中刷出我的喂食机设备。考虑到可以远程控制,必然有个官方后台服务做类似于控制中心的角色,感觉那个服务可能歇菜了。App已经不能在App Store搜索到,手机上的版本连全面屏都尚未适配。App中Copy Right是2016-2018,搜索到的官方公众号也在18年停更。木得办法着急出门只能让猫猫敞开吃了……

回来一查,这个小桔智能喂食机,中山厂家小桔互联出品,域名orangelink.cn 2021年到期,但已经找不到可以打开的主页,先给域名持有人罗先生的邮箱发个邮件问问(交叉对比的天眼查这家公司的法人信息)

话说还有点想让喂食机复活,有那么几个思路:

  1. 抓包理出机器和后台控制中心通讯使用的域名、协议等,倘若协议比较简单,可通过路由器dns host把原控制中心域名转发到自有服务器,再mock一个控制中心的实现即可。
  2. 如果网络协议难以分析,可以从app入手,可以拿android的安装包反编译看看有什么线索。
  3. 再不济,因为机器上有手动出粮开关,我可以外挂其他设备例如m5stack(esp32)来做控制和远程通讯,在桥接手动出粮开关即可

首先尝试思路1,通过手机上的App直接进行抓包,可以看到请求发往api.orangelan.com:443,这个域名解析到一个中国香港的ip,但是由于SSL连接错误无法进行下一步,因此没能看到请求细节,在电脑上telnet 443尝试可以连上但是秒被断开。如果需要进一步探测需要mock一个https的server,做路由dns host和mitm重签名,暂时放一放,看看App反编译的思路有没有提示。

从搜索引擎拿到一个小桔App的Android版apk,尝试丢到在线反编译网站,发现腾讯乐固的痕迹,看不到什么实质内容。参考网上方法尝试用Xposed脱壳,但是由于我只有x86 Android虚拟机,没有适配的Xposed框架支持,于是改用frida的方式,可以轻松拿到3个dex文件,选择其中最大的那个(另外两个大小可以推测不是业务内容),通过dex2jar转换成jar,然后就可以通过jd-gui查看部分代码内容。

代码内容里面,从com.orangelink.orangepet_tencent.common 中找到一个ServiceMethod的class,里面有各种api的url,简单来看后台应该由asp技术搭建(确实跟不上潮流了)

再看了下其他代码,内容还是不少的。不过理论上app里面只包含app到设备,app到控制中心的内容,并不包含设备到控制中心的通讯内容,这部分还需要抓设备的包才能看到,设备可能还不像手机可以方便的做https mitm。

App到设备这一段,可以在代码里面看到一个叫 Esptouch 的东西,看了下Expressif家的一个协议,用于给相关设备配置Wi-Fi,感觉是公开协议的话比较好实现。从com.orangelink.orangepet_tencent.device 中 EsptouchActivity.class 的一个点击事件可以看到,配网需要ap的ssid,bssid和密码

如果采用的是标准的Esptouch协议配网,那么实际上Expressif自家有个demo app就可以用。一开始尝试死活不能成功,demo app并不能成功使喂食机重新配网,后来看App中提示Wi-Fi必须是2.4G的不能是5G的,而我是2.4G+5G融合信号,想着可能有影响,于是用主路由纯2.4G信号进行配网,秒可以。

在路由上tcpdump喂食机的流量,比较诡异,喂食机连Wi-Fi之后,只和s1a.time.edu.cn做了ntp对时,并未抓到和控制中心的通讯包

而且断电重启之后发现黄灯闪烁,依然停留在配网模式。因此怀疑在配网成功之后,原喂食机App需要把用户信息包含密钥投递到喂食机,喂食机才能用这些信息和后台控制中心联网,所以接下来还要看看配网之后的设备初始化(用户绑定/设备远程注册)流程,未完待续……

参考内容:

https://www.tianyancha.com/brand/b0c8d9052

https://xz.aliyun.com/t/7670

https://www.jianshu.com/p/3ae7ef9b4d13

https://www.espressif.com/zh-hans/products/software/esp-touch/overview

https://www.espressif.com/sites/default/files/documentation/esp-touch_user_guide_cn.pdf

https://blog.csdn.net/flyingcys/article/details/49283273

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020 年 10 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档