文章目录
1、文章仅供学习参考,严禁非法使用!如非法使用,而导致的一切后果,由使用者自负!
2、禁止将本文技术或者本文所关联的项目源码用于任何除学习外的目的。
3、文中案例应用均来自网络,若有侵权烦请告知,第一时间删除。
前言:五一假期在家无聊,看看有没有合适的APP学习一下。还真找到一个合适的付费视频app,【加密算法简单,未加壳】,利用两天时间将所有付费内容全部搞定。以下是详细思考分析过程。
一、目标应用
Y29tLnZpZGVvLmxpdmU=
二、环境
- PyCharm
- Android Studio
- Frida
- Reqable
- Jadx
- uiautomatorviewer
- 手机Android13
三、步骤
1、查壳
刚拿到安装包时,直接丢jadx中,发现没有加壳。可以直接开搞了。开始的时候有点懵,无从下手。
那就先看下要处理的界面吧。
2、定位付费界面布局
关键布局id:tv_open_vip_btn发现使用的ViewBinding进而找到对应的Activity
3、找到可疑方法
心想:这么简单的嘛,直接hook这个方法,不执行不就完了嘛。
hook代码:
let VideoDetailActivity = Java.use("[包名].VideoDetailActivity");
VideoDetailActivity["addOpenVipView"].implementation = function (a) {
console.log(`VideoDetailActivity.addOpenVipView is called: a=${
a}`);
this["addOpenVipView"](a);
};
是我想多了,还是不可用,并没有什么作用。
4、那就看下请求信息吧,看下有没有思路
发现好多请求,都是加密的。通过后缀可以看出是AES的图片加密。我们的目标是视频,图片没啥用,都是封面啥的。
5、其他请求(列表,视频信息,获取播放url)
- getList:获取列表信息
- getInfo:获取某视频信息
- geturl:获取播放视频地址
- getpreurl:获取预看地址
1、看了下所有请求参数都有加密,响应数据明文。
2、着手搞参数加密就可以了。
- endata:请求参数
- ents:时间戳
6、请求参数加密算法
还算顺利,搜索关键字就可以查到。
测试: