导语
你千万别跟任何人谈任何事情。你只要一谈起,就会想念起每一个人来,我只知道我很想念我所谈到的每一个人。
——J·D·塞林格《麦田里的守望者》
写在前面的话
今天分享另一个app逆向的实战
如果觉得对你有用,还请关注下公众号,后续会有更多的实战教学篇,以免错过噢!
话不多说,进入正题,开搞
抓包
国际惯例,先用 fiddler 抓包
分析请求参数,可以看到,手机号码以及密码都是加密的
app反编译
使用 jadx 直接打开 apk 文件
对抓包和反编译不熟悉的朋友,还请查看以前的文章,里面有详细的介绍!
参数搜索
点击菜单栏上面那个放大镜的图标,然后✔代码选项,根据抓包的请求参数,去搜索加密的源码
有时候某个参数搜索出来的结果很多,
我们可以换其他参数去搜索,或者给参数加上双引号来搜索,这样可以减少干扰项
下面是我搜索出来的加密源码
破解
根据源码中参数的加密方式,使用 python 代码来生成。
可以看到是 RSA/ECB/PKCS1Padding 加密,密匙使用了base64加密
然后再将 RSA 加密的结果再进行base64加密
在python中可以使用 pycryptodome 模块来实现 AES加密
有些源码看不懂没关系,多尝试,多查下 java 的用法,还有就是多问!
验证
上面是使用 Python 代码模拟登录结果和 fiddler 抓包的响应结果
从两者的结果比较中我们可以看到:
code 都是为 0,登录后的 token_onlie 的结果是一致
说明登录成功了,加密参数也破解了!
看完本文有收获?请转发分享给更多的人
关注[Python编程与实战],学习更多实战技能
爬虫之线程池 ThreadPoolExecutor 的用法及实战
▼立即加星标,每天看好文▼
1
2
极客学习空间
新媒体人都在关注
喜欢,就为我标星
我今天才知道,我之所以漂泊就是在向你靠近。
--《廊桥遗梦》