android-apk抓包(apktool+mitmproxy),iOS抓包
有什么不明白的地方,扫描右方二维码加我微信交流。
apk抓包流程
- 反编译;
- 修改
AndroidManifest.xml
文件,并添加network_security_config.xml
文件; - 重新打包;
- 重新签名;
- 对齐;
- 打开网络代理服务器;
- 设置手机网络代理;
- 抓包。
下面以某个apk为例。
1.反编译
反编译工具使用apktool
,点击安装
使用如下命令:
apktool d example.apk
执行完毕后会在当前目录生成一个example文件夹,里面是反编译出的文件。
2.在example文件夹里找到AndroidManifest.xml
文件,并在application节点里添加如下代码:
android:networkSecurityConfig="@xml/network_security_config"
再将以下代码保存成一个xml文件,放在res/xml
文件夹下:
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system" /> <certificates src="user" /> </trust-anchors> </base-config> </network-security-config>
3.重新打包
使用如下命令重新打包:
apktool b example -o example-b.apk
打包完成,会在当前目录下生成example-b.apk
。
4.签名
生成签名文件, 可以通过Android Studio
随便新建一个项目,通过Generate Signed apk
方式生成一个签名文件,也可以通过命令的方式生成签名,如下命令:
keytool -genkey -alias example.keystore -keyalg RSA -validity 20000 -keystore example.keystore
然后使用这个签名文件对刚生成的apk进行签名,命令如下:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore example.keystore example-b.apk example.keystore
签名完成后进行一下验证,命令如下:
jarsigner -verify -verbose example-b.apk
5.对齐
对齐需要有zipalign
命令,需要配置环境变量,目录在sdk/build-tools/29.0.3/
,版本号随意,执行以下命令:
zipalign -v 4 example-b.apk example-f.apk
好了,现在就可以将example-f.apk
安装在手机上了。
6.打开网络代理服务器
网络代理服务器建议使用mitmproxy
,点击安装。
安装之后,在命令行使用mitmproxy
运行代理服务器,代理端口会显示在窗口里,
你的电脑的ip就是服务器ip,端口就是服务器端口。
7.设置手机网络代理
设置当前的wifi代理为你的电脑ip,端口为上一步获取的端口,然后在浏览器打开mitm.it,如果打开成功,则说明代理连接成功。如下图所示,点击Android,输入证书名称,安装证书。
8.抓包
打开刚刚安装的app,就可以开始愉快的抓包了。
apk抓包的两个关键点:
- 破解包,使得app信任网络代理证书。Android7.0之前可以将代理证书放到手机的用户证书中来实现网络抓包,而Android7.0之后的手机不再相信任何网络证书,所以多了一步重新打包、签名的操作。
- 设置网络代理,截图网络请求。网络代理工具有很多,mitmproxy是一种,Charles也可以,只要可以检测到手机流量的都可以。
iOS抓包流程
iOS抓包相对android来说要简单很多,如下步骤:
- 打开代理服务器;
- 设置手机网络代理并下载代理证书;
- 安装证书;
- 信任证书;
- 抓包
1.打开代理服务器
网络代理服务器建议使用mitmproxy
,点击安装。
安装之后,在命令行使用mitmproxy
运行代理服务器,代理端口会显示在窗口里,
你的电脑的ip就是服务器ip,端口就是服务器端口。
2.设置手机网络代理并下载代理证书
设置当前的wifi代理为你的电脑ip,端口为上一步获取的端口,然后在浏览器打开mitm.it,如果打开成功,则说明代理连接成功。如图所示,然后点击上图中的Apple下载证书。
3.安装证书
打开手机设置-通用-描述文件-mitmproxy-安装,依次操作,安装上一步下载的证书,如下图所示:
4.信任证书
打开手机设置-通用-关于手机-证书信任与设置-信任mitmproxy,如下图所示:
5.抓包
下面可以开始愉快的抓包了。
这教程没问题,就是我遇到的apk太变态了,不给重打包