当前位置: 首页 > news >正文

模糊测试究竟在干什么

目录

1.软件漏洞和缺陷

2.模糊测试与传统测试

3.汽车领域中的模糊测试

 4.常见工具总结


1.软件漏洞和缺陷

提单、上票、拒收,这是开发和测试的日常博弈。大多数时候,我们是根据自己对需求的理解来进行开发和测试,这基本是属于功能层级。

这种方式验证出来的问题叫软件缺陷,通俗叫Bug,一般是在开发时由于编码错误、逻辑错误或者需求理解错误造成程序无法正常运行或者用户体验受损。

但还有一种缺陷,叫做软件漏洞,它可以被攻击者加以利用,破坏系统安全策略、窃取数据或执行恶意操作,这一般是开发者不曾考虑的范畴,通常是由安全团队介入,进行信息安全相关的测试,例如渗透测试、漏洞扫描、以及今天要聊的模糊测试。

换句话讲,漏洞是缺陷的子集,但并非所有缺陷都是漏洞,只有那些可能被恶意利用的缺陷才会被归类为漏洞。

我们都知道,软件不可能没有缺陷或者漏洞,这可能也就意味着即使安全团队挖掘并修复了很多漏洞,但仍旧存在很多未知的漏洞,有一张图很形象,我们看得到的漏洞可能就是冰山一角:

 除了已知漏洞和未知漏洞之外,还存在一类漏洞,叫零日漏洞,它通常指还没有补丁的安全漏洞。“零日”(0-day)来源于漏洞被公开后,补丁未出现的天数。

漏洞被公开当天,很难及时推出补丁,所以称为零日漏洞;如果N日后仍然没有补丁,则称为N日漏洞。所以,我们常听到的“零日攻击”就可以理解为针对此漏洞的攻击出现在漏洞公开当天,以此类推。当然,这不是今天的主题,仅作延伸。

2.模糊测试与传统测试

我们最常接触的测试手段主要就包括静态测试和动态测试,而动态测试主要分为白盒、灰盒和黑盒。白盒测试,顾名思义我们了解待测对象的内部结构,以此为基础进行测试;黑盒测试,就是只能通过给定输入,来观察输出是否符合预期;灰盒测试则介于白盒和黑盒之间,不仅关注输入输出,还关注目标内部状态。

很明显,这类测试手段依赖测试人员的专业素质、预定义模式,针对公开漏洞的测试有一定优势,但很难挖掘出未公开的攻击方法和漏洞。

为此,模糊测试站了出来。

模糊测试(Fuzz Test)通过大量生产随机或者变异的输入数据,有一定几率能够模拟攻击者行为,从而触发软件系统中隐藏的漏洞或者缺陷。

为啥叫模糊了,大概是因为其模糊的特征的。

模糊测试最初被称为"猴子测试",灵感来源于猴子随机敲击键盘的行为(1983年Steve Capps开发的Mac测试工具),这种测试方法就像"蒙眼投飞镖"——不依赖测试人员对程序逻辑的深入理解,而是通过随机生成输入数据触发异常,输入路径不可预测、输入数据无规律;

此外,模糊测试的模糊还体现在测试数据的生成逻辑,主要有三种:

  • 结构模糊:变异型模糊测试(Mutation-based)会破坏正常数据的格式,例如将PDF文件格式.PDF改为.PDQ
  • ​语义模糊:生成型模糊测试(Generation-based)虽遵循协议规范,但会故意违反字段约束,例如在HTTP请求中插入未定义的协议版本号
  • ​边界模糊:针对数值型字段注入极端值(如超长字符串、负数、浮点溢出值),打破程序预设的输入假设

 在实际的模糊测试里,大致可分为四个步骤:

(1)识别待测对象和输入:主要包括识别被测对象类型,是Bin还是源码,是否有公开漏洞记录,在此基础上识别是由可能的输入向量,有助于提高测试覆盖;

(2)基于规则生成模数测试数据,包括现有数据变异、临时数据生成、边界值生成等等;

(3)执行测试:通过自动化工 具,大规模地生成和执行测试用例,从而提高测试效率和覆盖率;

(4)观察行为、记录漏洞:在模糊测试过程中,通过自动化工具来实时观察系统行为的异常,包括参数值和返回值收集等等;如果发现了潜在缺陷,首先是多次复现,其次是评估该缺陷是否能进一步升级为漏洞,判断会被恶意利用,最后记录和修复。

3.汽车领域中的模糊测试

汽车网络安全已被提到了一个高度,因此网络安全测试是汽车整车开发中必不可少的部分。

在ISO21434中明确提高,除了常见的功能测试,还需要漏洞扫描、模糊测试和渗透测试,在开发早期尽可能识别潜在漏洞,从而提升汽车的鲁棒性。

由于汽车本身是一个多学科融合的复杂工作,其攻击面涵盖了几乎我们能想到的产品,安全团队的测试人员完全可以利用模糊测试对WIFI、蓝牙、CAN、V2X、充电桩、NFC等进行协议模糊测试,除此之外,在智驾领域,任何漏洞或者缺陷都可能造成严重后果,因此针对雷达、摄像头等输入数据进行模糊测试,也是非常有必要的。

 4.常见工具总结

最后,先汇总一下常见的模糊测试工具。

工具类型工具名称核心功能与特点典型应用场景
覆盖率引导型AFL/AFL++基于遗传算法优化测试路径,插桩获取覆盖率反馈,擅长发现内存损坏错误C/C++程序、网络协议
LibFuzzer集成于LLVM编译链,直接测试库函数,无需进程间通信开源库(如OpenSSL加密模块)
协议与文件测试Peach Fuzzer通过XML定义数据模型生成结构化输入,支持复杂协议和文件格式(如PDF、JPEG)工控Modbus、车载CAN总线
BoofuzzPython编写的网络协议框架,继承自Sulley,支持自定义协议规范TCP/UDP协议测试
Radamsa通用变异型模糊测试,生成随机异常输入(文本/二进制)复杂输入处理程序
智能生成型Fuzzilli生成语法合法的JavaScript代码,针对JS引擎(如Chrome V8)JavaScript引擎漏洞挖掘
LLM-Fuzzer利用大语言模型(如GPT-4)生成符合语义的测试用例(如SQL注入)Web应用逻辑漏洞
操作系统内核测试syzkaller随机化系统调用序列测试内核,支持Linux/Android内核驱动、系统调用漏洞
kAFL基于AFL改进,结合虚拟化技术隔离测试环境Linux内核模块
Web服务测试Burp Suite支持自定义攻击向量(XSS、SQL注入),参数化模糊测试Web应用安全审计
WFuzz针对URL、表单、头部多维度注入异常数据HTTP接口测试
云端与分布式OSS-FuzzGoogle提供的持续测试服务,集成AFL/LibFuzzer,覆盖开源项目(如Linux内核、OpenSSL)大规模开源项目漏洞挖掘

相关文章:

模糊测试究竟在干什么

目录 1.软件漏洞和缺陷 2.模糊测试与传统测试 3.汽车领域中的模糊测试 4.常见工具总结 1.软件漏洞和缺陷 提单、上票、拒收,这是开发和测试的日常博弈。大多数时候,我们是根据自己对需求的理解来进行开发和测试,这基本是属于功能层级。 …...

【RTD200P04 MCAL 篇3】 S32M244 PWM PDB ADC控制

【RTD200P04 MCAL 篇3】 S32M244 PWM PDB ADC控制 一,文档简介二,PWMTRGMUXPDBADC 2ch 软件配置与实现2.1 软硬件版本平台2.2 MCAL工程以及模块配置2.2.1 Dio 模块配置2.2.2 Adc模块配置2.2.3 Mcu模块配置2.2.4 Platform模块配置2.2.5 Port模块配置2.2.6…...

03--Deepseek服务器部署与cjson解析

一、ollama部署deepseek模型 1、Ollama 是一个开源的本地大语言模型运行框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计。 Ollama 教程:从 0 到 1 全面指南 教程【全文两万字保姆级详细讲解】 -CSDN博客 1.下载o…...

实现抗隐私泄漏的AI人工智能推理

目录 什么是私人AI? 什么是可信执行环境? TEE 如何在 AI 推理期间保护数据? 使用 TEE 是否存在风险? 有哪些风险? Atoma 如何应对这些风险 为什么去中心化网络是解决方案 人工智能推理过程中还有其他保护隐私的方法吗? 私人人工智能可以实现什么? 隐私驱动的应…...

Kotlin 学习--数组

一、关于数组的基础知识和常用方式 /*** kotlin 数组* 使用arrayOf创建数组,必须指定数组的元素,可以是任意类型* */val arrayNumber arrayOf(1, 2, 3, 4)/*** 集合中的元素可以是任意类型* kotlin 中的Any 等价于 java 中的Object 对象的意思* */val a…...

Spring Boot 启动后自动执行 Service 方法终极指南

**导语​​:**在 Spring Boot 开发中,我们经常需要在应用启动后立即执行初始化任务(如加载配置、预热缓存、启动定时任务)。本文将深度解析 ​​5 种主流实现方案​​,包含完整代码示例、执行顺序控制技巧和避坑指南&a…...

STM32 HAL库之GPIO示例代码

LED灯不断闪烁 GPIO初始化,main文件中的 MX_GPIO_Init(); 也就是在 gpio.c文件中 void MX_GPIO_Init(void) {GPIO_InitTypeDef GPIO_InitStruct {0};/* GPIO Ports Clock Enable */__HAL_RCC_GPIOE_CLK_ENABLE();__HAL_RCC_GPIOC_CLK_ENABLE();__HAL_RCC_GPIOA_C…...

中间件-消息队列

SpringAMQP 任何语言只要遵循AMAP协议,都可以与RabbitMQ交互 生产者、队列、交换机、消费者 生产者Publisher:生产消息,发给交换机 交换机Exchange:接收生产者发送的消息。知道如何处理消息,例如递交给某个特别队列、…...

go游戏后端开发32:自摸杠处理逻辑

当我们在自摸杠时,实际上在杠完之后,我们还需要进行一个删除操作。因此,我们需要在上面拷贝一个删除操作。由于这是自摸杠,所以这个地方需要删除四次。在这里,我们需要注意的是,自摸杠时,传过来…...

AI创业风向标:构建下一代「AI叙事创作平台」

随着技术的进步和市场需求的爆发,AI故事叙述平台正成为投资者和创业者关注的焦点。本文将探讨为何这一赛道值得关注,并提供一些关于如何构建成功的AI叙事创作平台的战略建议。 一、为什么这是2025年值得关注的赛道? 1. 底层需求的爆发 人类永恒的故事需求:全球每月有超过…...

拜特科技签约惠生工程,携手打造高效资金管理系统

近日,拜特科技成功签约惠生工程(中国)有限公司(以下简称“惠生工程”)资金管理系统项目。此次双方携手打造一套先进的资金管理系统,为惠生工程的战略发展注入强劲新动力,推动其资金管理迈向更高水平。 惠生工程作为行…...

快瞳宠物肢体关键点检测:让宠物设备更懂“猫言狗语”

在宠物经济高速发展的今天,智能设备已渗透到养宠生活的方方面面。然而,如何让设备真正理解宠物的行为意图?快瞳科技推出的宠物肢体关键点检测技术,通过精准捕捉宠物肢体动作,为智能喂食、健康监测、行为训练等场景提供…...

【安卓】APP生成器v1.0,生成属于你的专属应用

今天作者给大家分享一个超级好用的手机APP。还在为反复搜索常用网站抓狂?今天安利一款颠覆性神器——它能将你所有心头好的网页变成专属按钮,像搭乐高一样DIY你的「软件」,从此告别收藏夹混乱!小说党、资讯控、摸鱼达人集体狂喜&a…...

详细解读react框架中的hooks

React Hooks 是 React 16.8 引入的一项革命性特性,它允许你在函数组件中使用状态(state)和其他 React 特性,而无需编写 class 组件。下面将详细解读 React Hooks 的核心概念、常用 Hooks 及其工作原理。 一、Hooks 的核心概念 1. 什么是 Hooks Hooks …...

机器学习01-支持向量机(SVM)(未完)

参考浙大 胡浩基老师 的课以及以下链接: https://blog.csdn.net/m0_74100344/article/details/139560508 https://blog.csdn.net/2301_78630677/article/details/132657023 https://blog.csdn.net/lsb2002/article/details/131338700 一、一些定义 T是倒置&…...

Java进阶版线程池(超详细 )

线程池 线程池工具类 Executors Executors 是 Java 提供的一个工具类,它包含了多个静态方法,能够方便地创建不同类型的线程池。 newFixedThreadPool 创建一个固定大小的线程池,线程池中的线程数量固定,当有新任务提…...

场外期权只适合上涨行情吗?

场外期权与直接进行期货市场操作相比,场外期权让我们有了更多的选择空间。”目前期权市场有了更多合适的风险管理模式,场外期权衍生品工具与其需求不谋而合,适合做以小博大,做各种对冲大盘下跌风险等等策略,下文为大家…...

echarts图表相关

echarts图表相关 echarts官网折线图实际开发场景一: echarts官网 echarts官网 折线图 实际开发场景一: 只有一条折线,一半实线,一半虚线。 option {tooltip: {trigger: "axis",formatter: (params: any) > {const …...

【操作系统(Linux)】——多线程对共享变量访问的同步与互斥

一、多线程对共享变量的非互斥访问 我们将要做的&#xff1a;构造多线程共享变量竞争的案例&#xff0c;并分析现象发生的原因&#xff0c;进而思考解决方式。 案例源代码&#xff1a; #include <stdio.h> #include <stdlib.h> #include <pthread.h> #inc…...

deeplabv3+街景图片语义分割,无需训练模型,看不懂也没有影响,直接使用,cityscapes数据集_16

目录 1、下载链接1.1、CSDN链接&#xff0c;含权重文件直接使用&#xff0c;建议直接下这个&#xff0c;还不限速。1.2 Github链接&#xff1a; 2、下载代码&#xff0c;下载预训练好的权重3、预测代码4、像素提取&#xff0c;或者说类别提取5、文档部分内容截图6、其他数据处理…...

[前端]从人体结构看网页三要素:HTML、CSS 与 JavaScript

目录 一、HTML:网页的 “骨架” 二、CSS:网页的 “血肉” 三、JavaScript:网页的 “神经系统” 四、三者协同构建精彩网页 在互联网的浩瀚海洋中,网页是我们与世界交互的重要窗口。一个精彩的网页背后,离不开 HTML、CSS 和 JavaScript 这三位 “幕后英雄”。有趣的是,…...

【Leetcode】3375. 使数组的值全部为 K 的最少操作次数

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接&#x1f517; 给你一个整数数组 nums 和一个整数 k 。 如果一个数组中所有 严格大于 h 的整数值都 相等 &#xff0c;那么我们称整数 h 是 合法的 。 比方说&#xff0c;如果 nums [10, 8, 10…...

封装uniapp request promise化

uniapp request 封装 一、 封装方法1. 使用 promis 封装 request2. 封装 api 在 api.js3.在要请求的页面 调用 api 一、 封装方法 1. 使用 promis 封装 request const BASE_URL 你的url接口 //比如 http://198.12.3.3/pzexport function request(config {}){let {url,dat…...

架构演进成熟度校验体系构建

架构演进成熟度校验体系构建 ——基于电商价格服务Checklist的图形化实践指南 一、成熟度校验全景视图 #mermaid-svg-tXchQ6nY7QzNUrL1 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-tXchQ6nY7QzNUrL1 .error-ico…...

Llama 4全面评测:官方数据亮眼,社区测试显不足之处

引言 2025年4月&#xff0c;Meta正式发布了全新的Llama 4系列模型&#xff0c;这标志着Llama生态系统进入了一个全新的时代。Llama 4不仅是Meta首个原生多模态模型&#xff0c;还采用了混合专家(MoE)架构&#xff0c;并提供了前所未有的上下文长度支持。本文将详细介绍Llama 4…...

kotlin 多个fragment beginTransaction容器添加使用

在Kotlin中如何使用Fragment的beginTransaction来添加多个Fragment到容器中。我需要先回顾一下Fragment的基本用法&#xff0c;然后考虑多个Fragment的情况。 FragmentTransaction的beginTransaction是用来开启一个事务&#xff0c;然后添加、替换或移除Fragment。通常&#x…...

(PTA) L2-011-L2-015

L2-012 关于堆的判断 由于没有得到AC代码&#xff08;1&#xff0c;3测试点错误&#xff09;,这里先不做展示&#xff0c;等后续复盘的时候进行补充。 L2-011 玩转二叉树 给定一棵二叉树的中序遍历和前序遍历&#xff0c;请你先将树做个镜面反转&#xff0c;再输出反转后的层序…...

管理Linux服务器的用户和组

用户/组 命令符会展示当前用户名和主机名 创建用户&#xff0c;同时创建同名组 useradd 用户名 设置密码 passwd 用户名 切换用户登录 su 用户名 删除用户 userdel -r 用户名 记录用户信息的文件 /etc/passwd 记录密码&#xff08;密文&#xff09;信息的文件 /etc/sh…...

奇安信驻场面试题

《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇网安资料库https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39…...

Testbench设计

一、几个名词&#xff1a; 被仿真的文件叫DUT&#xff08;Design under Test&#xff09; 编写Testbench的目的 验证设计有没问题。 怎么写Testbench&#xff1f; 四、Teshbench各个部分的写法&#xff1a; 外部信号就是外面连接的信号。...

使用IPython有哪些好处?

这里总结了50个使用IPython的好处&#xff0c;大大提升开发效率&#xff01; 什么是IPython&#xff1f;可能很多人已经在用&#xff0c;却不知道它到底是什么。 根据维基百科的解释&#xff1a; IPython是一种基于Python的交互式解释器&#xff0c;提供了强大的编辑和交互功能…...

加油站小程序实战教程10开通会员

目录 1 修改用户登录逻辑2 创建变量3 调用API总结 我们上一篇搭建了开通会员的界面&#xff0c;有了界面的时候就需要加入一些逻辑来控制界面显示。我们的逻辑是当用户打开我的页面的时候&#xff0c;在页面加载完毕后调用API看用户是否已经开通会员了&#xff0c;如果未开通就…...

NO.84十六届蓝桥杯备战|动态规划-路径类DP|矩阵的最小路径和|迷雾森林|过河卒|方格取数(C++)

路径类dp是线性dp的⼀种&#xff0c;它是在⼀个nm的矩阵中设置⼀个⾏⾛规则&#xff0c;研究从起点⾛到终点的⽅案数、最⼩路径和或者最⼤路径和等等的问题 矩阵的最小路径和_牛客题霸_牛客网 状态表⽰&#xff1a; dp[i][j]表⽰&#xff1a;到达[i, j]位置处&#xff0c;最⼩…...

WHAT - React 技术栈常用库/工具

目录 基础类状态管理路由管理UI 组件库开发工具 / 辅助库测试相关表单和数据展示其它实用类代码重构应用迁移&#xff1a;PWA代码组织与架构建议&#xff08;选项&#xff09; 下面是一个 React 技术栈常用库/工具清单&#xff0c;按不同分类整理&#xff0c;涵盖开发、状态管理…...

FreeSWITCH的SIP配置

确认 FreeSWITCH 的 SIP 配置 FreeSWITCH 的 SIP 配置文件通常位于 /usr/local/freeswitch/conf/sip_profiles 目录下。默认情况下&#xff0c;FreeSWITCH 使用 internal.xml 和 external.xml 作为 SIP 配置文件。 查看 internal.xml 配置 编辑 /usr/local/freeswitch/conf/sip…...

Spark核心知识总结

一、Spark运行架构 &#xff08;一&#xff09;整体结构 Spark框架采用标准master - slave结构&#xff0c;Driver为master管理作业任务调度&#xff0c;Executor为slave负责实际执行任务。 &#xff08;二&#xff09;核心组件 1. Driver&#xff1a;执行Spark任务的main方法&…...

第1节:计算机视觉发展简史

计算机视觉与图像分类概述&#xff1a;计算机视觉发展简史 计算机视觉&#xff08;Computer Vision&#xff09;作为人工智能领域的重要分支&#xff0c;是一门研究如何使机器"看"的科学&#xff0c;更具体地说&#xff0c;是指用摄影机和计算机代替人眼对目标进行识…...

2D 与 3D 连线效果全解析 | 从平面到立体

HT 是一个灵活多变的前端组件库&#xff0c;具备丰富的功能和效果&#xff0c;满足多种开发需求。让我们将其效果化整为零&#xff0c;逐一拆解具体案例&#xff0c;帮助你更好地理解其实现方案。 在此篇文章中&#xff0c;让我们一起深入探讨 2D 与 3D 的连线效果是如何实现的…...

Django Cookies 实际项目示例

Django Cookies 实际项目示例 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 Django Cookies 实际项目示例介绍什么是 Django Cookies?为什么要关心 Django Cookies?Django Cookie…...

【问题排查】SQLite安装失败

启动 Django 自带的开发服务器 python manage.py runserver出现如下报错&#xff1a; [rootiZ2zedudtf2cwzi9argky2Z myproject]# python manage.py runserver Watching for file changes with StatReloader Performing system checks...System check identified no issues (…...

stream流Collectors.toMap(),key值重复问题

文章目录 一、问题二、问题示例三、原因四、解决方法4.1、方案一 一、问题 发现Collectors.toMap的一个坑&#xff0c;若key值重复的时候会抛异常。如&#xff1a; IllegalStateException: Duplicate key 男 二、问题示例 报错示例如下&#xff1a; import lombok.AllArgsC…...

STM32(基于标准库)

参考博客&#xff1a;江科大STM32笔记 Stm32外设 一、GPIO 基础 GPIO位结构 I/O引脚的保护二极管是对输入电压进行限幅的上面的二极管接VDD, 3.3V,下面接VSS, 0V&#xff0c;当输入电压 >3.3V 那上方这个二极管就会导通&#xff0c;输入电压产生的电流就会大部分充入VD…...

OpenStack Yoga版安装笔记(十八)Self-service networks配置笔记

1、官方文档 在OpenStack官方安装文档中&#xff0c;提供了两个网络配置选项&#xff1a; Option1&#xff1a;Provider networksOption2&#xff1a;Self-service networks 这两个选项并不冲突&#xff0c;可以在OpenStack环境中同时配置。 在《OpenStack Yoga版安装笔记&…...

2025年黑龙江建筑安全员 C3 证考试题库练习题

黑龙江建筑安全员 C3 证考试题库练习题 1、消防控制室是设有火灾自动报警设备和消防设施控制设备&#xff0c;用于接收、显示、处理&#xff08; &#xff09;&#xff0c;控制相关消防设施的专门处所2。 A. 安全信息 B. 设备信息 C. 通讯信号 D. 火灾报警信号 答案&…...

JavaScript数据结构-Map的使用

在 JavaScript 中&#xff0c;Map 是 ES6 引入的一种新的数据结构&#xff0c;它类似于对象&#xff0c;也是键值对的集合&#xff0c;但 Map 的键可以是任意类型的值&#xff08;对象、函数、基本类型等&#xff09;&#xff0c;而传统对象的键只能是字符串或 Symbol&#xff…...

LeetCode面试经典150题

目录 力扣80. 删除有序数组中的重复项 II 代码解析 力扣274. H 指数 代码解析 力扣151. 反转字符串中的单词 解析代码 力扣12. 整数转罗马数字 解析代码 力扣28. 找出字符串中第一个匹配项的下标 解析代码1&#xff08;暴力模拟&#xff09; 解析代码2&#xff08;K…...

mysql之等值连接8个实例

以下实例以常见的业务场景为例&#xff0c;使用 MySQL 语法&#xff0c;假设存在员工表&#xff08;employees&#xff09;、部门表&#xff08;departments&#xff09;、订单表&#xff08;orders&#xff09;、客户表&#xff08;customers&#xff09;等&#xff0c;来展示…...

C基础笔记_指针专题

一:C 和 C 偏爱使用指针的原因 1. 通过指针可以直接操作内存 C 和 C 是系统级编程语言&#xff0c;它们的设计目标之一是允许开发者直接与硬件交互并高效地管理资源。 指针的本质&#xff1a;指针本质上是一个存储内存地址的变量&#xff0c;它让程序员可以直接访问和操作内…...

GPT-SoVITS Windows 配置与推理笔记(自用)

GPT-SoVITS Windows 配置与推理笔记&#xff08;自用&#xff09; 这是给自己留的备份&#xff0c;方便下次查。Windows 端配置和推理为主&#xff0c;代码为核心&#xff0c;直接干货。 环境准备 系统&#xff1a;Windows 10/11Python&#xff1a;3.9&#xff08;别用别的版…...

【设计模式】面向对象开发学习OOPC

PLOOC-裸机思维 PLOOC OOPC精要——撩开“对象”的神秘面纱 C/C面向对象编程之封装-KK 面向过程&#xff0c;本质是“顺序&#xff0c;循环&#xff0c;分支”面向对象&#xff0c;本质是“继承&#xff0c;封装&#xff0c;多态”参考的书籍&#xff1a;《UMLOOPC嵌入式C语言…...