某旅游app分析(1)

sotp

该厂不许发布针对他们app的分析博客,好多博客都被厂商要求下架了,所以这里只是简单提几句。

一,利用查壳工具对apk做检测,并没有找到壳的特征,没加壳,dex文件都清晰可见。

二,root检测似乎不会导致app闪退与正常使用。

三,使用酒店搜索功能时,通过“花瓶”抓不到酒店的包,只能获得酒店的预览图,但具体价格、位置等信息都看不到,根据分析,使用了sotp协议。

接下来的分析关于酒店搜索功能。

接收

分析了接收报文时的调用栈:

报文的前8个字节代表payload长度。

payload要是为6个字节,则是心跳包;反之是常规业务数据包,业务数据包的前6个字节有特殊用处,前4个字节是DataHandleType,后2个字节是Version,根据这2个值分别选择解密方式和解压缩方式(AES、Xor、Gzip、Zstandard),最好进行反序列化。

对AES进行了分析,并没有魔改,IV和密钥都很好获得。

发送

再分析了发送报文时的调用栈:

对RequestBody先进行序列化,再进行压缩、加密。

有意思的是,RequestBody的结构是protobuf,费了一些心思,一开始用blackboxprotobuf逐步还原请求体,后来在apk中找到了关于TAG的定义,整理成proto文件,对body部分进行还原。

然后发现被这个字段开盒了hhhh。

image-20250620161417461

下一篇博客应该是对该app的某个加密字段进行分析。

最后,如果这个博客不允许发,可以联系我/(ㄒoㄒ)/~~(2050365997@qq.com