因为有的app安全参数特别复杂和多变性,所以想通过截取方式进行获取;
总体原理流程是:
a、airtest进行自动化模拟手机操作,点滑等功能
b、mitmproxy进行手机app通信包的拦截分析
c、再通过pycharm对于拦截下来的包分析重新提交进行获取

1、mitmproxy(也可以参考这篇文章)
pip3 install mitmproxy
对于mitmproxy来说,如果想要截获HTTPS请求,就需要设置证书。mitmproxy在安装后会提供一套CA证书,只要客户端信任了mitmproxy提供的证书,就可以通过mitmproxy获取HTTPS请求的具体内容,否则mitmproxy是无法解析HTTPS请求的。

首先,运行以下命令产生CA证书,并启动mitmdump:

mitmdump

抖音ios抓包绕过ssl PINNING 抖音防抓包_HTTPS


双击mitmproxy-ca.p12,就会出现导入证书的引导页按照下一步,这里不需要设置密码,直接点击“下一步”按钮即可。

抖音ios抓包绕过ssl PINNING 抖音防抓包_控件_02


接下来需要选择证书的存储区域,这里点击第二个选项“将所有的证书都放入下列存储”,然后点击“浏览”按钮,选择证书存储位置为“受信任的根证书颁发机构”,接着点击“确定”按钮,然后点击“下一步”按钮,到完成

Android

在Android手机上,同样需要将证书mitmproxy-ca-cert.pem文件发送到手机上,例如直接复制文件,或浏览器打开mitm.it网站

(首先电脑运行起来端口监听)
mitmdump -p 8889
然后模拟器安卓上连上同一网络,高级模式手动,ip为电脑ip,端口为上面8889

抖音ios抓包绕过ssl PINNING 抖音防抓包_Android_03


2、airtest 网易出品的一款自动测试软件,可以用于模拟

ide连接模拟器参考;夜神端口62001

http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/2_device_connection/3_emulator_connection.html

先点击Connect按钮旁的下拉菜单,勾选Javacap模式后,再点击 Conenct 按钮(如果没有勾选Javacap模式,会导致看到的手机画面是黑屏)。如果还是未能连接成功,可以补充勾选 use adb orientation 再连。

###自动向上滑动

# -*- encoding=utf8 -*-
__author__ = "lonng"

from airtest.core.api import *

auto_setup(__file__)


#画面控件
for i in range(103):
    swipe((300,1500),(300,10))
    sleep(1.0)
swipe((300,1500),(300,10))


#popc控件
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)

# poco("小红书").click()
# sleep(3)
# poco("com.xingin.xhs:id/r4").click()
# sleep(2)
list=["资生堂","雅诗兰黛","迪奥"]
for m in range(3):
    poco.swipe([0.5,0.1],[0.5,0.9])
    poco("com.xingin.xhs:id/aeo").click()
    sleep(2)
    poco("com.xingin.xhs:id/ae8").set_text("%s"%(list[m]))
    poco("com.xingin.xhs:id/aea").click()
    sleep(6)
    for i in range(23):
        poco.swipe([0.5,0.9], [0.5,0.1])

抖音ios抓包绕过ssl PINNING 抖音防抓包_控件_04

抖音ios抓包绕过ssl PINNING 抖音防抓包_控件_05