有什么不明白的地方,扫描右方二维码加我微信交流。
       

apk抓包流程

  1. 反编译;
  2. 修改AndroidManifest.xml文件,并添加network_security_config.xml文件;
  3. 重新打包;
  4. 重新签名;
  5. 对齐;
  6. 打开网络代理服务器;
  7. 设置手机网络代理;
  8. 抓包。

下面以某个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抓包的两个关键点:

  1. 破解包,使得app信任网络代理证书。Android7.0之前可以将代理证书放到手机的用户证书中来实现网络抓包,而Android7.0之后的手机不再相信任何网络证书,所以多了一步重新打包、签名的操作。
  2. 设置网络代理,截图网络请求。网络代理工具有很多,mitmproxy是一种,Charles也可以,只要可以检测到手机流量的都可以。

 

iOS抓包流程

iOS抓包相对android来说要简单很多,如下步骤:

  1. 打开代理服务器;
  2. 设置手机网络代理并下载代理证书;
  3. 安装证书;
  4. 信任证书;
  5. 抓包

1.打开代理服务器

网络代理服务器建议使用mitmproxy点击安装

安装之后,在命令行使用mitmproxy运行代理服务器,代理端口会显示在窗口里,

你的电脑的ip就是服务器ip,端口就是服务器端口。

 

2.设置手机网络代理并下载代理证书

设置当前的wifi代理为你的电脑ip,端口为上一步获取的端口,然后在浏览器打开mitm.it,如果打开成功,则说明代理连接成功。如图所示,然后点击上图中的Apple下载证书。

 

3.安装证书

打开手机设置-通用-描述文件-mitmproxy-安装,依次操作,安装上一步下载的证书,如下图所示:

 

4.信任证书

打开手机设置-通用-关于手机-证书信任与设置-信任mitmproxy,如下图所示:

 

5.抓包

下面可以开始愉快的抓包了。

1 对 “android-apk抓包(apktool+mitmproxy),iOS抓包”的想法;

  1. 这教程没问题,就是我遇到的apk太变态了,不给重打包

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注