V2EX 10月13日 13:48
程序员揭秘汽车APP:超大资源包藏玄机,解锁车辆远程控制
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

一位程序员深入分析某汽车厂商的安卓APP,发现其近400MB的体积中竟包含约300MB的资源文件,质疑其填充大量非必要内容。该分析揭示了APP已实现多项功能,包括非实时查看车辆及充电桩状态(仅需Token验证),以及实时远程控制车辆(如开关锁、车窗等)。非实时状态获取主要面临Token续期问题,可通过电脑抓包分析;而实时控制则依赖TLSv1.2双向证书加密的MQTT协议,无法直接通过HTTP抓包工具,需解包APP或使用Wireshark分析。分析者已将这些功能集成为HomeAssistant插件,提供比官方APP更便捷的车辆控制方式,并寻求与其他有经验者交流。

🚗 **APP体积与资源分析**:该汽车厂商的安卓APP体积高达近400MB,其中约300MB为资源文件,暗示可能存在大量非核心或冗余内容,影响了APP的整体效率。

🔌 **车辆与充电桩状态查看**:APP支持查看服务器上的车辆及配套充电桩状态,此功能为非实时,且仅需Token验证,安全验证相对简单。主要挑战在于Token的自动更新与续期机制,不同车企的安全时限不同,需要具体分析。

🔒 **实时远程车辆控制**:实现实时远程控制(如开关锁、开关车窗)需要通过TLSv1.2双向证书加密的MQTT协议。由于MQTT加密通信的特性,传统的HTTP(S)抓包工具(如Reqable、小黄鸟)无法直接捕获,需要通过解包APP或Wireshark等工具进行通信协议分析。ROOT手机后可尝试获取证书进行进一步分析。

🏠 **HomeAssistant集成与优化**:分析者已将上述功能开发为HomeAssistant的插件,用户可在仪表盘中实现比官方APP更便捷的车辆控制,例如通过桌面小组件进行一键开关锁等操作。

具体哪一家车企就不说了,防止有点刑

车企也是神人程序员,我这个接近 400m 的安卓 APP 里面,解包分析出来,有接近 300m 的资源文件(我是说怎么 APP 这么大一点不卡呢,app 全拿来塞垃圾了原来是)

目前已经完成包括但不限于如下功能

其中非实时状态拉取只有 token 验证,不校验证书,比较简单,唯一问题就是 token 的续期问题,不同车企对于这一块的安全时间限制不一样,需要自己验证,这一块基本 reqable 电脑端,然后在手机配置代理就可以抓包分析了。

但是实时的远程控制车辆需要通过 TLSv1.2 的双向证书加密,我这家是基于 MQTT 的,MQTT 加密的就没法通过 reqable 抓取了,小黄鸟只能 http(s),可以通过 wireshark 的方式,分析具体用的是什么通信,(或者直接解包 APP ,我是发现加密 MQTT 之后解包 APP 分析通信的),证书的话可以在 ROOT 之后自己想办法(只可意会)

目前把他做成了 homeassistant 的插件的方式,添加到仪表盘之后,效果如下

没有做更好看的那个卡片(有点太麻烦了),在 HA 里面可以开关锁/或者桌面小组件,比官方 APP 好

https://imgur.com/a/0SPv4Zr

有整过的老哥可以分享交流一下:) 我也是第一次整这一块,废了点功夫

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

汽车APP 逆向工程 远程控制 HomeAssistant MQTT TLS加密 程序员 Car App Reverse Engineering Remote Control MQTT TLS Encryption Programmer
相关文章