【抓包工具】win 10 / win 11:Charles 下载、安装、配置(快捷方式、默认端口、登录、https 证书)

目录

一、Charles 和 Fidder 对比

二、Charles 官方下载最新版

三、Charles 安装

四、Charles 配置

(1)桌面快捷方式

(2)修改 Charles 的默认端口

① 端口占用报错 

② cmd 命令查看全部端口 

③ cmd 命令查看指定端口占用

④ 查询 PID 对应的进行进程

⑤ 测试未占用端口

⑥ Charles 修改端口为 “8889”

(2)Register Charles

(3)配置 Charles https 证书



一、Charles 和 Fidder 对比

推荐使用 Charles:

【Charles / Fidder】接口抓包、接口调试、弱网测试功能:都一样

【Charles / Fidder】Web:http、https 均支持抓包

【Charles / Fidder】页面排版:Charles 比 Fidder 排版更佳

【Charles】任意平板、手机均能抓包:iOS、Android(任意版本)、鸿蒙(任意版本)

【Fidder】部分平板、手机不能抓包,会出现部分抓包失败的情况,仅支持抓包:iOS、Android(6.0 以下版本)、鸿蒙(1.0 以下版本)



二、Charles 官方下载最新版

Download a Free Trial of Charles • Charles Web Debugging ProxyCharles Web Debugging Proxy - Official Sitehttps://www.charlesproxy.com/download/Charles 安装工具https://www.zzzmode.com/mytools/charles/根据安装工具提示选择对应操作系统的最新版下载即可!



三、Charles 安装

运行安装程序:charles-proxy-4.6.3-win64.msi



四、Charles 配置

(1)桌面快捷方式

  1. 打开安装目录,右键选中文件,发送桌面快捷方式:Charles.exe
  2. 重命名快捷方式名称:Charles


(2)修改 Charles 的默认端口

① 端口占用报错 

我的默认端口 “8888” 开放给 jdk 使用了,占用了 Charles 的默认端口,因此需要修改 Charles 的默认端口


② cmd 命令查看全部端口 

windows 查看端口的方法:

  1. 使用 “win+R” 键打开 “运行” 窗口,输入 “cmd” 命令回车,进入命令行窗口
  2. 在 cmd 窗口中输入以下命令回车,即可显示所有的端口占用情况:
netstat -ano

以下就是所有已被占用的端口,端口号就是本地地址冒号后面的数字,而最后一列数字就是 PID ,也就是进程号 


③ cmd 命令查看指定端口占用

输入 Charles 提示的端口 “8888”,继续输入以下命令:

netstat -aon|findstr "8888"


④ 查询 PID 对应的进行进程

可以直接使用命令查看具体占用此端口的程序,比如在上面步骤之后,我们得到的 PID 为6984,那么我们就可以输入命令:

tasklist|findstr "6984"

注意:如果这里希望 Charles 继续使用 “8888” 端口,则可继续操作释放其他程序占用此端口,比如我释放之后,jdk 就无法用此端口了,我不操作此步骤,因为我要改的是 Charles ,因此无需解除其他程序对端口占用

解除端口占用方法:根据截图返回列表中的 PID 在电脑的任务管理器中查看对应的占用程序,接着使用以下命令关闭端口占用的进程:

taskkill /f /t /im 程序名

示例命令:

taskkill /f /t /im java.exe


⑤ 测试未占用端口

 输入想要修改给 Charles 的端口 “8889”,继续输入以下命令:

netstat -aon|findstr "8889"


⑥ Charles 修改端口为 “8889”

【报错译文】

Failed to bind proxy port 8888: Address already in use:

  • NET_Bind 绑定代理端口 8888 失败:已在使用的地址:NET_BIND

Please check if Charles is already running or if another application is usingthe port.

  • 请检查 Charles 是否已经在运行,或者其他应用程序是否正在使用该端口。

Alternatively you can change the port in the Proxy Settings.

  • 或者,您可以在代理设置中更改端口。

【修改端口为 “8889”】

  1. 在 Charles 中点击 “Proxy” -> ”Proxy Settings",打开代理设置。
  2. 在 "Proxy Settings" 面板中选择 “Proxies” ,选中默认端口并更改为所需端口。
  3. 单击 “OK” 保存更改。

 


(2)Register Charles

打开 Charles ,[Help - Register Charles] 黏贴输入安装工具生成的字段:

  • Registered Name:    GuSanShang
  • License Key:    f2895bf353092f620c


(3)配置 Charles https 证书

华为手机:

【抓包工具】配置:绕过华为手机打开 USB 调试需要先登录华为账号问题https://gusanshang.blog.csdn.net/article/details/121267126【抓包工具】配置:Charles 配置华为手机 HTTPS CA 证书https://gusanshang.blog.csdn.net/article/details/121330781其他手机/平板:

【抓包工具】配置:Charles 配置手机/平板抓包 httpshttps://gusanshang.blog.csdn.net/article/details/121033268

以下是一个基于栈的出栈序列检查的C语言代码: ```c #include <stdio.h> #include <stdlib.h> #define MAX_STACK_SIZE 100 int stack[MAX_STACK_SIZE]; int top = -1; void push(int val) { if (top == MAX_STACK_SIZE - 1) { printf("Stack overflow\n"); exit(1); } stack[++top] = val; } int pop() { if (top == -1) { printf("Stack underflow\n"); exit(1); } return stack[top--]; } int main() { int n, i, j; int push_seq[MAX_STACK_SIZE], pop_seq[MAX_STACK_SIZE]; printf("Enter the size of the sequence: "); scanf("%d", &n); printf("Enter the push sequence: "); for (i = 0; i < n; i++) { scanf("%d", &push_seq[i]); } printf("Enter the pop sequence: "); for (i = 0; i < n; i++) { scanf("%d", &pop_seq[i]); } i = 0; j = 0; while (i < n && j < n) { if (push_seq[i] == pop_seq[j]) { i++; j++; } else if (top != -1 && stack[top] == pop_seq[j]) { pop(); j++; } else { push(push_seq[i++]); } } while (top != -1 && j < n) { if (stack[top] == pop_seq[j]) { pop(); j++; } else { break; } } if (top == -1 && j == n) { printf("The pop sequence is valid.\n"); } else { printf("The pop sequence is not valid.\n"); } return 0; } ``` 该程序要求用户输入一个序列的大小,一个压栈序列和一个出栈序列。然后,程序使用一个基于栈的算法来检查出栈序列的合法性。如果出栈序列是合法的,程序将输出“ The pop sequence is valid.”,否则输出“The pop sequence is not valid.”。 该算法的基本思想是模拟压栈和出栈过程。我们从压栈序列的开头开始遍历,遇到一个和出栈序列的当前元素相等的元素时,我们将它出栈。否则,我们将该元素压入栈中。如果栈顶元素和出栈序列的当前元素相等,则将栈顶元素出栈。 在遍历完压栈序列后,我们检查栈中剩余的元素是否可以与出栈序列中的元素匹配。如果可以,则弹出栈顶元素并移动到下一个出栈元素。如果不能匹配,则出栈序列无效。 此算法的时间复杂度为O(n),其中n为序列的大小。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顾三殇

觉得不错的话,打赏鼓励一下吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值