背景:
首先我们需要一点点python基础,比如可以运行类似下面的代码
开始!!!
先打开app搜索
找到对应的接口,分析一下请求参数,这个工具叫http Debugger Pro
有一个sig参数对链接做了签名,看起来像md5
我们需要生成sig参数来伪造请求
反编译apk,搜索"sig"
显然是v3.sig,点点点。。。
在generatorSigWithFinal生成这个sig
点进去发现这是一个native方法,写在release_sig里
如果想知道这个方法怎么用,可以用frida hook generatorSigWithFinal看看参数是什么
很明显,arg0是路径,arg1是链接参数值,arg2是固定字符串,arg3是上下文
解压apk的librelease_sig.so看看nativeGeneratorSig
果然是md5,在update和return 打断点 看看参数和结果是什么
update:
显然参数是arg0+arg1+固定字符串+时间戳+固定字符串,其中arg1做了升序排序
复制出来字符串然后md5,对比就是这个~
之后又对md5结果做了处理,交换奇数位和偶数位的位置
生成sig参数:
1.取出链接里的路径和参数的值
2.参数值按升序排序拼接成的字符串
3.拼接加密字符串:路径+参数字符串+bdaefd747c7d594f+时间戳+Tw5AY783H@EU3#XC
4.对加密字符串md5,交换奇数位和偶数位的位值
python版本实现:
有sig就可以伪造请求
提取里面的视频地址:
写一个save函数,输入链接下载视频
改成:
哈哈 全部代码放到github里,欢迎star