首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我要死磕这四家短视频的数据请求加密协议?因为我带你飞,伤痛我背!

好了终于到这个时间节点了,也终于把基础工作都做完了,接下来就要进入我们的正题了,其实之前也有很多人好奇我为什么非要死磕这些短视频的加密协议分析破解,因为在那个寒冷的夜晚,当我独自一人孤独的躺在冰冷的床上还是和以往一样刷着某音,某手,某山,某拍小视频的时候,悲剧突然就发生了!

在我切换应用的时候,手机尽然卡住了死机了,好吧,我知道这不怪任何人,只能怪我太穷买了这么便宜劣质的手机,但是无独有偶,穷就该活受欺负吗?要不是切换操作也不至于。我这暴脾气,生死看淡,不服就干的精神不可废弃。扔了手机独想,我不能在来回切换了,那么怎么办呢?只能把这四家的内容整合到一个app中,然后就用我家里最贵的电器笔记本破解这些视频app:

后面就有了下面的死磕这四家短视频的事情了。经过一丝考虑之后与其开发这个app,我想是不是在世界的某个角落也有一些人和我遇到 问题是一样的,那么我作为一个屌丝程序猿一定要站在屌丝的立场为他们考虑,所以就决定将这个app正式确立项目。

项目简介

项目技术难题:四家app中视频数据获取协议全部加密需要单独破解

项目名称:酱爆视频(酱爆是我最喜欢的星爷的喜剧配角,希望此app能给广大穷苦屌丝用户带来快乐)

项目周期:只占用周末时间,预计今年年底发布

项目资源:因为全部采用破解后的请求四家视频平台数据,视频播放地址也是一样,全部占用他们的服务器资源!自己暂时不用单独写服务器接口,客户端所有用到的图片资源全部采用xml和代码进行编写,不需要单独使用图片资源

项目人员:常年混迹娱乐圈的底层码畜

项目理念:只要还有一个用户和我一样有这个需求,那么我就有责任将需求变成应用,让屌丝的手机不在卡

项目框架:网络请求使用okhttp,视频播放使用ijkplayer即可

分析四家短视频协议

因为这里有的同学还认真看到前面的几篇破解文章,这里再来总结一下大致内容:

第一、某音短视频

1、协议破解:破解某音视频的数据请求协议

2、这里我们利用IDA动态调试找到so中的一些防护策略,大致为签名保护,反调试等。

3、数据列表请求接口:/aweme/v1/feed/

4、返回的json数据格式如下:

5、数据请求分页功能实现原理:

第一次请求:min_cursor和max_cursor这两个字段都是0;

1》上拉数据:传递两个字段min_cursor,max_cursor;并且都是0;

2》下拉数据:第二次请求取第一次请求返回的json数据中的min_cursor字段,max_cursor不需要携带;第三次以及后面所有的请求都只带max_cursor字段,值为第一次请求返回的json数据中的max_cursor字段。

防护策略:加密放在native中做的,为了防止so被恶意调用,增加了反调试,签名校验,Java层类的检查!

第二、某山小视频

1、协议破解:破解某山视频的数据请求协议

2、因为某音和某山都是某头条孵化的项目所以采用的加密协议是一模一样的。

3、数据接口:/hotsoon/feed

4、返回的json数据格式如下:

5、数据请求分页功能实现原理:

第一次请求,max_time和min_time都为0;

1》上拉数据:只传递min_time字段并且始终为0;

2》下拉数据:为上一次的max_time值,只传递max_time字段;

防护策略:加密放在native中做的,为了防止so被恶意调用,增加了反调试,签名校验,Java层类的检查!

第三、某拍小视频

1、协议破解:破解某拍视频的数据请求协议

2、这里我们利用IDA动态调试找到so中的一些防护策略,主要为包名校验,这里利用修改arm指令解决防护问题。

3、数据接口:/recommend/index.json

4、返回的json数据格式如下:

5、数据请求分页功能实现原理:

第一次请求:lastUpdateTime字段传递为当前时间,page字段都不传递;

1》上拉数据:lastUpdateTime:为上一次刷新时间;page:始终为1;

2》下拉数据:lastUpdateTime:为上一次刷新时间;page:依次递增;

注意这里的时间是服务器时间为10位,Java中的时间是13位需要进行转化。

防护策略:加密放在native中做的,为了防止so被恶意调用,增加了包名检查,加密信息也放在了数据请求中。

第四、某手小视频

1、协议破解:破解某手视频的数据请求协议

2、这里我们直接使用Jadx分析Java层代码,找到so直接调用即可,内部没有防护策略。

3、数据接口:/rest/n/feed/hot

4、返回的json数据格式如下:

5、数据请求分页功能实现原理:

1》上拉数据:pcursor不传值;refreshTimes递增;id值递增;page字段始终都是1;

2》下拉数据:pcursor字段递增;page字段递增;refreshTimes递增;id值递增;

防护策略:加密放在native中做的,so中唯一做了一个系统版本判断校验。

因为这是个开源项目,并不会进行任何利益赚取,所以项目源码准备开源,在小密圈中会实时和大家同步开发问题和技巧,对于项目中用到的资源我会给大家一个方式,我们不需要设计师,测试,产品,因为这些我们可以自己做!

海报图设计后面也会出操作PS教程

这个项目可能对于我个人来说带来不了任何东西,但是可以时刻警告自己,程序猿穷不可怕,可怕的是穷还要受欺负,那么我就不答应了!

当你在发现自己穷的时候买不起好手机的时候,不要畏惧平庸。平凡的程序猿,平凡的代码界,可以走不平凡的路!

其实我们做的事很简单,但是在这个过程中我们可以学习到很多知识,首先是逆向知识,其次是项目开发技巧,比如框架的使用,内存优化,图片资源优化,动画效果制作等。我希望通过这个项目能给大家带来更多的技术分享和知识提高。毕竟我只说干货,不闲扯淡。所以如果有感兴趣的同学,就来编码美丽小密圈一起参与项目开发,一起造起来!点击立即进入小密圈

手机查看文章不方便,可以网页看

《Android应用安全防护和逆向分析》

长按下面二维码,关注编码美丽

编码美丽小密圈

小密圈中汇集众神分享技术,所有源码、工具、破解样本、插件都汇集在小密圈中

---点击立即进入小密圈---

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180115G03S2F00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券