Charles微信小程序抓包教程

一、 导入Charles证书

在使用Charles之前,需要将Charles的证书导入到手机中,才能够监控HTTPS请求,否则只能够监控HTTP请求。

导入证书的方法如下:

1、在电脑上安装Charles

2、打开Charles,选择Help -> SSL Proxying -> Install Charles Root Certificate

3、按照提示,将Charles证书导入到系统中

4、将手机连上电脑,打开Charles的Proxy -> Proxy Settings,并且开启SSL Proxying

5、在手机上打开http://charlesproxy.com/getssl,下载Charles的证书

6、打开设置 -> 通用 -> 描述文件,找到Charles证书,并且点击安装

7、在手机的WLAN设置中,将HTTP代理设置成手动,并且填入电脑的IP地址和端口号(默认为8888)

8、打开微信小程序,在Charles上可以看到抓包结果

二、 抓包技术介绍

Charles可以通过两种方法来监控网络请求,分别是:

1、代理网络请求,将所有的请求都转发到Charles上,再将请求转发给服务器

<script type="text/javascript">
  wx.request({
    url: 'https://example.com/api',
    success: function(res) {
      console.log(res)
    },
    fail: function() {
      console.log('fail')
    }
  })
</script>

2、安装证书,监控HTTPS请求,然后解密HTTPS请求,得到明文的请求和响应

<script type="text/javascript">
  wx.request({
    url: 'https://example.com/api',
    success: function(res) {
      console.log(res)
    },
    fail: function() {
      console.log('fail')
    },
    complete: function(res) {
      console.log(res)
    }
  })
</script>

三、 抓包实战

1、抓取小程序访问API的请求

首先打开一个微信小程序,然后在Charles的Proxy -> SSL Proxying Settings 中加入一个规则,如下图所示:

在小程序中的请求将自动被捕获,然后可以对请求进行拦截、修改、添加headers等等操作:

// 拦截请求
if (request.url.match(/api/)) {
  request.responseStatusCode = 403;
  request.responseText = 'Access Denied';
}

// 修改headers
if (request.url.match(/api/)) {
  for (var header in request.requestHeaders) {
    if (header.toLowerCase() == 'authorization') {
      request.requestHeaders[header] = 'Bearer newtoken';
    }
  }
}

// 添加headers
if (request.url.match(/api/)) {
  request.requestHeaders['X-Custom-Header'] = 'Custom Value';
}

2、修改小程序中的请求

有时候我们需要修改小程序中的请求,比如将请求方法从GET改为POST,更改URL中的参数等等。这时可以使用Map Local功能,将请求映射到一个本地的文件中,然后对文件进行修改。具体的步骤如下:

1)在Charles上,选择 Tools -> Map Local

2)点击Add按钮, 添加一条Rule,如下图所示:

3)点击Edit按钮,修改对应的文件,保存修改

4)在小程序中对应的请求就会被重定向到本地文件中的内容

四、 总结

本文介绍了Charles微信小程序抓包的方法,包括证书的导入、抓包技术介绍、抓包实战、修改小程序中的请求等方面。了解了这些内容之后,你会更加熟练地使用Charles来抓包,更快地找到问题并且解决问题。

原创文章,作者:WDDWS,如若转载,请注明出处:https://www.506064.com/n/330772.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
WDDWSWDDWS
上一篇 2025-01-16 15:46
下一篇 2025-01-16 15:46

相关推荐

  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • MQTT使用教程

    MQTT是一种轻量级的消息传输协议,适用于物联网领域中的设备与云端、设备与设备之间的数据传输。本文将介绍使用MQTT实现设备与云端数据传输的方法和注意事项。 一、准备工作 在使用M…

    编程 2025-04-29
  • Python3.6.5下载安装教程

    Python是一种面向对象、解释型计算机程序语言。它是一门动态语言,因为它不会对程序员提前声明变量类型,而是在变量第一次赋值时自动识别该变量的类型。 Python3.6.5是Pyt…

    编程 2025-04-29
  • Deepin系统分区设置教程

    本教程将会详细介绍Deepin系统如何进行分区设置,分享多种方式让您了解如何规划您的硬盘。 一、分区的基本知识 在进行Deepin系统分区设置之前,我们需要了解一些基本分区概念。 …

    编程 2025-04-29
  • Python程序文件的拓展

    Python是一门功能丰富、易于学习、可读性高的编程语言。Python程序文件通常以.py为文件拓展名,被广泛应用于各种领域,包括Web开发、机器学习、科学计算等。为了更好地发挥P…

    编程 2025-04-29
  • 写代码新手教程

    本文将从语言选择、学习方法、编码规范以及常见问题解答等多个方面,为编程新手提供实用、简明的教程。 一、语言选择 作为编程新手,选择一门编程语言是很关键的一步。以下是几个有代表性的编…

    编程 2025-04-29
  • Python购物车程序

    Python购物车程序是一款基于Python编程语言开发的程序,可以实现购物车的相关功能,包括商品的添加、购买、删除、统计等。 一、添加商品 添加商品是购物车程序的基础功能之一,用…

    编程 2025-04-29
  • 爬虫是一种程序

    爬虫是一种程序,用于自动获取互联网上的信息。本文将从如下多个方面对爬虫的意义、运行方式、应用场景和技术要点等进行详细的阐述。 一、爬虫的意义 1、获取信息:爬虫可以自动获取互联网上…

    编程 2025-04-29
  • Qt雷达探测教程

    本文主要介绍如何使用Qt开发雷达探测程序,并展示一个简单的雷达探测示例。 一、环境准备 在开始本教程之前,需要确保你的开发环境已经安装Qt和Qt Creator。如果没有安装,可以…

    编程 2025-04-29

发表回复

登录后才能评论