前言:
前段时间做爬虫遇到一个app,里面的数据需要登录之后才能拿到,而且登录不能用密码,只能通过验证码登录。
这不是明摆着欺负人么,按赵四哥那句话来说就是:
生死看淡,不服就干!
所以接下来手把手带大家就某个app登陆请求的加密参数进行分析破解,
从而实现从网络抓包的密文到明文的转换。
环境配置:
Python
Java
dex2jar(将apk反编译成java源码)
jd_gui(源码查看)
jadx
已root的手机或者安卓模拟器
fiddler
PS:私信小编01 即可获取反编译工具包
分析:
首先我们用fiddler抓包工具对app的登陆进行抓包,这个app抓包需要开启全局代理,不然会抓不到数据。
如果还不会使用全局代理抓包的朋友,可以看下前面一篇文章,里面有详细的抓包教程。
抓包的数据如下:
发送验证码请求参数
我们可以看到有个 token 的参数,有经验的朋友知道,这是服务器后台生成的,而且在发送登陆验证码请求之前并没有其它的数据交换!
登录请求参数
这时候我们就要去看 app 源码找到这个参数的加密方式,然后用转换成 Python 代码生成。
接下来就带大家就一步一步来破解这个参数。
破解过程:
我们要获取app源码,就要对app进行反编译,反编译方式很简单,直接用工具搞定。
有两种反编译方式可供选择,反编译过程如下:
1.将安卓app的后缀更改为可解密的包,并解压