在端午节前面,有好几我的都找我询问最近好看的美剧,那我就作一个简单的美剧排期表的小程序,接口能够Hack一下,结果遇到了好多问题,好开心。算法
利用iOS抓包APP Stream 进行抓包,化简获得下面的curl 小程序
1curl 'https://api.rr.tv/schedule/listV2'
2-H 'p: iOS'
3--data 'simpleBody=9SiG/cduXC41k3COogMfZnU1bABhgz0rHVOx06MQYZywOkXTrfgdvjqdZv8W79nq%0D%0A5QhhVzvNAK3DTULfLP6t8g%3D%3D'复制代码
能够看到接口字段是加密的,利用了网上在线解密工具常见的几种加密算法进行解密,发现毫无结果,只能反编译Apk了。(发现 用户信息接口里等级描述 我是「美剧专家」,哈哈。api
反编译三板斧:apktool,dex2jar,jd-gui。bash
关于这些工具的下载安装,就不赘述了(上各自的官网下载就好了)。app
我发现事情并无那么的简单,它用360加固了(小声比比:不是说360加固会塞广告嘛?curl
那么问题就又出现了,该怎么360脱壳呢?工具
上面讲到要脱壳,打开GitHub 搜一下,发现几个脱壳Xposed插件,FDex2 ,dumpDex,DeveloperHelper。ui
手里有魔趣9 的坚果Pro2,结果搞了很久才安装上Xposed,DeveloperHelper dump出4个Jar ,以下图:加密
利用JD-GUI 或者IDEA打开这4个Jar文件,从Android 的Activity到Fragment 到到HTTP,再到字段加密的请求相关代码,以下图,感受离胜利快不远了诶。url
仍是我太天真了,发现他们用的的AES加密,秘钥的获取是使用过Java调用JNI来获取的16位秘钥...
虽然文章文字写的很少,也大体讲完了个人一次反编译经历,虽然没能获取到他们的加密,也没能作成小程序,可是遇到问题,解决问题的过程实在是太快乐了。