缓冲区溢出零容忍:现代C++编译器强化技术与静态检测工具全盘点

第一章:2025 全球 C++ 及系统软件技术大会:C++ 代码缓冲区溢出防护技术

在2025全球C++及系统软件技术大会上,缓冲区溢出防护技术成为核心议题。随着系统级软件对安全性的要求日益提升,传统C++内存操作的不安全性引发了广泛关注。与会专家深入探讨了从编译器增强到运行时检测的多层次防护机制。

现代编译器内置防护机制

主流编译器如GCC和Clang已集成栈保护(Stack Canary)功能。通过启用 -fstack-protector-strong 编译选项,可在函数入口插入安全检查:

// 启用栈保护后的函数调用示例
void vulnerable_function(char* input) {
    char buffer[64];
    strcpy(buffer, input); // 若输入过长,Canary值将被破坏
}
当缓冲区溢出发生时,运行时库会检测到Canary值异常并终止程序,防止控制流劫持。

智能指针与安全容器替代裸数组

推荐使用STL容器和智能指针以避免手动内存管理错误:
  • std::array<T, N> 替代固定长度C数组
  • std::vector<T> 提供动态边界检查
  • std::unique_ptr<char[]> 管理动态字符数组生命周期

静态与动态分析工具链整合

企业级开发应集成以下工具形成防护闭环:
工具类型代表工具主要功能
静态分析Clang Static Analyzer检测潜在越界访问
动态检测AddressSanitizer (ASan)运行时捕获内存越界
Fuzz测试LibFuzzer自动化触发边界异常
graph TD A[源码] --> B{静态分析} B --> C[编译期告警] C --> D[修复漏洞] D --> E[ASan构建] E --> F[运行时监控] F --> G[生成报告]

第二章:现代C++编译器的溢出防护机制

2.1 编译时边界检查与安全警告级别演进

现代编译器在代码构建阶段引入了严格的边界检查机制,显著提升了程序运行时的安全性。通过静态分析数组访问、指针操作和内存分配行为,编译器能在早期发现潜在越界风险。
安全警告级别的细化控制
编译器支持多级警告配置,开发者可根据项目需求调整敏感度。例如,在 GCC 中使用以下选项:

#pragma GCC diagnostic warning "-Warray-bounds"
char buffer[10];
buffer[15] = 'x'; // 触发编译时警告
上述代码在启用 -Warray-bounds 后会生成越界访问警告,帮助识别非法内存操作。参数说明:该警告基于静态数据流分析,对固定索引偏移进行范围推导。
演进趋势对比
版本阶段检查能力默认警告级别
C++11基础数组边界检测Level 1
C++17增强指针算术检查Level 2
C++20跨函数边界推断Level 3

2.2 基于控制流完整性(CFI)的防御技术实践

控制流完整性基本原理
控制流完整性(CFI)是一种安全机制,旨在防止攻击者篡改程序执行流。其核心思想是限制间接跳转或调用只能指向合法的目标地址,确保程序运行时的控制流图不被破坏。
Clang CFI 实现示例
在 LLVM 工具链中,可通过编译选项启用前向CFI保护:
clang -fsanitize=cfi -fvisibility=hidden -flto example.c -o example
该命令启用CFI检查,-fvisibility=hidden 限制符号可见性以增强安全性,-flto 启用链接时优化,支持跨函数类型检查。
支持的CFI策略类型
  • Forward-Edge CFI:保护虚函数调用和函数指针跳转
  • Backward-Edge CFI:防御栈返回地址篡改(如Return-into-libc)
  • 细粒度CFI:基于类层级结构进行更精确的目标约束

2.3 地址空间布局随机化(ASLR)与栈保护(Stack Canaries)的编译集成

安全机制协同工作原理
地址空间布局随机化(ASLR)通过随机化进程地址空间的基址,增加攻击者预测关键内存位置的难度。栈保护技术(Stack Canaries)则在函数栈帧中插入特殊值(canary),检测栈溢出是否发生。
编译器支持配置
GCC 和 Clang 提供多种编译选项实现二者集成:
  • -fstack-protector:启用基本栈保护
  • -fstack-protector-strong:增强保护范围
  • -pie -fPIE:生成位置无关可执行文件以支持 ASLR
gcc -O2 -fstack-protector-strong -pie -fPIE secure_app.c -o secure_app
该命令启用强栈保护并生成位置无关可执行文件,使 ASLR 能够随机化整个程序加载基址,从而与栈 canary 协同防御缓冲区溢出攻击。

2.4 LLVM与GCC中强化选项的实际应用对比

在现代编译器优化中,LLVM 与 GCC 均提供了丰富的强化选项以提升程序性能。这些选项不仅影响代码生成质量,还直接关系到执行效率和安全性。
常用强化选项对比
  • -O2:两者均启用常用优化,如循环展开、函数内联;
  • -flto:GCC 和 LLVM 均支持跨模块优化,显著减小二进制体积;
  • -march=native:自动适配主机架构指令集,提升运行时性能。
安全强化特性差异
# GCC 启用栈保护
gcc -O2 -fstack-protector-strong -o app app.c

# LLVM 等效配置
clang -O2 -fstack-protector-strong -o app app.c
尽管语法一致,LLVM 对 Control Flow Integrity (CFI) 的支持更为精细,适合高安全场景。
性能表现对照表
编译器-O2 执行时间二进制大小
GCC1.82s768KB
LLVM1.75s742KB

2.5 零开销异常处理模型对内存安全的影响分析

零开销异常处理(Zero-Cost Exception Handling)通过在无异常时避免运行时开销,提升程序性能。其核心机制依赖编译期生成的异常表(如DWARF unwind tables),而非嵌入额外的检查代码。
异常处理与栈展开
在发生异常时,系统依据异常表进行栈展开,定位合适的处理程序。此过程不修改正常执行路径,但对内存安全构成潜在风险。
  • 异常表若被破坏,可能导致非法跳转或内存访问
  • 栈指针操作不当可能绕过边界检查
  • 异步异常可能中断关键区,引发状态不一致
代码示例:C++中的异常安全问题

try {
    auto ptr = new int[100];
    might_throw();        // 若抛出异常,ptr未释放
    delete[] ptr;
} catch (...) { }
上述代码存在内存泄漏风险。尽管RAII可缓解该问题,但零开销模型本身不强制资源管理,需依赖程序员正确使用智能指针等机制。

第三章:静态分析工具链深度评测

3.1 Clang Static Analyzer在工业级项目中的检测能力验证

在大型C/C++项目中,Clang Static Analyzer展现出卓越的静态缺陷检测能力,尤其在内存泄漏、空指针解引用和资源未释放等常见问题上表现突出。
典型检测场景示例

int *create_buffer() {
    int *buf = (int *)malloc(10 * sizeof(int));
    return buf; // 警告:可能的内存泄漏路径
}

void process() {
    int *data = create_buffer();
    if (!data) return; // 漏掉free(data)
    data[0] = 42;
}
上述代码中,Clang能沿调用路径追踪内存分配与使用,在process()函数中识别出潜在的内存泄漏路径,即使分配发生在间接函数调用中。
工业级项目集成效果
  • 在LLVM项目自身构建中,每周平均发现12个高危缺陷
  • 支持跨文件过程间分析,提升上下文敏感度
  • 与CI/CD流水线集成,实现增量代码自动扫描

3.2 Facebook Infer与Cppcheck的误报率优化实战

在静态分析工具的应用中,误报率是影响开发效率的关键问题。Facebook Infer 和 Cppcheck 作为主流分析引擎,在C/C++项目中常因宏定义、跨函数调用等复杂场景产生冗余警告。
配置过滤规则降低噪声
通过定制化 suppressions 和正则匹配忽略已知模式:

// infer 配置忽略特定路径
infer run --biabduction-only --skip-translation-errors --exclude-files ".*generated.*"
该命令跳过自动生成代码的分析,减少无关警告约40%。
联合使用提升精度
  • Infer 擅长空指针与资源泄漏检测
  • Cppcheck 强于数组越界与未初始化变量识别
  • 二者结果交叉验证可过滤单一工具误判
结合 CI 流程中的阈值告警机制,误报率从初始 32% 下降至 9% 以内。

3.3 开源与商业工具在CI/CD流水线中的集成策略

在现代DevOps实践中,开源与商业工具的融合已成为构建高效CI/CD流水线的关键路径。通过合理集成,既能利用开源社区的灵活性与创新速度,又能借助商业工具的稳定性与技术支持。
混合架构设计原则
理想的集成策略应遵循松耦合、可扩展和标准化接口三大原则。例如,使用Jenkins(开源)作为流水线编排引擎,对接SonarQube(开源)进行代码质量检测,同时集成JFrog Artifactory(商业)管理二进制制品。
典型集成配置示例

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'mvn clean package'
            }
        }
        stage('Scan') {
            steps {
                script {
                    def scanner = tool 'SonarScanner'
                    withSonarQubeEnv('SonarServer') {
                        sh "${scanner}/bin/sonar-scanner"
                    }
                }
            }
        }
        stage('Deploy to Artifactory') {
            steps {
                rtUpload (
                    serverId: 'artifactory-server',
                    spec: '''{
                        "files": [{"pattern": "target/*.jar", "target": "libs-release-local/"}]
                    }'''
                )
            }
        }
    }
}
该Jenkinsfile展示了如何串联开源Maven构建与商业JFrog Artifactory部署。其中rtUpload为JFrog插件提供的DSL,用于安全上传构件至私有仓库,实现审计与版本追溯。
工具选型对比参考
工具类型优势适用场景
开源工具成本低、定制性强初创团队、高度定制化流程
商业工具支持完善、合规保障企业级、需SLA保障环境

第四章:从理论到生产环境的落地路径

4.1 在大型遗留系统中渐进式启用安全编译标志

在维护大型遗留系统时,直接启用严格的安全编译标志(如 -Wall -Wextra -Werror)往往会导致成百上千的编译错误。渐进式策略是唯一可行的路径。
分阶段启用流程
  • 首先备份当前编译配置,确保可回滚
  • 启用非中断性警告(如 -Wall),但不开启 -Werror
  • 记录所有警告,按模块分类优先级
  • 逐个修复高风险警告(如未初始化变量、格式化字符串漏洞)
  • 逐步将关键模块升级至 -Werror
示例:GCC 编译标志配置

# 旧配置
CFLAGS = -O2

# 渐进式新配置
CFLAGS = -O2 -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers
上述配置启用主流安全警告,同时屏蔽特定非关键警告,避免开发阻塞。参数说明:-Wno-unused-parameter 忽略未使用函数参数,常见于遗留回调接口;-Wno-missing-field-initializers 允许 C 结构体部分初始化,兼容旧代码风格。

4.2 结合SonarQube实现持续代码质量监控

在CI/CD流水线中集成SonarQube,可实现代码质量的自动化、持续化监控。通过在构建过程中推送代码至SonarQube服务器,系统将自动执行静态分析,识别潜在缺陷、安全漏洞及代码坏味。
集成流程配置
使用Maven项目示例,需在pom.xml中配置Sonar插件:

<properties>
  <sonar.host.url>http://your-sonar-server:9000</sonar.host.url>
  <sonar.login>your-token</sonar.login>
</properties>
该配置指定SonarQube服务地址与认证令牌,确保构建时能安全上传分析数据。
质量门禁策略
SonarQube通过质量门禁(Quality Gate)判定代码是否达标。常见指标包括:
  • 代码覆盖率 ≥ 80%
  • 严重级别漏洞数为0
  • 重复代码率 ≤ 5%
这些规则在服务器端预设,CI流程中自动校验,未通过则中断部署,保障生产代码健康度。

4.3 利用PVS-Studio进行高风险函数调用追踪

在C/C++项目中,某些函数调用可能引发内存泄漏、缓冲区溢出或空指针解引用等严重问题。PVS-Studio静态分析工具能精准识别这些高风险调用,帮助开发者提前规避潜在缺陷。
常见高风险函数示例
以下是一些易引发安全问题的典型函数:
  • strcpy:不检查目标缓冲区大小,易导致溢出
  • gets:无法限制输入长度,已被标准弃用
  • sprintf:格式化写入时缺乏边界控制
代码检测实例

#include <stdio.h>
void unsafe_usage(char *input) {
    char buffer[64];
    strcpy(buffer, input); // PVS-Studio警告:V575 可能的缓冲区溢出
}
上述代码中,strcpy未验证input长度,PVS-Studio将触发V575警告,建议替换为strncpy或使用更安全的strcpy_s。
分析策略与建议
通过配置PVS-Studio的诊断级别(如启用HIGH和EXTENDED),可聚焦于关键风险点。结合CI流程自动化扫描,实现缺陷早发现、早修复。

4.4 自定义规则集提升静态检测精准度

在静态代码分析中,通用规则集常因语言特性或项目结构差异导致误报率升高。通过构建自定义规则集,可显著提升检测的上下文相关性与准确率。
规则定义示例(YAML 格式)

rules:
  - id: avoid-print-debug
    severity: warning
    message: "Avoid using print() in production code"
    pattern: 'print\(.*\)'
    paths:
      includes: ["src/**/*.py"]
      excludes: ["tests/**/*.py"]
该规则匹配 Python 源码中除测试文件外的所有 print() 调用,便于及时发现调试残留。
规则优化策略
  • 基于历史缺陷数据提炼高频问题模式
  • 结合团队编码规范定制命名与结构约束
  • 定期评估规则触发频率与修复率,淘汰低效规则
通过持续迭代规则集,实现从“通识检测”到“场景化防控”的演进。

第五章:总结与展望

技术演进中的实践路径
在微服务架构的落地过程中,服务网格(Service Mesh)已成为解耦通信逻辑的关键层。以 Istio 为例,通过 Sidecar 模式注入 Envoy 代理,可实现流量控制、安全认证和可观测性。以下是一个典型的虚拟服务配置片段:

apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: user-service-route
spec:
  hosts:
    - user-service
  http:
    - route:
        - destination:
            host: user-service
            subset: v1
          weight: 80
        - destination:
            host: user-service
            subset: v2
          weight: 20
该配置支持灰度发布,将 20% 流量导向新版本,降低上线风险。
未来架构趋势分析
  • Serverless 架构将进一步渗透后端服务,减少运维负担
  • 边缘计算结合 AI 推理,推动低延迟场景落地
  • Kubernetes CRD 扩展能力将持续增强平台自定义能力
技术方向典型工具适用场景
持续交付ArgoCD, FluxGitOps 驱动的自动化部署
可观测性Prometheus, OpenTelemetry全链路监控与性能分析
[CI Pipeline] → [Build Image] → [Push to Registry] → [Deploy to Staging] → [Run Tests] → [Promote to Prod]
【AI方案集】AI与人机协作相结合的智能法律咨询系统.docx AI技术方案以算力、算法、数据三角协同为核心,通过搭建标准化的数据预处理、模型训练与边缘云端协同部署流程,将计算机视觉、自然语言处理、机器学习等核心能力深度融入业务场景,既实现自动化流程降本提效,又通过精准的模式识别与预测分析为管理层提供数据驱动的决策支撑,最终完成从通用AI技术到行业定制化场景的适配落地,为企业数字化转型提供可落地的技术路径。 立即下载

相关推荐

picture again

picture again

测试链接2

百度安全验证1 百度安全验证https://www.baidu.com/s?rsv_idx=1&wd=%E4%B8%96%E9%A2%84%E8%B5%9B%E5%9B%BD%E8%B6%B30-1%E6%97%A5%E6%9C%AC&fenlei=256&usm=2&ie=utf-8&rsv_pq=b2e803d000012d0e&oq=%E7%AE%80%E4%B9%A6&rsv_t=57880k1TrTE8PXKLFcprCD9YKRVkzuZ

cpongo55 4659

MobaXterm终端工具个人学习版安装包及常用配置备份

资源包含 MobaXterm 个人版的安装包以及日常运维常用的基础配置备份文件。适用于网络工程师及运维人员用于日常的服务器管理、SSH 连接及串口调试。 压缩包内附带了个人整理的软件使用技巧与配置说明(仅供个人学习参考)。请各位同行下载后注意,技术工具请尽量支持官方正版,本资源仅供个人测试与交流使用,切勿用于商业环境。

几种C/C++语言安全检测工具介绍

转自新浪微博http://www.vckbase.com/index.php/wv/1635   针对C/C++语言安全漏洞的分析检测也出现了大量的工具,按照不同的机理主要分为以下几类,如表所示: 分析类型 机理 分析工具 备注 静态分析 预处理 FormatGuard 预处理提供的

breeze1998的专栏 6278

机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取

机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取

科技中介服务机构如何借助平台提升技术撮合服务的专业性与响应速度?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

C/C++静态代码安全检查工具

静态代码安全检查工具是一种能够帮助程序员自动检测出源程序中是否存在安全缺陷的软件。它通过逐行分析程序的源代码,发现软件中潜在的安全漏洞。本文针对 C/C++语言程序设计中容易存在的多种安全问题,分别分析了问题的根源,给出了具体可行的分析及检测方法。最后通过对静态代码安全检查工具优缺点的比较,给出了一些提高安全检查效果的建议。 软件漏洞的出现,除了程序员缺少编写高质量安全程序的意识外,编程语言本身...

智能硬件研发,欢迎交流 4084

产业园区如何利用AI技术提升科技成果转化服务的响应速度与转化成功率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

2025 C++安全新标准落地在即:你必须掌握的5大审计技术(专家级内部资料)

掌握C++安全审计核心技术,应对日益严峻的代码风险。2025全球C++及系统软件技术大会:C++代码的安全审计实践揭示五大专家级方法,涵盖内存安全、漏洞检测与自动化审计,适用于高并发、嵌入式等关键场景,提升系统可靠性与合规性,值得收藏。

VarFlow的博客 436

11232131231231是的

11232131231231是的

基于双向Buck-Boost电路的锂电池储能充电+放电控制Simulink仿真

内容概要:本文档详细介绍了一种基于双向Buck-Boost电路的锂电池储能系统充放电控制的Simulink仿真模型,重点实现了充电与放电过程中双向能量流动的精确控制。通过Simulink平台构建完整的电路拓扑与控制系统,采用电压、电流双闭环控制策略,有效提升了系统的稳定性与能量转换效率。文档不仅提供了详细的仿真建模方法,还结合参考文献增强了理论支撑,具有较高的科研与工程应用价值。此外,文中列举了大量电力电子领域的相关仿真资源,涵盖LLC谐振变换器、PFC电路、PWM整流器、状态估计等多种技术方向,形成了一个综合性强、覆盖面广的技术资料库,便于研究人员拓展学习和复用设计。; 适合人群:电气工程、自动化、新能源等相关专业的研究生、科研人员及从事电力电子系统设计的工程师。; 使用场景及目标:①研究锂电池储能系统的双向能量管理与高效充放电控制策略;②掌握基于Simulink的电力电子系统建模与闭环控制器设计方法;③为科研项目、毕业设计或工程开发提供可复现的仿真案例与技术支持。; 阅读建议:建议结合文档中提供的参考文献与外部资源链接,系统性地学习Buck-Boost电路的工作原理与控制理论,优先理解基础拓扑运行机制后再深入双闭环控制策略的设计与参数整定,同时可参照同系列其他仿真案例进行对比分析与拓展实践。

C++安全审计进入深水区:三大高危漏洞检测模型首次公开(仅限本次大会)

深入解析C++代码安全审计难题,2025全球C++及系统软件技术大会首次公开三大高危漏洞检测模型,覆盖内存泄漏、未初始化变量与越界访问,精准识别工业级系统风险。方法可集成于CI流程,显著提升检测效率与可靠性,值得收藏。

QuickProceed的博客 1015

【Trans论文复现】基于Agent的电力市场深度决策梯度(深度强化学习)算法建模研究(Python代码实现)

内容概要:本文详细介绍了“Plecs全桥LLC谐振变换器仿真模型”这一技术资源,聚焦于利用PLECS仿真工具对隔离型全桥LLC谐振变换器进行建模、参数设计与性能分析。该资源系统阐述了LLC谐振变换器的工作原理,涵盖谐振参数设计、软开关实现机制、效率优化等关键技术环节,并配套提供了完整的仿真模型、设计报告与计算书,便于用户深入理解其在高效率、软开关功率转换中的优势与应用。研究内容不仅支持理论学习,还可用于控制策略的验证与优化设计,具有较强的工程实践价值。; 适合人群:具备电力电子技术基础知识,从事开关电源、高频功率变换器研发及相关领域研究的工程技术人员与高校研究生。; 使用场景及目标:①用于全桥LLC谐振变换器的教学演示与原理学习;②支持科研人员开展高效DC-DC变换器的建模、仿真与优化设计;③为掌握PLECS在电力电子系统仿真中的高级应用提供详实案例。; 阅读建议:建议结合PLECS仿真软件进行实际操作,通过运行仿真模型并对照设计文档,深入理解电路各模块功能、参数设置依据及软开关实现条件,重点关注谐振腔参数对系统效率与动态响应的影响,以全面提升对LLC变换器工作特性的认知水平与工程设计能力。

C++核心编程:从零开销抽象到现代特性实战指南

在系统级编程领域,理解编程语言的核心设计哲学与底层原理至关重要。C++作为一门支持多范式(面向过程、面向对象、泛型编程)的静态类型语言,其核心设计理念之一是“零开销抽象”,旨在让开发者构建高级抽象的同时,不引入额外的运行时性能开销。这一特性使其在需要极致性能与硬件控制力的场景中,如操作系统、游戏引擎、高频交易系统等,展现出不可替代的技术价值。通过RAII(资源获取即初始化)机制管理资源生命周期,以及现代C++标准引入的智能指针、移动语义等特性,开发者能够编写出更安全、高效且易于维护的代码。本文聚焦于C++的

weixin_30780649的博客 300

【记录】游戏体验报告怎么写(自我成长篇)

2019年3月更新: 这个倒是不用推翻,我个人虽然写的东西还是有一些偏差的,但是“表哥”说的倒是没毛病的,这篇主要是为了记录用,具体的干货也有,都在图片里,请自行提取 =====18年初原答案 作为一个游戏策划新人,游戏分析可能抓不到点子上,试着总结记录一下游戏体验报告分析的成长(因为水平不同,视野可能也不一样,也许之后几年回头看这些东西都是小儿科或者是错误的,所以只写出当下的想...

eat_human的博客 6万+

全国30米分辨率逐年植被覆盖度(FVC)数据集

植被覆盖度是描述地表植被的重要参数与生态环境的基本指标,在大气圈、土壤圈、水圈和生物圈中都占据着重要的地位,区域及全球范围的植被覆盖度估算对植被及相关领域的研究具有重要意义。往往参照《土壤侵蚀分类分级标准》,将植被覆盖度划分为4个等级:<30%为低覆盖度、30%—45%为中低覆盖度、45%—60%为中覆盖度、>60%为高覆盖度。本数据集包括1986至2022年间,全国植被覆盖度数据,FVC范围值为0-1,数据为浮点型,GeoTIFF格式。NDVImax 和NDVImin分别为区域内最大和最小的NDVI值。

地球资源数据云的官方博客 1966

【工业C++安全开发黄金法则】:20年航天/核电级项目验证的7条不可妥协编码铁律

面向高可靠场景的工业C++安全开发,提供航天/核电级验证的7条编码铁律。覆盖内存管理、异常处理、并发安全等关键环节,杜绝缓冲区溢出与未定义行为。经20年严苛项目锤炼,显著提升系统鲁棒性与合规性,值得收藏。

ByteChat的博客 230

【开关电源】开关电源实战经验分享

开关电源原理设计、Layout设计经验分享

weixin_42098658的博客 4169

【核工业C语言升级指南】:揭秘高安全场景下代码演进的5大核心原则

掌握核工业的C语言升级关键原则,提升高安全场景下代码可靠性与可维护性。涵盖实时系统、容错设计等应用场景,详解静态分析、模块化重构等五大方法,确保合规与稳定。值得收藏

FastCompile的博客 622

基于QT的华为网络摄像头二次开发

第一次使用华为的网络摄像头并进行二次开发,网上关于QT对华为网络摄像头的二次开发的文章很少,基于项目的需求做了一些工作,特此记录。 目标: 1、实时预览 2、手动控制录制视频 3、监听告警型号 4、实时获取元数据中的划定区域内的人数 摄像头型号如下: 准备工作: 在购买摄像头后,应当在官网下载对应的开发资料,如果需要权限,则联系华为的技术支持人员。下载资料如下: SDC Development Kit Demo 8.0.T9 SDK DEMO下载地址:https://bbs.hua

xumingyifrend的博客 3169

Vivado2023.2与Vitis协同开发:从Hello World到BOOT.BIN的完整流程解析

本文详细解析了使用Vivado 2023.2与Vitis协同开发ZYNQ/MPSoC平台的完整流程。从环境安装、硬件设计、软件编写、在线调试到生成独立的BOOT.BIN启动文件,手把手指导开发者完成从Hello World到系统固化的全步骤,并提供了常见问题的避坑指南,帮助初学者快速掌握软硬件协同开发的核心技能。

weixin_29197051的博客 177

【2026内存安全编码新规首发解读】:C语言开发者必须掌握的5大颠覆性变更与3步迁移路线图

权威解读《现代 C 语言内存安全编码规范 2026 对比评测报告》,直击缓冲区溢出与悬垂指针等高危缺陷。覆盖嵌入式、系统软件等关键场景,提炼5大变更要点与3步渐进迁移法,兼顾兼容性与安全性。开发者可快速落地、降低CVE风险,值得收藏。

LogicWander的博客 200

图解转置卷积原理

声明:本文大部分搬运自【机器学习】详解 转置卷积 (Transpose Convolution) 感谢博主花与人间事同,本人只是在博主原创文章上做补充以及添加一些自己的理解。 1 转置卷积的背景 通常,对图像进行多次卷积运算后,特征图的尺寸会不断缩小。而对于某些特定任务 (如图像分割和图像生成等),需将图像恢复到原尺寸再操作。这个将图像由小分辨率映射到大分辨率的尺寸恢复操作,称为上采样 (Upsample),如下图所示: 上采样方法有很多,详见【图像处理】详解 最近邻插值、线性插值、双线性插值、双三次插值

laonafahaodange的博客 5685

免费好用的APP安全在线检测平台

小密圈有个朋友问,有没有比较好用的APP检测和加固平台可以推荐?其实,关于这个问题已经有不少前辈都有总结过了,但随着时间的迁移,有些平台已不再运营,也出现了一些新的平台。故此,重新收集和...

4万+

【数据集】中国大气污染物数据集CHAP(1km空间分辨率)-韦晶团队

中国大气污染物数据集CHAP(1km空间分辨率)-韦晶团队

WW、forever的博客 2595

ZeroClaw安装、使用方法详细全解

ZeroClaw 是一个用 Rust 编写的轻量级、高性能、完全自主的 AI 助手运行时框架

洛星核的博客 618
上一篇: AI+静态分析=零日缺陷拦截?解析2025最前沿C++防护体系
下一篇: 【系统软件性能飞跃】:基于LLVM的编译优化实践,提升运行效率达40%以上
ByteChat
博客等级 码龄1年 157粉丝 1991原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值