Bootstrap

app逆向实战强化篇——破解某安卓APP请求加密参数

导语

你千万别跟任何人谈任何事情。你只要一谈起,就会想念起每一个人来,我只知道我很想念我所谈到的每一个人。

          ——J·D·塞林格《麦田里的守望者》

写在前面的话

今天分享另一个app逆向的实战
如果觉得对你有用,还请关注下公众号,后续会有更多的实战教学篇,以免错过噢!
话不多说,进入正题,开搞

抓包

国际惯例,先用 fiddler 抓包

分析请求参数,可以看到,手机号码以及密码都是加密的

请求

响应

app反编译

使用 jadx 直接打开 apk 文件

jadx

对抓包和反编译不熟悉的朋友,还请查看以前的文章,里面有详细的介绍!

参数搜索

点击菜单栏上面那个放大镜的图标,然后✔代码选项,根据抓包的请求参数,去搜索加密的源码

搜索界面

有时候某个参数搜索出来的结果很多,

我们可以换其他参数去搜索,或者给参数加上双引号来搜索,这样可以减少干扰项

下面是我搜索出来的加密源码

加密源码
加密源码

破解

根据源码中参数的加密方式,使用 python 代码来生成。

可以看到是 RSA/ECB/PKCS1Padding 加密,密匙使用了base64加密

然后再将 RSA 加密的结果再进行base64加密

在python中可以使用 pycryptodome 模块来实现 AES加密

有些源码看不懂没关系,多尝试,多查下 java 的用法,还有就是多问!

验证

登录验证

抓包的响应

上面是使用 Python 代码模拟登录结果和 fiddler 抓包的响应结果

从两者的结果比较中我们可以看到:

code 都是为 0,登录后的 token_onlie 的结果是一致

说明登录成功了,加密参数也破解了!


看完本文有收获?请转发分享给更多的人
关注[Python编程与实战],学习更多实战技能

Facebook的广告也许正在窃听你的对话

python数据可视化神器--pyecharts 快速入门

【视频教程】011.__init__和__new__的使用

当 Python 中混进一只薛定谔的猫……

LeetCode - 001

和张哥的那些天,互联网人的潜规则

那些年错过的并发知识!

超强汇总:学习Python列表,只需这篇文章就够了

记一次群聊吃瓜引发的JS破解教程

爬虫之线程池 ThreadPoolExecutor 的用法及实战

▼立即加星标,每天看好文▼

1

2

极客学习空间

新媒体人都在关注

喜欢,就为我标星

我今天才知道,我之所以漂泊就是在向你靠近。

--《廊桥遗梦》

;