Charles抓包工具

Charles是一个HTTP代理工具,使开发人员能够查看客服端和服务器之间的所有HTTP/ HTTPS/SSL网络请求。 Charles是在PC环境下常用的网络抓包截取工具,在做移动开发时,我们为了调试客户端与服务端的网络通讯协议,常常需要截取网络请求来分析。

Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络抓包的截取和分析。除了在做移动开发中调试接口外,Charles 也可以用于分析第三方应用的通讯协议。配合 CharlesSSL 功能,还可以分析 Https 协议。

下载安装

下载地址:https://www.charlesproxy.com/download/

根据自己的系统版本来选择对应的版本来安装即可,Charles是付费软件,有30天免费试用期限,试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30 分钟,并且启动时将会有10秒种的延时。

Charles主界面

Charles的主菜单包括:File、Edit、View、Proxy、Tools、Window、Help。用的最多的主菜单分别是 ProxyTools

Charles顶部工具导航栏中提供了几种常用工具:

证书安装

PC端安装证书

这里以Win10环境作为演示。打开charles,选择help–>SSL Proxying–> Install Charles Root Ceriticate,点击安装证书,一直点击下一步完成即可成功安装。如下图所示:

  1. 选择安装到本地计算机

  1. 将证书安装在受信任的根证书颁发机构

  1. 最后提示导入成功,可以在证书路径中查看证书安装结果。

手机配置

如果我们需要对手机设备上的App进行抓包,那么需要在手机设备上进行证书和网络配置才能进行抓包。

charles端口配置

Charles的菜单栏上选择Proxy->Proxy Settings,填入代理端口8888(注意,这个端口不一定填写8888,也可以写别的端口,但是需要记住这个端口,最好不要和电脑其他服务端口冲突),并且勾上Enable transparent HTTP proxying 就完成了在Charles上的设置。如下图:

查看电脑IP地址:Help->Local IP Address

手机设备证书安装

为了抓取Https请求,则必须在手机上安装charles证书,证书安装之前请务必将手机设备和电脑连接在一个Wifi网络环境下。

Android

  1. 在设备wifi连接配置好代理电脑ip+8888
  2. 设置好代理之后在手机上任意打开一个App,此时charles会弹出是否允许连接的弹窗,点击Allow

  1. 打开手机浏览器(最好不用设备自带的浏览器,使用Chrome浏览器)输入网址:chls.pro/ssl下载证书直接安装即可。
  2. 部分设备通过浏览器无法安装的则需要导出证书到设备上安装,如OPPO和小米的设备。
OPPO&小米设备安装证书
  1. OPPO设备安装证书方法:help->SSL Proxying->Save charles root certificate,下载一个cer的证书到你的电脑,然后放到手机目录。

  1. 打开手机设置->其他设置->设备与隐私->从储存设备中安装证书->搜索cer->然后点击安装之前放置的证书即可。
  2. 小米设备安装证书方法:help->SSL Proxying->Save charles root certificate,下载一个pem的证书到你的电脑,然后放到手机目录。
  3. 进入小米手机 设置->更多设置(系统和设备)->系统安全->加密与凭据->从SD卡安装 , 手机左上角选择进入系统文件系统选择.pem证书,会提示输入锁屏密码输入锁屏密码安装成功。
  4. 如果设置好代理,在手机上进行任何操作charles没有任何反应,则需要判断PC和手机的网络是否可以ping通,可以在电脑上打开cmd窗口ping手机的ip,如果ping不通则需要设置手机和电脑在一个wifi环境下,如果在一个环境下需要重启charles或者设备使电脑和设备能够ping通。
iOS
  1. 在设备wifi连接配置好代理电脑ip+8888

  1. 手机连接电脑代理,打开浏览器,输入网址:chls.pro/ssl
  2. 手机弹出提示:此网站正尝试打开“设置”已向您显示一个配置描述文件。您要允许吗?忽略|允许,选择允许,安装描述文件,并信任。
  3. iOS10以上的手机需要在:设置→ 通用 → 关于本机 → 证书信任设置→ 找到charles proxy CA证书,打开信任即可。

抓包实践

PC端抓包

1.在菜单依次点击Proxy-> Windows Proxy即可开启对电脑请求进行抓包,如果安装后启动Charles没有看到该菜单,需要重启电脑即可。

  1. 打开浏览器打开百度页面,即可看到抓包请求。

Charles 主要提供两种查看抓包的视图,分别名为 StructureSequence

  • Structure:此视图将网络请求按访问的域名分类。
  • Sequence:此视图将网络请求按访问的时间排序。

使用时可以根据具体的需要在这两种视图之前来回切换。请求多了有些时候会看不过来,Charles 提供了一个简单的Filter功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。

设置抓取https

Charles默认只可以抓取http协议的包,https的更安全,需要抓取https请求则需要配置:菜单栏 Proxy–>SSL Proxying Setting–>选择SSL Proxying——>点击add在弹框中port里填写443(443代表通用https端口号), host中的*代表抓取所有地址的包。

移动端抓包

Proxy

Proxy 菜单包含以下功能:

  • Start/Stop Recording:开始/停止记录会话。
  • Start/Stop Throttling:开始/停止节流。
  • Enable/Disable Breakpoints:开启/关闭断点模式。
  • Recording Settings:记录会话设置。
  • Throttle Settings:节流设置。
  • Breakpoint Settings:断点设置。
  • Reverse Proxies Settings:反向代理设置。
  • Port Forwarding Settings:端口转发。
  • Windows Proxy:记录计算机上的所有请求。
  • Proxy Settings:代理设置。
  • SSL Proxying Settings:SSL 代理设置。
  • Access Control Settings:访问控制设置。
  • External Proxy Settings:外部代理设置。
  • Web Interface Settings:Web 界面设置。

Recording Settings

Recording SettingsStart/Stop Recording 配合使用,在 Start Recording 的状态下,可以通过 Recording Settings 配置 Charles 的会话记录行为。Recording Settings 的视图如下图所示:

Recording SettingsOptions、Include、Exclude 三个选项卡:

  • Options:通过 Recording Size Limits 限制记录数据的大小。当Charles 记录时,请求、响应头和响应体存储在内存中,或写入磁盘上的临时文件。有时,内存中的数据量可能会变得太多,Charles 会通知您并停止录制。在这种情况下,您应该清除 Charles 会话以释放内存,然后再次开始录制。在录制设置中,您可以限制Charles 将记录的最大大小。
  • Include:只有与配置的地址匹配的请求才会被录制。
  • Exclude:只有与配置的地址匹配的请求将不会被录制。

IncludeExclude 选项卡的操作相同,选择 Add,然后填入需要监控的Procotol、HostPort等信息,这样就达到了过滤的目的。如下图所示:

还有一种方法就是在一个请求网址上右击选择 Focus,然后其他的请求就会被放到一个叫 Other Host 的分类里面,这样也达到了过滤的目的。如果选择Ignore那么该请求将会被放在Exclude中,如果希望恢复对该请求的捕捉那么需要从Exclude删除。

Throttle Settings

Throttle SettingsStart/Stop Throttling配合使用,在 Start Throttling 的状态下,可以通过 Throttle Settings 配置 Charles 的网速模拟配置。Throttle Settings 的视图如下图所示:

  • 勾选 Enable Throttling 启用网速模拟配置,在 Throttle Preset 下选择网络类型即可,具体设置可以根据实际情况自行设置。如果只想模拟指定网站的慢速网络,可以再勾选上图中的 Only for selected hosts 项,然后在对话框的下半部分设置中增加指定的 hosts 项即可。
  • 勾选Only for selected hosts 可以针对特定的域名来限制网速,否则是针对所有请求进行限速。

Throttle Settings 视图中的选项含义如下:

  • bandwidth :带宽,即上行、下行数据传输速度
  • utilisation: 带宽可用率,大部分是100%
  • round-trip latency:第一个请求的时延,单位是ms
  • MTU :最大传输单元,即TCP包的最大size,可以更真实模拟TCP层,每次传输的分包情况。
  • Reliability :指连接的可靠性。这里指的是10kb的可靠率。用于模拟网络不稳定。
  • Stability :连接稳定性,也会影响带宽可用性。用于模拟移动网络,移动网络连接一般不可靠。
  • unstable quality range:不稳定质量范围。
Breakpoint Settings

Breakpoint SettingsEnable/Disable Breakpoints配合使用,在 Enable Breakpoints的状态下,可以通过 Breakpoint Settings 配置 Charles 的断点模式。

  • 勾选Enable Breakpoints启用断点模式,选择 Add,然后填入需要监控的Scheme、Procotol、HostPort 等信息,这样就达到了设置断点的目的。然后可以来观察或者修改请求或者返回的内容,但是在这过程中需要注意请求的超时时间问题。
  • 也可以在某个想要设置断点的请求网址上右击选择 Breakpoints 来设置断点。
Windows Proxy

如果想要抓取电脑端的请求,勾选Windows Proxy 选项即可;如果只需要抓取手机请求,则取消勾选这个选项。

Proxy Settings

可以设置HTTPSocket的代理端口号,一般默认8888

Web Interface Settings

Web Interface Settings 表示 Web 界面设置。Charles 有一个 Web 界面,可以让您从浏览器控制 Charles,或使用 Web 界面作为 Web 服务使用外部程序。在External Proxy Settings 视图中勾选Enable the web interface选项启用Web 界面。

可以允许匿名访问,也可以配置用户名和密码。还可以通过在配置使用Charles 作为其代理的 Web浏览器中访问 http://control.charles/ 来访问 Web 界面。

Web界面提供对以下功能的访问:

  • Throttling:激活或停用任何已配置的网络限制设置
  • Recording:开始和停止会话录制
  • Tools:激活和停用工具
  • Session:导出会话
  • Quit:退出charles
Access Control Settings

Access Control Settings 表示访问控制设置。访问控制列表确定谁可以使用此Charles 实例。可以选择Add,然后填入允许访问的 IP,这样就达到了允许某个 IP 访问 Charles 的目的。

External Proxy Settings

External Proxy Settings 表示外部代理设置。可能在网络上有一个代理服务器,必须使用该代理服务器才能访问 Internet。在这种情况下,需要将Charles配置为在尝试访问 Internet 时使用现有代理。

可以配置单独的代理地址和端口:

  • HTTP
  • HTTPS
  • SOCKS
Reverse Proxies Settings

正向代理

正向代理类似一个跳板机,比如在外网访问公司内网资源,直接访问访问不到,我们可以在公司内部搭建正向代理服务器,将请求发到代理服务器,代理服务器能够访问内网,这样由代理服务器去取到内网数据,再返回给我们,这样我们就能访问内网资源了。

反向代理

反向代理(Reverse Proxy)隐藏了真实的服务端,当我们请求百度域名(www.baidu.com)时,就像拨打10086一样,背后可能有成千上万台服务器为我们服务,但具体是哪一台,你不知道,也不需要知道,你只需要知道反向代理服务器是谁就好了。www.baidu.com就是我们的反向代理服务器,反向代理服务器会帮我们把请求转发到真实的服务器那里去。Nginx就是性能非常好的反向代理服务器,用来做负载均衡。

总结

  • 正向代理即是客户端代理,代理客户端,服务端不知道实际发起请求的客户端.
  • 反向代理即是服务端代理, 代理服务端,客户端不知道实际提供服务的服务端

charles反向代理在本地端口上创建 Web 服务器,该端口透明地将请求代理给远程 Web 服务器。反向代理上的所有请求和响应都可以记录在 Charles 中。

Port Forwarding Settings

可以将任何 TCP/IPUDP端口配置为使用 Port Forwarding工具从Charles 转发到远程主机。这样可以调试Charles中的任何协议。

Tools菜单

Tools 菜单包含以下功能:

  • No Caching Settings:禁用缓存设置。
  • Block Cookies Settings:禁用 Cookie设置。
  • Map Remote Settings:远程映射设置。
  • Map Local Settings:本地映射设置。
  • Rewrite Settings:重写设置。
  • Black List Settings:黑名单设置。
  • White List Settings:白名单设置。
  • DNS Spoofing Settings:DNS 欺骗设置。
  • Mirror Settings:镜像设置。
  • Auto Save Settings:自动保存设置。
  • Client Process Settings:客户端进程设置。
  • Compose:编辑修改。
  • Repeat:重复请求。
  • Repeat Advanced:高级重复请求。
  • Validate:验证。
  • Publish Gist:发布要点。
  • Import/Export Settings:导入/导出设置。
  • Profiles:配置文件。
  • Publish Gist Settings:发布代码段设置。
No Caching Settings

No Caching Settings 工具可防止客户端应用程序(如 Web 浏览器)缓存任何资源。因此,始终向远程网站发出请求,您始终可以看到最新版本。

该工具可以作用于每个请求(选中 Enable No Caching 即可),也可以仅对配置的请求启用(启用No Caching 的同时,请选中 Only for selected locations)。

Block Cookies Settings

Block Cookies工具阻止了 Cookie的发送和接收。它可用于测试网站,就像在浏览器中禁用了 Cookie一样。

该工具可以作用于每个请求(选中 Enable Block Cookies 即可),也可以仅对你配置的请求启用(启用 Block Cookies 的同时,请选中 Only for selected locations)。

Map Remote Settings

Map Remote 工具根据配置的映射更改请求站点,类似于重定向操作。例如:将访问百度的请求映射到请求搜狗。

另外,点击Import或者Export可以将配置导出或者导入。

Map Local Settings

Map Local 可以将请求响应数据替换为本地数据,例如:我们可以修改豆瓣读书页面内容。

  1. 首先打开豆瓣读书(book.douban.com)页面,然后将请求返回的html页面保存。

  1. 我们将保存的html页面内容进行修改,比如将“购书单”菜单改为“购书单2020”.

代码语言:javascript

复制

<div class="nav-items">
  <ul>
    <li    ><a href="https://book.douban.com/cart/"
     >购书单2020</a>
    </li>
    <li    ><a href="https://read.douban.com/ebooks/?dcs=book-nav&dcm=douban"
            target="_blank"
     >电子图书</a>
    </li>
    <li    ><a href="https://market.douban.com/book?utm_campaign=book_nav_freyr&utm_source=douban&utm_medium=pc_web"
     >豆瓣书店</a>
    </li>
  </ul>

  1. 选择请求然后鼠标右击,在菜单中选择Map Local,映射到修改之后的文件。

  1. 再次重新请求,我们可以看到响应的结果就是我们本地修改之后的内容。

Rewrite Settings

Rewrite Settings 可以重写接口所有元素的内容,主要可以对某些匹配请求的header、host、url、path、query param、response status、body进行rewrite

例如我们想修改豆瓣电影 我在时间尽头等你 页面显示内容,将电影名称改为 权利的游戏 。步骤如下:

  1. 在Charles中点击菜单栏Tools——>Rewrite, 打开rewrite设置页面。

  1. 点击Enable Rewrite,点击左侧的Add

  1. 设置匹配接口

  1. 设置Rewrite类型,规则:可以看到,在Rewrite界面上可以选择很多的Type,还能用正则表达式,是一个非常强大的功能。我们这里选择Body类型,将其内容进行替换。替换位置选择Response

  1. 重新请求可以看到修改之后的页面。

Black List Settings

Black List Settings域名请求黑名单。当被列入黑名单的域名请求任何页面时,该请求将被 Charles阻止。您还可以输入通配符来阻止其子域名,一般用来模拟一些接口请求异常的场景。

White List Settings

White List Settings 域名请求白名单,白名单工具用于仅允许指定的域名请求,如果一个请求与“黑名单”和“白名单”都匹配,则该请求会被阻止。

Repeat(重复)

Repeat 工具允许选择一个请求并重复请求它。Charles 将请求重新发送到服务器,并将响应显示为新请求。重复请求是在 Charles 内部完成的,因此无法在浏览器或其他客户端中查看响应,响应只能在 Charles 中查看。

Repeat Advanced(高级重复)

Repeat Advanced 工具扩展了Repeat 工具,提供了迭代次数和并发数的选项。这对于负载测试非常有用。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。

原始发表:2021-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

网络安全

网站

http

安全

https

本文分享自 QA一隅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

网络安全

网站

http

安全

https

评论

登录后参与评论

0 条评论

热度

最新

登录 后参与评论

推荐阅读

LV.

关注

[

文章

0

](https://cloud.tencent.com/developer/user/undefined/articles)[

获赞

0

](https://cloud.tencent.com/developer/user/undefined)

目录

  • 下载安装

  • Charles主界面

  • 证书安装

    • PC端安装证书

    • 手机配置

      • charles端口配置
      • 手机设备证书安装
  • 抓包实践

    • PC端抓包

    • 设置抓取https

    • 移动端抓包

  • Proxy

    • Recording Settings

    • Throttle Settings

    • Breakpoint Settings

    • Windows Proxy

    • Proxy Settings

    • Web Interface Settings

    • Access Control Settings

    • External Proxy Settings

    • Reverse Proxies Settings

    • Port Forwarding Settings

  • Tools菜单

    • No Caching Settings

    • Block Cookies Settings

    • Map Remote Settings

    • Map Local Settings

    • Rewrite Settings

    • Black List Settings

    • White List Settings

    • Repeat(重复)

    • Repeat Advanced(高级重复)

学习计划安排

在这里插入图片描述
我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~

这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,需要的小伙伴可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/603175.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MCP3008-I/SL 模数转换器ADC SPI接口 模拟信号采集

MCP3008-I/SL 模数转换器ADC 贴片SOIC16 MCP3008-I/SL 是一款模数转换器&#xff08;ADC&#xff09;&#xff0c;属于 SAR&#xff08;逐次逼近寄存器&#xff09;架构的 ADC。它具有以下特点&#xff1a; 8 通道单 ADC 最大采样率&#xff1a;200ksps&#xff08;千样点每秒…

鸿蒙内核源码分析(编译环境篇) | 编译鸿蒙防掉坑指南

几点说明 kernel_liteos_a_note | 中文注解鸿蒙内核 是在 OpenHarmony 的 kernel_liteos_a 基础上给内核源码加上中文注解的版本.与官方源码按月保持同步,同步历史如下: 2021/10/09 – 增加性能优化模块perf,优化了文件映射模块2021/09/14 – common,extended等几个目录结构和M…

文献速递:深度学习医学影像心脏疾病检测与诊断--基于深度学习的低剂量SPECT心肌灌注图像去噪:定量评估与临床表现

Title 题目 Deep learning–based denoising of low‑dose SPECT myocardialperfusion images: quantitative assessment and clinical performance 基于深度学习的低剂量SPECT心肌灌注图像去噪&#xff1a;定量评估与临床表现 01 文献速递介绍 单光子发射计算机断层扫描&a…

uniapp + vue3 设置 axios proxy 代理,并重写路径

uniapp vue2 设置代理如下&#xff1a; 已生成的项目架构里面找到manifest.json文件&#xff0c;通过源码视图的方式打开文件&#xff0c;在文件中添加一下代码即可完成代理&#xff1a; "h5": {"devServer": {"disableHostCheck": true, //禁…

基于StatefulSet控制器在Kubernetes上部署MySQL一主多从

一、前提--StatefuSet特性 1.1 有状态的节点控制器 -- StatefulSet 及其网络状态 容器的解决方案是针对无状态应用场景的最佳实践&#xff0c;但对于有状态应用来说&#xff0c;就并非如此了。Kubernetes 用 StatefulSet 解决了有状态应用编排的问题&#xff0c;本文我们就来…

GitHub介绍,GitHub如何订阅充值?

一、GitHub介绍 GitHub是一个面向开源及私有软件项目的托管平台&#xff0c;因为只支持git 作为唯一的版本库格式进行托管&#xff0c;故名Github。 GitHub于2008年4月10日正式上线&#xff0c;除了git代码仓库托管及基本的Web管理界面以外&#xff0c;还提供了订阅、讨论组、…

爬取深圳2024年链家二手房数据,共3000条数据(其他城市也可)

文章目录 专栏导读1.目标2.导入相关库3.获取每个二手房的链接4.获取每个链接中的相关数据5.保存数据6.数据展示 专栏导读 ✍ 作者简介&#xff1a;i阿极&#xff0c;CSDN 数据分析领域优质创作者&#xff0c;专注于分享python数据分析领域知识。 ✍ 本文录入于《python网络爬虫…

探索数据结构

什么是数据结构 数据结构是由&#xff1a;“数据”与“结构”两部分组成 数据与结构 数据&#xff1a;如我们所看见的广告、图片、视频等&#xff0c;常见的数值&#xff0c;教务系统里的&#xff08;姓名、性别、学号、学历等等&#xff09;&#xff1b; 结构&#xff1a;当…

Pandas进阶

文章目录 第1关&#xff1a;Pandas 分组聚合第2关&#xff1a;Pandas 创建透视表和交叉表 第1关&#xff1a;Pandas 分组聚合 编程要求 使用 Pandas 中的 read_csv() 函数读取 step1/drinks.csv 中的数据&#xff0c;数据的列名如下表所示&#xff0c;请根据 continent 分组并…

VMware 虚拟机自定义规范 - 更优雅的虚拟机开局

介绍 虚拟机自定义规范可以在你克隆虚拟机的时候在vCenter 的Web界面设定虚拟机的主机名、单/多网卡IP的IP和网关、DNS服务器、唯一标识符重置&#xff08;SID等&#xff09;、硬盘分区自动扩容、设定密码、密钥、时区等信息。 让管理员不需要进入虚拟机系统内部进行配置&…

10000字讲解IoC 思想以及五大注解

文章目录 IoC 思想通过案例讲解 IoC1.传统的开发方式 SpringIoC 和 DI五大注解ControllerServiceComponentRepositoryConfiguration 为什么要有这么多的类注解类注解之间的关系方法注解 Bean重命名 bean扫描路径 IoC 思想 什么是 Spring 呢&#xff1f; 我们经常听到的都是说…

Android 13 aosp 默认关闭SELinux

通过adb修改 adb root adb shell setenforce 0 // 开SELinux&#xff0c;设置成模式permissive adb shell setenforce 1 // 关SELinux&#xff0c;设置成模式enforce adb shell getenforce // 获取当前SELinux状态源码修改 Android_source/system/core/init/selinu…

JS-导入导出

export和export default是ES6中导出模块中变量的语法 导入导出变量 //导出方法&#xff08;js文件中&#xff09; export const 变量名值//导入方法 对应导入的变量&#xff0c;一定要加花括号 import {变量名} from js文件路径 导入导出函数 //导出方法&#xff08;js文件中…

2024.1IDEA 到2026年

链接&#xff1a;https://pan.baidu.com/s/1hjJEV5A5k1Z9JbPyBXywSw?pwd9g4i 提取码&#xff1a;9g4i解压之后,按照 操作说明.txt 操作; IntelliJ IDEA 2024.1 (Ultimate Edition) Build #IU-241.14494.240, built on March 28, 2024 Licensed to gurgles tumbles You have…

福汇美股开户教程

福汇作为全球知名的外汇交易平台&#xff0c;也提供美股交易服务。在福汇交易美股&#xff0c;首先需要开立一个福汇账户。本教程将详细介绍福汇美股开户流程。 第一步&#xff1a;访问福汇官网并填写开户表格 访问福汇美股入口点击页面顶部的“开户”按钮。选择您的国籍&…

JetsonNano —— Windows下对Nano板卡烧录刷机(官方教程)

介绍 NVIDIA Jetson Nano™ 开发者套件是一款面向创客、学习者和开发人员的小型 AI 计算机。按照这个简短的指南&#xff0c;你就可以开始构建实用的 AI 应用程序、酷炫的 AI 机器人等了。 烧录刷机 1、下载 Jetson Nano开发者套件SD卡映像&#xff0c;并记下它在计算机上的保存…

初探MFC程序混合使用QT

一、背景 随着操作系统国产化替代的趋势越发明显&#xff0c;软件支持国际化、跨平台&#xff0c;已然是必须做的一件事情。原有的软件UI层用的是MFC&#xff0c;将其换成QT&#xff0c;想必是一种较好的方案。对于大型软件&#xff0c;特别是已发布&#xff0c;但还处于不断迭…

vue 开发环境的搭建

一、整个流程&#xff1a; 安装nodejs >> 安装vue >> 安装vue-cli >> 初始化 webpack(生成代码) >> 安装依赖 >> 运行vue程序 二、详细安装流程&#xff1a; 1.安装nodejs 下载&#xff1a;https://nodejs.org/dist/v12.18.3/node-v12.18.3-x…

《米小圈上学记》|快乐读书,从身边的人身边的事开始!

时间&#xff0c;抓住了就是黄金&#xff0c;虚度了就是流水;书&#xff0c;看了就是学问&#xff0c;没看就是废纸:抱负&#xff0c;努力了才叫幻想&#xff0c;放弃了那只是妄想。读书&#xff0c;不一定能转变命运&#xff0c;但肯定能让我们安静&#xff0c;安静本身就是一…

【触摸案例-手势解锁案例-连线到按钮 Objective-C语言】

一、接下来,我们接着来说这个,连线的问题啊, 1.连线的问题啊,也就是说,我现在点击一个按钮, 在移动到下一个按钮的时候,在两个按钮中间,在两个按钮都亮起来的时候呢,我们肯定是让它去画一条线的,那么, 1)首先,如果我现在从第一个按钮,连到第二个按钮,那么,这条…