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

“AI+Security”系列第4期(一)之“洞” 见未来:AI 驱动的漏洞挖掘新范式

图片

在数字化浪潮下,安全漏洞问题日益严峻,成为各行业发展的重大挑战。近日,“AI+Security” 系列第 4 期线下活动于北京成功举办,聚焦 “洞” 见未来:AI 驱动的漏洞挖掘新范式,汇聚了安全领域的众多专家。

本次活动由安全极客、DataCon 社区、InForSec 网络安全研究国际学术论坛以及清华校友总会 AI 大数据专委会联合主办,众多行业精英参与,包括奇安信安全研究员尹斌、华清未央 CEO 朱文宇、水木羽林技术专家张强、云起无垠引擎负责人李唯、长亭科技联合创始人龚杰、云起无垠 CEO 沈凯文以及前华为高级安全专家、简世咨询高级顾问孙志敏,共同探讨 AI 技术在漏洞挖掘领域的前沿应用、面临挑战及未来发展方向,为筑牢国家网络安全屏障提供思路与智慧。

分享一:LLM辅助的模糊测试增强技术

在当今数字化浪潮之下,模糊测试作为一种自动化软件测试手段,于漏洞挖掘及评估范畴的重要性愈发凸显,其测试范畴涉猎广泛,从操作系统内核、数据库,再到各类协议等均有涉及。水木羽林技术专家张强针对大语言模型(LLM)在嵌入式操作系统模糊测试以及数据库模糊测试领域的探索与实践,展开了深入剖析。

图片

张强博士指出,嵌入式操作系统如今广泛扎根于工业物联网、航天航空等关键领域,然而,随着其应用场景的拓展,安全漏洞隐患也呈现出与日俱增之势,诸如令人警醒的 BadAlloc 系列漏洞以及 URGENT/11 系列漏洞等。

图片

聚焦于 LLM 加持下的嵌入式操作系统内核模糊测试,嵌入式操作系统既有着广泛的应用面,又关乎关键领域的安全命脉。内核模糊测试的对象囊括了传统操作系统内核、面向特定领域的操作系统内核以及广义内核,并且不同类型的内核均匹配有专门的测试工具与注入途径,输入生成策略也花样繁多。

过往研究表明,尽管已有关于 LLM 的相关探索,但嵌入式内核因其架构多元等复杂特性,仍存在诸多难题。覆盖引导测试依循特定流程运作,面对现存挑战,借助大语言模型生成能够触发内核模块的用户态程序、精准提取深层状态路径等手段,可有效破局。其框架设计分两个关键阶段推进,实验评测结果显示,所采用的 ECG 方法在漏洞挖掘以及代码覆盖率上成效明显,且消耗的 token 数量较少。

图片

对于数据库模糊测试,张强博士提及,大语言模型虽已在此崭露头角,却也饱受诸如产生幻觉、长文本理解瓶颈等问题的困扰,在驱动合成、输入生成以及漏洞探测等核心环节,均面临不小挑战。对此,张强给出了极具针对性的建议:首先,摒弃一次性完成驱动程序合成的做法,转而依据已识别出的错误,反复向 LLM 查询并持续修复错误;其次,广泛收集函数原型、测试用例,或是梳理函数间的连接规则,为提示工程提供有力支撑;最后,针对复杂系统而言,采用传统的程序分析方法往往比单纯倚重大语言模型更为稳妥、切实可行。

分享二:基于大模型的漏洞挖掘技术与实践

在当今的网络安全领域,漏洞挖掘无疑是重中之重,其方法也是多种多样,涵盖了静态代码分析、模糊测试,以及大模型与之相结合的创新手段。来自奇安信尹斌先生针对这些不同的漏洞挖掘路径,分别进行了深入且细致的分享,为行业带来诸多启示。

图片

首先聚焦于大模型融合静态代码分析挖掘漏洞这一前沿领域。静态代码分析作为一种强大的漏洞检测技术,具有无需运行程序即可查找潜在漏洞的显著优势,其所运用的常见技术手段包含符号执行等,在工具层面,像 CodeQL 这类经典之作更是广为人知。以 DiverseVul 项目为例,它创新性地通过爬取海量数据,并对大模型进行针对性微调等一系列操作,惊喜地发现大模型在漏洞检测性能方面得到了飞跃式提升,这其中特定的预训练任务更是发挥了关键支撑作用。再看 GPTScan,它将目光聚焦于智能合约逻辑漏洞检测这一细分赛道,巧妙地把大模型与静态分析有机融合,通过严谨的步骤,先是精准过滤函数,接着科学判断可达性,随后提取关键的变量语句并辅以静态确认等,成功挖掘出诸多之前未曾发现的新漏洞。

其次,在大模型融合模糊测试挖掘漏洞板块,模糊测试以其独特的通过输入异常数据来探寻漏洞的方式,在安全领域被广泛应用,诸如天象模糊测试平台,就以支持多种语言和架构的优势备受瞩目。在经典的 Fuzz 驱动生成方法中,研究人员巧妙设计提示策略,充分利用各类不同信息来生成并修复驱动程序,其中 ALL 策略脱颖而出,展现出更为卓越的效果。后续的增量研究更是乘胜追击,通过持续优化提示词以及精细调整调用结构,进一步推动了驱动生成效果迈向新高度。

图片

再者在大模型融合 Agent 挖掘漏洞方面,基于大语言模型(LLM)构建的 Agent 展现出非凡实力,它被赋予了推理、规划、执行以及存储等一系列关键能力。以 Naptime 项目为例,它开创性地给予大模型更为充裕的推理时间,巧妙搭建交互式环境,高度模拟人类编程测试流程,在此过程中灵活调用各类工具并严谨验证漏洞。而 Big Sleep 项目作为 Naptime 的进阶版本,更是取得了亮眼成果,成功揪出 SQLite 中的 stack overflow 漏洞,其操作流程环环相扣,从深入理解代码起始,历经细致分析、精巧构造输入、反复调试等多个关键步骤,最终精准总结出漏洞成因。

图片

最后来探讨大模型挖掘漏洞实践展现出的多元能力。从全流程能力来看,它以对程序的理解为起点,借助大模型的代码解析能力,分析程序架构、逻辑,找出潜在风险点;接着利用大模型融合静态代码分析、模糊测试等技术优势,挖掘程序深处的漏洞;最后完成漏洞修复报告的撰写,在报告中清晰呈现漏洞详情、修复建议以及风险评估等内容,形成从发现问题到解决问题的完整流程,为漏洞挖掘工作提供实用且有效的指引,助力从业者高效开展工作。

分享三:机器语言大模型 Machine Language Model

在网络空间的运行体系里,机器语言处于核心地位。然而,现阶段像 ChatGPT 这类广为人知的大模型,却在理解机器语言方面存在短板。与此同时,闭源软件分析更是面临重重困境:一方面,深度检测手段匮乏,面对无源码软件时检测工作举步维艰;另一方面,软件生态迁移效率低下,一旦涉及跨平台等迁移需求,往往不得不重新开发。再者,逆向工程难度颇高,不仅过度依赖国外工具,而且人工分析时准确率与效率双双受限,严重阻碍了软件国产化的推进步伐,那些由国外公司主导的行业软件,国产化替代更是难上加难,就连基于规则的恶意代码及漏洞检测,效果和效率也不尽人意。

图片

面对如此现状,华清未央 CEO 朱文宇博士分享了机器语言大模型(MLM)这一前沿成果。他通过与自然语言大模型(GPT - 4o)以及代码大模型(DeepSeek Coder V2)细致对比后发现,MLM 在反编译代码领域展现出独特优势,具备多项突出能力:

其一,卓越的代码分类能力。它能够迅速判别代码类型,精准判断代码敏感性,从而精准锁定目标代码,为逆向工程、恶意代码分析、漏洞挖掘以及性能瓶颈定位等工作提供有力辅助。例如,面对一段汇编代码,它可以给出关于其可能涉及功能的概率预估,像精准判断某函数有 75.98% 的概率与屏幕截图功能紧密相关。

其二,精准的代码相似性检测能力。这一能力广泛应用于供应链成分分析、代码克隆检测、恶意代码家族甄别、相似漏洞挖掘、补丁比对分析以及逆向工程辅助等诸多关键领域。它的工作原理是通过严谨计算函数间的语义相似性分数,进而明确哪些函数与目标函数相似,哪些与之截然不同。

其三,具备语义摘要能力。MLM能够对给定的二进制代码生成自然语言解释,用一个单词或者简短的几句话概括代码的功能语义,辅助分析人员快速理解代码语义,并为模块,程序,文件的整体摘要提供基础。

其四,出色的语义恢复能力。该能力在逆向工程、恶意代码分析、漏洞挖掘等工作中发挥关键作用,比如针对给定的汇编代码,它能够进行反编译操作,将其转换为类 C 语言代码,尽可能还原代码背后的逻辑,当然,由于汇编代码本身的复杂性以及上下文较强的依赖性,还原结果或许无法做到百分之百精准。

分享四:模糊测试技术与AI的前沿探索

在不同的应用场景下,Fuzzing 技术始终面临着使用门槛过高的难题。这要求测试人员必须对被测项目有着极为深入的了解,过程中涉及大量的人工操作,并且对测试人员自身素质提出了严苛要求。幸运的是,大语言模型(LLM)的诞生为突破这一困境带来了曙光,有望降低 Fuzzing 的使用门槛。云起无垠引擎负责人李唯聚焦于 AI 在源码和固件这两个关键领域的探索实践,致力于全方位提升 Fuzzing 的效率与效果,力求挖掘出更多隐藏的安全漏洞。

源码模糊测试方面,传统的模糊测试驱动生成存在诸多难点。一方面,人工编写成本居高不下,测试人员不仅需要人工识别库的攻击面,还要编写符合接口调用逻辑的复杂测试驱动,为了触发更多被测试代码,往往还得设法增加驱动的复杂度,同时更要精准引入合适的头文件和库,并确保整个编译链接过程顺利通过。另一方面,静态分析的准确率偏低且误报率颇高,在识别某些接口参数间的语义联系时力不从心,想要依据程序结构信息构造合理的上下文更是困难重重。

图片

鉴于此,李唯表示,结合静态分析技术与自动编译链接框架,我们精心设计了基于 LLM 生成 Fuzz 驱动的创新框架,这一框架让测试更加高效、精准。

图片

在固件模糊测试与 AI 的结合探索,李唯表示,我们选择了种子生成优化这一方向。具体实施策略如下:

图片

首先,充分发挥大模型强大的理解能力,对 BusyBox 中集成的各类工具展开深入剖析,力求精准把握每一种工具的使用方式。

其次,依据不同工具各自的特点,利用大模型针对性地生成与之适配的测试数据。

随后,将这些初始数据进行专业的种子清洗。通过严谨筛选,去除那些无效或干扰性强的数据,只保留真正合适、最具潜力的数据作为最终用于测试的种子。

最后,调用AFL,凭借其专业性能,利用筛选出的优质种子开启全面测试流程。如此一来,便能为固件的安全漏洞检测注入强劲动力,保障固件在复杂多变的运行环境中维持稳定可靠的状态。

圆桌讨论

在圆桌环节,奇安信安全研究员尹斌、华清未央 CEO 朱文宇、长亭科技联合创始人龚杰、云起无垠 CEO 沈凯文以及前华为高级安全专家、简世咨询高级顾问孙志敏围绕“大模型赋能漏洞”进行了重点探讨。

图片

1. 目前AI编程越来越火,比如像cursor、codeium之类的AI编辑器出现以后,写出来的代码是不是就天然和安全了?是不是漏洞挖掘就没那么重要了?

2. 现在大模型的能力越来越强了。在科研界和工业界,有没有可能在未来通过大模型的预测和分析能力,就能把漏洞挖掘问题彻底解决掉?是哪些因素影响了直接使用大模型进行漏洞挖掘的效果?

3. 除了漏洞挖掘,漏洞的可利用性验证、漏洞的修复也是从业者们非常关注的点。各位专家认为现在的漏洞自动化验证和修复存在的最大瓶颈是什么?大模型的出现给漏洞验证和漏洞修复带来了怎样的能力提升?

写在最后

此次活动旨在通过行业专家的经验分享和思维碰撞,促进 AI 驱动的漏洞挖掘技术不断进步,为筑牢国家网络安全屏障贡献智慧和力量。后续安全极客也将针对本期活动四位嘉宾的分享与圆桌讨论带来更详细的内容整理,欢迎大家的持续关注。

未来,安全极客社区也将围绕“AI+Security” 开展更多相关主题活动,汇聚更多行业专家、分享更多技术干货,共同促进行业发展。

相关文章:

“AI+Security”系列第4期(一)之“洞” 见未来:AI 驱动的漏洞挖掘新范式

在数字化浪潮下,安全漏洞问题日益严峻,成为各行业发展的重大挑战。近日,“AISecurity” 系列第 4 期线下活动于北京成功举办,聚焦 “洞” 见未来:AI 驱动的漏洞挖掘新范式,汇聚了安全领域的众多专家。 本次…...

安卓蓝牙扫描流程

目录 系统广播 流程图 源码跟踪 系统广播 扫描开启广播:BluetoothAdapter.ACTION_DISCOVERY_STARTED "android.bluetooth.adapter.action.DISCOVERY_STARTED";扫描关闭广播:BluetoothAdapter.ACTION_DISCOVERY_FINISHED "android.b…...

【视觉惯性SLAM:对极几何】

对极几何(Epipolar Geometry)介绍 对极几何是立体视觉中的核心内容之一,它描述了两个相机在观察同一个三维场景时,成像平面之间的几何关系。对极几何能够约束图像中对应点的位置关系,是双目立体匹配、三维重建、以及位…...

Stream `Collectors.toList()` 和 `Stream.toList()` 的区别(Java)

Stream Collectors.toList() 和 Stream.toList() 的区别 问题背景 在以下代码中: Test void test() {JSONArray nodes new JSONArray();String[] names {"df1", "df2", "df3"};for (String name : names) {JSONObject obj new …...

【Python知识】Python面向对象编程知识

Python面向对象编程知识 概述1. 类(Class)2. 对象(Object)3. 封装(Encapsulation)4. 继承(Inheritance)5. 多态(Polymorphism)6. 抽象(Abstractio…...

安卓帧率获取

背景 性能优化,经常用到一些指标,诸如帧率、功耗等。对于普通app来讲, 之前一直使用gfxinfo指令获取丢帧率。但是这个指令无法获取游戏的帧率,查阅资料,发现SurfaceFlinger可以获取游戏帧率。 帧率获取原理 获取当前f…...

shell脚本(全)

shell脚本概述 第一个shell脚本 shell注释 shell变量 shell位置参数 shell字符串 shell内置命令 shell命令替换 输出 流程控制IF export命令 退出脚本 运行Shell脚本 实例导航 shell脚本概述 在说什么是shell脚本之前,先说说什么是shell。 从程序员的…...

Flask-----SQLAlchemy教程

存session session[username] username # 存储数据到 session 取session username session.get(username) render_template return render_template(index.html, usernameAlice),渲染一个包含 username 变量的模板。 redirect return redirect(url_for(profil…...

【C++11】可变模板参数

目录 可变模板的定义方式 参数包的展开方式 递归的方式展开参数包 STL中的emplace相关接口函数 STL容器中emplace相关插入接口函数 ​编辑 模拟实现:emplace接口 C11的新特性可变参数模板能够让您创建可以接受可变参数的函数模板和类模板,相比 C9…...

.NET开发人员学习书籍推荐

作为一名.NET开发人员,掌握相关技术是提升开发能力和拓展职业发展的关键。无论你是刚入门的新人,还是希望精进技术的资深开发者,选择合适的学习资源至关重要。下面是一些经典且实用的学习书籍推荐,帮助你在C#、SQL、前端开发等方面…...

jupyter切换内核方法配置问题总结

下面这个博客总结了3种不同的方法,很有调理,推荐尝试 【最全指南】如何在 Jupyter Notebook 中切换/使用 conda 虚拟环境? !!! 注意使用上面介绍的ipykernel方法2, 要在每一个希望被jupyter识别到的环境内【分别】安装ipykernel以及添加配置 …...

SVM理论推导

本文介绍支持向量机(SVM)的理论推导。 一、SVM 的基本思想 SVM 的目标是找到一个最优超平面,将样本分为不同的类别,并最大化类别间的间隔。 1. 线性可分情况下: 在特征空间中找到一个超平面,使得&#…...

如何永久解决Apache Struts文件上传漏洞

Apache Struts又双叒叕爆文件上传漏洞了。 自Apache Struts框架发布以来,就存在多个版本的漏洞,其中一些漏洞涉及到文件上传功能。这些漏洞可能允许攻击者通过构造特定的请求来绕过安全限制,从而上传恶意文件。虽然每次官方都发布补丁进行修…...

【Java数据结构与算法】第10-14章

第10章 树结构的基础部分 10.1 二叉树 10.1.1 为什么需要树这种数据结构 10.1.2 树示意图 10.1.3 二叉树的概念 10.1.4 二叉树遍历的说明 10.1.5 二叉树遍历应用实例(前序,中序,后序) 10.1.6 二叉树-查找指定节点 思路图解 10.1.7 二叉树-删除节点 package com.atguigu.tree;…...

MacOS M3源代码编译Qt6.8.1

编译时间过长,如果不想自己编译,可以通过如果网盘进行下载: 链接: https://pan.baidu.com/s/17lvF5jQ-vR6vE-KEchzrVA?pwdts26 提取码: ts26 在macOS上编译Qt 6需要一些前置步骤和工具。以下是编译Qt 6的基本步骤: 安装Xcode和…...

3.银河麒麟V10 离线安装Nginx

1. 下载nginx离线安装包 前往官网下载离线压缩包 2. 下载3个依赖 openssl依赖,前往 官网下载 pcre2依赖下载,前往Git下载 zlib依赖下载,前往Git下载 下载完成后完整的包如下: 如果网速下载不到请使用网盘下载 通过网盘分享的文件…...

实现 QTreeWidget 中子节点勾选状态的递归更新功能只影响跟节点的状态父节点状态不受影响

在 Qt 开发中,QTreeWidget 提供了树形结构的显示和交互功能。为了实现某个子节点勾选或取消勾选时,只影响当前节点及其子节点的状态,同时递归更新父节点的状态以正确显示 Qt::PartiallyChecked 或 Qt::Checked,我们可以借助 Qt 的…...

ubuntu24.04使用opencv4

ubuntu24.04LTS自带opencv4.5代码实例 //opencv_example.cpp #include <opencv2/opencv.hpp> #include <iostream>int main() {// 读取图像cv::Mat img cv::imread("image.jpg", cv::IMREAD_COLOR);if (img.empty()) {std::cerr << "无法读…...

R语言数据分析案例46-不同区域教育情况回归分析和探索

一、研究背景 教育是社会发展的基石&#xff0c;对国家和地区的经济、文化以及社会进步起着至关重要的作用。在全球一体化进程加速的今天&#xff0c;不同区域的教育发展水平呈现出多样化的态势。这种差异不仅体现在教育资源的分配上&#xff0c;还表现在教育成果、教育投入与…...

flink sink doris

接上文&#xff1a;一文说清flink从编码到部署上线 网上关于flink sink drois的例子较多&#xff0c;大部分不太全面&#xff0c;故本文详细说明&#xff0c;且提供完整代码。 flink doris版本对照表 1.添加依赖 <!--doris cdc--><!-- 参考&#xff1a;"https…...

《探索 Apache Spark MLlib 与 Java 结合的卓越之道》

在当今大数据与人工智能蓬勃发展的时代&#xff0c;Apache Spark MLlib 作为强大的机器学习库&#xff0c;与广泛应用的 Java 语言相结合&#xff0c;为数据科学家和开发者们提供了丰富的可能性。那么&#xff0c;Apache Spark MLlib 与 Java 结合的最佳实践究竟是什么呢&#…...

Net9解决Spire.Pdf替换文字后,文件格式乱掉解决方法

官方文档 https://www.e-iceblue.com/Tutorials/Spire.PDF/Program-Guide/Text/Find-and-replace-text-on-PDF-document-in-C.html C# 在 PDF 中查找替换文本 原文件如下图&#xff0c;替换第一行的新编码&#xff0c;把41230441044替换为41230441000 替换代码如下&#xff…...

Kafka可视化工具 Offset Explorer (以前叫Kafka Tool)

数据的存储是基于 主题&#xff08;Topic&#xff09; 和 分区&#xff08;Partition&#xff09; 的 Kafka是一个高可靠性的分布式消息系统&#xff0c;广泛应用于大规模数据处理和实时, 为了更方便地管理和监控Kafka集群&#xff0c;开发人员和运维人员经常需要使用可视化工具…...

青少年编程与数学 02-004 Go语言Web编程 21课题、应用部署

青少年编程与数学 02-004 Go语言Web编程 21课题、应用部署 一、应用部署二、GoWeb部署到WINDOWS系统中1. 安装Go环境2. 创建并编写Go Web应用3. 初始化Go模块4. 编译Go Web应用5. 配置和运行Nginx6. 运行Go Web应用7. 访问应用总结 三、GoWeb部署到LINUX系统中1. 准备Linux服务…...

009-spring-bean的实例化流程

1 spring容器初始化时&#xff0c;将xml配置的bean 信息封装在 beandefinition对象 2 所有的beandefinition存储在 beandefinitionMap的map集合中 3 spring对map进行遍历&#xff0c;使用反射创建bean实例对象 4 创建好的bean存在名为singletonObjects的map集合中 5 调用ge…...

Timsort算法

Timsort算法是一种混合、稳定且高效的排序算法&#xff0c;源自归并排序和插入排序。它通过将已识别的子序列&#xff08;称为“run”&#xff09;与现有run合并直到满足某些条件来完成排序。以下是对Timsort算法的详细解释及举例说明&#xff1a; Timsort算法概述 混合性&…...

uniapp+vue 前端防多次点击表单,防误触多次请求方法。

最近项目需求写了个uniappvue前端H5,有个页面提交表单的时候发现会有用户乱点导致数据库多条重复脏数据。故需要优化&#xff0c;多次点击表单只请求一次。 思路: 直接调用uni.showToast&#xff0c;点完按钮跳一个提交成功的提示。然后把防触摸穿透mask设置成true就行&#…...

八、Hbase

Hbase 一、NoSQL非关系型数据库简介1.NoSQL 的起因2.NoSQL 的特点3.NoSQL 面临的挑战4.NoSQL 的分类 二、HBase数据库概述1.HBase数据库简介2.HBase数据模型简介3.HBase数据模型基本概念4.Hbase概念视图(逻辑视图)5.Hbase物理视图6.Hbase主要组件7.Hbase安装8.Hbase的数据读写流…...

ubuntu安装sublime安装与免费使用

1. ubuntu安装sublime 参考官网: Linux Package Manager Repositories 2. 破解过程 打开如下网址,打开/opt/sublime_text/sublime_text https://hexed.it/ 3. 替换在hexed打开的文件中查找并替换: 4180激活方法 使用二进制编辑器 8079 0500 0f94 c2替换为 c641 05…...

Onedrive精神分裂怎么办(有变更却不同步)

Onedrive有时候会分裂&#xff0c;你在本地删除文件&#xff0c;并没有同步到云端&#xff0c;但是本地却显示同步成功。 比如删掉了一个目录&#xff0c;在本地看已经删掉&#xff0c;onedrive显示已同步&#xff0c;但是别的电脑并不会同步到这个删除操作&#xff0c;在网页版…...

图像裁剪与批量推理:解决分割和变化检测中的大图处理问题

引言 在分割、变化检测等任务中&#xff0c;我们经常会遇到一个问题&#xff1a;模型的输入尺寸是固定且较小的&#xff08;如256256或512512&#xff09;。当需要处理分辨率较高的大图时&#xff0c;直接输入到模型中显然是不切实际的。那么&#xff0c;如何高效地解决这个问…...

第4章 函数

2024年12月25日一稿 4.1 函数的定义 4.1.1 函数和像 4.1.2 函数的性质 4.1.3 常用函数 4.2 复合函数和反函数 4.2.1 复合函数 4.2.2 反函数 4.3 特征函数与模糊子集 4.4 基数的概念 4.4.1 后继与归纳集 4.4.2 自然数&#xff0c;有穷集&#xff0c;无穷集 4.4.3 基数 4.5 可数…...

【JavaEE进阶】Spring传递请求参数

目录 &#x1f38d;序言 &#x1f334;传递单个参数 &#x1f340;传递多个参数 &#x1f384;传递对象 &#x1f333;后端参数重命名&#xff08;后端参数映射&#xff09; &#x1f6a9;ReuqestParam注解 &#x1f38d;序言 访问不同的路径,就是发送不同的请求.在发送…...

在跨平台开发环境中构建高效的C++项目:从基础到最佳实践20241225

在跨平台开发环境中构建高效的C项目&#xff1a;从基础到最佳实践 引言 在现代软件开发中&#xff0c;跨平台兼容性和高效开发流程是每个工程师追求的目标。尤其是对于 C 开发者&#xff0c;管理代码的跨平台构建以及调试流程可能成为一项棘手的挑战。在本文中&#xff0c;我…...

无人零售及开源 AI 智能名片 S2B2C 商城小程序的深度剖析

摘要&#xff1a;本文聚焦无人零售这一新兴零售模式及其发展浪潮中崛起的开源 AI 智能名片 S2B2C 商城小程序。深入阐述无人零售的发展态势&#xff0c;细致剖析其驱动因素、现存问题&#xff0c;全面详细介绍小程序的功能特性、应用优势以及对无人零售的潜在价值&#xff0c;旨…...

PCL点云库入门——PCL库点云滤波算法之直通滤波(PassThrough)和条件滤波(ConditionalRemoval)

0、滤波算法概述 PCL点云库中的滤波算法是处理点云数据不可或缺的一部分&#xff0c;它们能够有效地去除噪声、提取特征或进行数据降维。例如&#xff0c;使用体素网格滤波&#xff08;VoxelGrid&#xff09;可以减少点云数据量&#xff0c;同时保留重要的形状特征。此外&#…...

v语言介绍

V 语言是一种多用途的编程语言&#xff0c;可以用于前端开发、后端开发、系统编程、游戏开发等多个领域。它的设计哲学是提供接近 C 语言的性能&#xff0c;同时简化开发过程并提高代码的安全性和可读性。接下来我会详细介绍 V 在前后端开发中的应用&#xff0c;并给出一个具体…...

GPT-O3:简单介绍

GPT-O3&#xff1a;人工智能领域的重大突破 近日&#xff0c;OpenAI发布了其最新的AI模型GPT-O3&#xff0c;这一模型在AGI评估中取得了惊人的成绩&#xff0c;展现出强大的能力和潜力。GPT-O3的出现标志着人工智能领域的重大进步&#xff0c;预计将在2025年实现更大的突破。 …...

重温设计模式--适配器模式

文章目录 适配器模式&#xff08;Adapter Pattern&#xff09;概述适配器模式UML图适配器模式的结构目标接口&#xff08;Target&#xff09;&#xff1a;适配器&#xff08;Adapter&#xff09;&#xff1a;被适配者&#xff08;Adaptee&#xff09;&#xff1a; 作用&#xf…...

API部署大模型

由于生产测试环境的服务器配置较低 不能够支撑大模型运行的配置 所以需要将大模型封装部署在A服务器上 在B服务器上进行调用 封装时可以使用FastAPI与Websocket两种通信方式进行通信 Websocket 在A服务器端部署大模型&#xff08;服务端&#xff09; import asyncio import …...

Linux -- 同步与条件变量

目录 同步 条件变量 pthread_cond_t pthread_cond_init&#xff08;初始化条件变量&#xff09; pthread_cond_destroy&#xff08;销毁条件变量&#xff09; pthread_cond_wait&#xff08;线程等待条件变量&#xff09; 重要提醒 pthread_cond_boardcast&#xff08…...

Linux之ARM(MX6U)裸机篇----1.开发环境搭建

下载开启FTP服务 作用&#xff1a;用于电脑与linux系统之前文件传输 如上&#xff0c;编辑完成后重启 Window下FTP客户端安装使用http://www.filezilla.cn/download网址下载 新建网络连接站点 主机后写虚拟机的ip地址&#xff0c;用ifconfig查出ipv4的地址 笔记本电脑中虚拟…...

【C语言】结构体模块化编程

在模块化编程中&#xff0c;结构体作为数据存储的主要方式之一&#xff0c;它不仅用于存储数据&#xff0c;还帮助实现代码的封装与隐私保护。通过将结构体定义放在 .c 文件中并使用 get_ 和 set_ 函数进行访问&#xff0c;我们可以实现对结构体数据的保护&#xff0c;同时降低…...

SpringCloudAlibaba技术栈-Nacos

1、什么是Nacos&#xff1f; Nacos是个服务中心&#xff0c;就是你项目每个功能模块都会有个名字&#xff0c;比如支付模块,我们先给这个模块起个名字就叫paymentService,然后将这个名字和这个模块的配置放到Nacos中&#xff0c;其他模块也是这样的。好处是这样能更好地管理项…...

Windows11家庭版启动Hyper-V

Hyper-V 是微软的硬件虚拟化产品&#xff0c;允许在 Windows 上以虚拟机形式运行多个操作系统。每个虚拟机都在虚拟硬件上运行&#xff0c;可以创建虚拟硬盘驱动器、虚拟交换机等虚拟设备。使用虚拟化可以运行需要较旧版本的 Windows 或非 Windows 操作系统的软件&#xff0c;以…...

《信管通低代码信息管理系统开发平台》Linux环境安装说明

1 简介 信管通低代码信息管理系统应用平台提供多环境软件产品开发服务&#xff0c;包括单机、局域网和互联网。我们专注于适用国产硬件和操作系统应用软件开发应用。为事业单位和企业提供行业软件定制开发&#xff0c;满足其独特需求。无论是简单的应用还是复杂的系统&#xff…...

第一节:电路连接【51单片机-L298N-步进电机教程】

摘要&#xff1a;本节介绍如何搭建一个51单片机L298N步进电机控制电路&#xff0c;所用材料均为常见的模块&#xff0c;简单高效的方式搭建起硬件环境 一、硬件清单 ①51单片机模块 ②恒流模块 ③开关电源 ④L298N模块 ⑤二相四线步进电机 ⑥电线若干 二、接线 三、L298N模…...

YoloDotNet 识别图像中特定关键点的位置

文章目录 1、初始化 Yolo 对象2、加载图像与检测关键点3、处理检测结果4、自定义关键点绘制和处理5、注意事项1、初始化 Yolo 对象 设置 YoloOptions,包括模型路径、模型类型(如果有专门的关键点检测模型类型则指定)、GPU 使用相关参数等。例如: var yoloOptions = new Yo…...

山景BP1048增加AT指令,实现单片机串口控制播放音乐(一)

1、设计目的 山景提供的SDK是蓝牙音箱demo&#xff0c;用户使用ADC按键或者IR遥控器&#xff0c;进行人机交互。然而现实很多场景&#xff0c;需要和单片机通信&#xff0c;不管是ADC按键或者IR接口都不适合和单片机通信。这里设计个AT指令用来和BP1048通信。AT指令如下图所示…...

Leetcode3218. 切蛋糕的最小总开销 I

题目描述&#xff1a; 有一个 m x n 大小的矩形蛋糕&#xff0c;需要切成 1 x 1 的小块。 给你整数 m &#xff0c;n 和两个数组&#xff1a; horizontalCut 的大小为 m - 1 &#xff0c;其中 horizontalCut[i] 表示沿着水平线 i 切蛋糕的开销。verticalCut 的大小为 n - 1 …...