DeepSeek赋能Nuclei:打造网络安全检测的“超级助手”
引言
各位少侠,周末快乐,幸会幸会!
今天唠一个超酷的技术组合——用AI大模型给Nuclei开挂,提升漏洞检测能力!
想象一下,当出现新漏洞时,少侠们经常需要根据Nuclei模板,手动扒漏洞文章、敲代码,而既然现在有了DeepSeek等AI大模型,让它们成为“智能小秘书”,喝口咖啡的工夫,模板就自动生成了!
值得注意的是,Github上也有各式各样的Nuclei的自建poc仓库,如何快速集成,确保自己的Nuclei背后使用的poc仓库最大最全最准确,也是需要思考的问题!
当然,隐侠也在构建面向业内的知识库、漏洞库,以及Github上的poc库,少侠们敬请期待,不日将会与大家见面。
接下来,就带大家看看刚刚描述的AI大模型与Nuclei的“神仙组合”到底是怎么玩转网络安全检测的!
为啥要让DeepSeek和Nuclei组CP?
Nuclei的模块化检测范式与工程瓶颈
作为漏洞检测标准工具,Nuclei通过YAML模板实现检测逻辑与引擎解耦,这种"检测即代码"(Detection as Code)的模式使其具备以下特性:
-
原子化检测单元:每个模板对应CWE、CVE等漏洞特征,支持组合式检测策略。
-
跨平台兼容性:基于HTTP/RAW协议层的抽象,实现从Web应用到IoT设备的统一检测。
-
敏捷响应能力:无需重新编译即可动态加载新检测规则。
但模板编写存在显著工程瓶颈:
-
知识转化延迟:人工分析漏洞报告→提取攻击向量→编码为匹配规则的平均耗时约37分钟/模板。
-
特征覆盖盲区:2024年Log4j2漏洞爆发时,主流模板库覆盖率仅68%,导致企业暴露攻击面窗口期延长。
模版举例:
id: CVE-2023-25157info:name: GeoServer OGC Filter - SQL Injectionauthor: ritikchaddha,DhiyaneshDK,iamnoooob,rootxharshseverity: criticaldescription: |GeoServer isanopensource software server written in Java that allows users to share andedit geospatial data. GeoServer includes support for the OGC Filter expression languageand the OGC Common Query Language (CQL) as part of the Web Feature Service (WFS) and Web Map Service (WMS) protocols. CQL is also supported through the Web Coverage Service (WCS) protocol for ImageMosaic coverages. Users are advised to upgrade to either version2.21.4, orversion2.22.2toresolve this issue. Users unable to upgrade should disable the PostGIS Datastore *encode functions* setting to mitigate ``strEndsWith``, ``strStartsWith`` and ``PropertyIsLike `` misuse and enable the PostGIS DataStore *preparedStatements* setting to mitigate the ``FeatureId`` misuse.reference:- https://twitter.com/parzel2/status/1665726454489915395- https://nvd.nist.gov/vuln/detail/CVE-2023-25157- https://github.com/win3zz/CVE-2023-25157- https://github.com/geoserver/geoserver/security/advisories/GHSA-7g5f-wrx8-5ccfclassification:cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Hcvss-score: 9.8cve-id: CVE-2023-25157cwe-id: CWE-89cpe: cpe:2.3:a:osgeo:geoserver:*:*:*:*:*:*:*:*metadata:verified: "true"shodan-query: title:"geoserver"
tags: cve,cve2023,geoserver,ogc,sqli,intrusivehttp:- raw:- |GET /geoserver/ows?service=WFS&version=1.0.0&request=GetCapabilities HTTP/1.1Host: {{Hostname}}- |GET /geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName={{name}}&maxFeatures=50&outputFormat=csv HTTP/1.1Host: {{Hostname}}- |GET /geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName={{name}}&CQL_FILTER=strStartswith({{column}},%27%27%27%27)=true HTTP/1.1Host: {{Hostname}}stop-at-first-match: trueiterate-all: truematchers-condition: andmatchers:- type: wordpart: body_3words:- "SQL SELECT"- type: wordpart: header_3words:- text/xmlextractors:- type: regexpart: body_1group: 1name: nameregex:- '<FeatureType><Name>(.*?)<\/Name><Title>'internal: true- type: regexpart: body_2group: 1name: columnregex:- 'FID,([aA-zZ_]+),'internal: true
以DeepSeek为代表的通用大模型,则可提升这一过程的效率。利用如下的结构化提示,将输出空间限制在有限维度,结合以下技术保障确定性:
-
参数冻结机制:对HTTP方法、匹配条件等关键字段进行类型约束
-
防御性解析:AI输出经语法树校验和沙箱验证
-
知识蒸馏:基于漏洞数据库模型,提升CWE特征识别准确率
# 提示工程示例
prompt_template = """
基于漏洞报告生成Nuclei模板(JSON格式):
输入特征:
- 漏洞路径:{endpoint}
- 有效载荷样本:{payload_sample}
- CVSS评分:{cvss_score}输出约束:
1. 必须包含{BaseURL}占位符
2. 匹配规则需包含状态码、关键词、正则三元组
3. 严重级别按CVSS v3.1划分
"""
典型场景:漏洞文摘->POC,从“手搓”到“秒产”
1. 漏洞文章“一键抓取”
本文基于Python做实现,基于requests库访问漏洞文章网址,再靠BeautifulSoup把网页“拆解”得明明白白。
要是遇到网站设的“反爬虫关卡”(返回403状态码),它还会“机智”地重试3次,绝不轻易放弃!最终把文章里的漏洞路径、攻击Payload这些关键信息全都“挖”出来。
实现代码:
def _crawl_article(self, url):for retry in range(3):try:resp = self.session.get(url, timeout=20)resp.raise_for_status()if resp.status_code == 403:raise RuntimeError("Anti-bot triggered")soup = BeautifulSoup(resp.text, 'lxml')return {'title': self._extract_title(soup),'cve': self._extract_cve(soup),'endpoint': self._find_vuln_path(soup),'payloads': self._extract_payloads(soup),'references': self._find_references(soup),'raw_html': resp.text[:5000] # Limit content size}except requests.RequestException as e:if retry == 2:raise RuntimeError(f"Request failed after 3 attempts: {str(e)}")self.logger.warning(f"Retrying ({retry+1}/3)...")
2. DeepSeek的“魔法翻译”
这里是DeepSeek大显身手的地方!我们给它“喂”一段精心设计的提示模板,就像给它下达任务指令:“根据这些漏洞信息,用JSON格式生成Nuclei模板参数!” 为了防止网络不稳定掉链子,同样设置了3次重试。DeepSeek接收到指令后,一顿“分析猛如虎”,很快就能返回包含漏洞ID、匹配规则等信息的参数。
prompt=f"""根据漏洞报告生成Nuclei模板(JSON格式):输入特征:
- 漏洞路径:{content['endpoint']}
- 有效载荷:
{chr(10).join(f'- {p}'forp in content['payloads'][:2])}
- 参考链接:
{chr(10).join(content['references'][:2])}输出要求:
1. 严重等级按CVSS评分划分
2. 必须包含{{{{BaseURL}}}}变量
3. 包含状态码、关键词、正则匹配输出格式:
{{
"id": "漏洞ID",
"name": "漏洞名称",
"method": "HTTP方法",
"paths": ["攻击路径"],
"matchers": {{"status": 200,"keywords": ["特征关键词"],"regex": ["正则表达式"] }},
"severity": "严重等级",
"references": ["参考链接"],
"description": "漏洞描述",
"fofa_query": "FOFA查询语句",
"tags": ["漏洞类型"]
}}
"""def _analyze_with_ai(self, content):prompt = self._build_prompt(content)for attempt in range(3):try:response = self.client.chat.completions.create(model="deepseek-chat",messages=[{"role": "system", "content": "严格使用JSON格式输出"},{"role": "user", "content": prompt}],temperature=0.2,max_tokens=2000,response_format={"type": "json_object"})return self._process_ai_response(response.choices[0].message.content)except Exception ase:if attempt == 2:raise RuntimeError(f"API request failed: {str(e)}")self.logger.warning(f"Retrying API call ({attempt+1}/3)...")
3. 模板“拼装大师”上线
这个
方法就像个“模板拼装大师”,把DeepSeek返回的参数“组装”成完整的Nuclei模板。
它会先把基本信息、请求方法这些“零件”摆好,要是参数里有正则匹配需求,还会自动添加对应的“正则匹配模块”。
最后把模板以YAML格式保存到指定文件夹,文件名还带着时间戳,方便管理!
def _build_template(self, ai_data):"""构建Nuclei模板文件"""template = {"id": ai_data.get("id", "auto-generated"),"info": {"name": ai_data.get("name", "Unknown Vulnerability"),"author": "AutoPOCGenerator","severity": ai_data.get("severity", "medium"),"description": ai_data.get("description", "Generated by DeepSeek AI"),"reference": ai_data.get("references", []),"tags": ai_data.get("tags", ["ai-generated"]),"metadata": {"fofa-query": ai_data.get("fofa_query", "")}},"requests": [{"method": ai_data.get("method", "GET"),"path": ai_data.get("paths", ["{{BaseURL}}"]),"matchers-condition": "and","matchers": [{"type": "status", "status": [ai_data["matchers"]["status"]]},{"type": "word", "words": ai_data["matchers"]["keywords"]}]}]}# 添加正则匹配if ai_data["matchers"].get("regex"):template["requests"][0]["matchers"].append({"type": "regex", "regex": ai_data["matchers"]["regex"]})# 生成文件名template_dir = Path(self.config['paths']['template_dir'])timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")filename = template_dir / f"{template['id']}_{timestamp}.yaml"# 写入文件with open(filename, 'w', encoding='utf-8') as f:yaml.dump(template, f, allow_unicode=True, sort_keys=False)self.logger.info(f"Template saved: {filename}")return str(filename.resolve())
如此这番,从一篇漏洞文章变成一个可利用的nuclei poc的工作就完成了。
值得注意的是,AI输出毕竟有其不稳定性,一是需要人工确认poc内容是否与漏洞文章中的描述一致,二是可以使用如下命令,检测poc能否正常运行:
./nuclei -t ./nuclei_templates/path-traversal-vite-project_20250417_2313.yaml -validate
Nuclei的“私人定制”更新与扫描
1.带配置的“智能更新”
读取相关配置,找到Nuclei可执行文件的位置。要是配置里开了代理,它会自动在更新命令里加上代理参数,就像给Nuclei更新加上“专属通道”。执行完更新命令,还会把结果详细记录到日志里,更新出问题了一眼就能发现。
def update_nuclei():try:config = load_config()nuclei_binary = Path(config["paths"]["nuclei_binary"])ifnot nuclei_binary.exists():raise FileNotFoundError(f"Nuclei可执行文件不存在:{nuclei_binary}")cmd = [str(nuclei_binary.resolve()), "-update"]if config["proxy"]["enable"]:cmd.extend(["-proxy", config["proxy"]["address"]])logging.info("已启用代理更新")result = subprocess.run(cmd,check=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT,text=True)logging.info(f"模板更新成功\n{result.stdout}")except subprocess.CalledProcessError as e:error_msg = f"更新失败:{e.output if e.output else '无错误详情'}"logging.error(error_msg)except Exception as e:logging.error(f"未知错误:{str(e)}")
2. 扫描命令“私人订制”
build_command
函数能根据我们的需求,生成Nuclei扫描命令。不管你是想扫描单个目标,还是指定多个POC模板路径,它都能搞定!它会先检查POC路径是不是真的存在,再把代理、速率限制这些参数按配置加上,就像给扫描任务穿上“定制装备”。
def build_command(config, target_file, pocs):cmd = ['./'+str(NUCLEI_BINARY),'-list', str(target_file),'-rate-limit', '100','-timeout', '30']if pocs:validated_pocs = [ ]for poc_path in pocs:path = Path(poc_path).resolve()if not path.exists():raise FileNotFoundError(f"POC路径不存在: {path}")validated_pocs.append(str(path))cmd.extend(['-t', ','.join(validated_pocs)])if config['proxy'].get('enable', "True"):cmd.extend(['-proxy', config['proxy']['address']])print(cmd)return cmd
由此,我们的Nuclei就像不断被磨砺过的利剑,始终保持锋利的模样。
企业级模板管理:模板的“智能仓库”
1. 模板仓库“自动补货”
这里构建的代码,就像个“仓库管理员”,定期从GitHub上找最新的Nuclei模板仓库。通过GitHub API搜索,筛选出30天内更新的仓库,用异步操作批量克隆或更新到本地,保证我们的模板库永远“新鲜”。
async def dynamic_repo_discovery(self):if not self.config['ENABLE_STAGE1']:print(f"\n{'='*30} 已跳过仓库同步阶段 {'='*30}")returnprint(f"\n{'='*30} 阶段1: 动态仓库同步 {'='*30}")new_repos = await self._fetch_github_repos()self._update_repo_registry(new_repos)with open(REPO_FILE) as f:urls = {line.strip() for line in f if line.strip()}tasks = [self._async_git_ops(url) for url in urls]batch_size = self.config['GIT_PARALLEL'] * 2for i in range(0, len(tasks), batch_size):await asyncio.gather(*tasks[i:i+batch_size])
2. 模板“去重分类”大作战
通过计算文件的SHA256哈希值,把重复的模板“揪”出来删掉,避免做无用功。并根据模板里的标签信息,把模板自动分到不同文件夹,下次想用某个类型的模板,直接去对应文件夹找就行,超方便!
3. 模板“质量检测”与索引生成
基于Nuclei的-validate
选项给模板“体检”,把有问题的模板淘汰掉。最后生成一个索引文件poc.txt
,记录所有有效模板的位置,就像一本模板“导航手册”。
实战效果:真的能打!
我们在模拟环境和公开漏洞靶场做了测试。生成模板速度比人工快了好几倍,而且93%的模板直接使用或者微调后都能准确检测到漏洞。
这波DeepSeek和Nuclei的组合,绝对是安全检测的“王炸”!
结语
本文向少侠们介绍了AI大模型如何助力Nuclei更好使用,从poc生成、公开poc收集和使用参数优化等方面进行逐一讲解。
后面我们打算继续优化DeepSeek的提示模板,让生成的模板更精准;探索把这套思路用到更多安全场景里;再研究研究怎么让扫描速度更快。相信以后这套技术还能解锁更多“隐藏技能”,一起期待吧!
少侠们,快试试这套DeepSeek赋能Nuclei的方案,让你的漏洞学习与漏洞检测工作轻松又高效!要是在使用过程中有啥新想法、新发现,欢迎一起交流,咱们共同把网络安全防线筑得更牢!
代码已上传Github:https://github.com/EastSword/XuanyuanSword_AINuclei
相关文章:
DeepSeek赋能Nuclei:打造网络安全检测的“超级助手”
引言 各位少侠,周末快乐,幸会幸会! 今天唠一个超酷的技术组合——用AI大模型给Nuclei开挂,提升漏洞检测能力! 想象一下,当出现新漏洞时,少侠们经常需要根据Nuclei模板,手动扒漏洞文章…...
【MySQL】表的约束(主键、唯一键、外键等约束类型详解)、表的设计
目录 1.数据库约束 1.1 约束类型 1.2 null约束 — not null 1.3 unique — 唯一约束 1.4 default — 设置默认值 1.5 primary key — 主键约束 自增主键 自增主键的局限性:经典面试问题(进阶问题) 1.6 foreign key — 外键约束 1.7…...
学习深度学习是否要先学习机器学习?工程师的路径选择策略
深度学习与机器学习的关系,如同摩天大楼与地基——前者是后者的高阶延伸,但能否绕过地基直接造楼?本文从技术本质、学习曲线、应用场景三个维度剖析这一关键问题。 一、技术血脉的承继关系 概念体系同源: 损失函数、梯度下降、过拟…...
高防服务器适合哪些行业使用
在当今数字化的时代,网络安全就如同城堡的城墙,而高防服务器则是这道城墙中的坚固堡垒。那么,究竟哪些行业特别需要高防服务器这位“守护天使”的庇佑呢? 首先,金融行业绝对是高防服务器的“头号粉丝”。想象一下&…...
【Docker-16】Docker Volume存储卷
Docker Volume(存储卷) 概念比喻镜像程序的光盘(安装包)容器安装并运行后的 App卷独立的文件夹或硬盘,用来保存数据宿主机装着 Docker 的电脑或服务器,是一切的基础 一、什么是存储卷? 存储卷就是将宿主机的本地文件系统中存在…...
后端如何生成验证码
目录 🔐 一、验证码类型与用途 📸 二、图形验证码的原理(Image Captcha) 🔧 核心流程 🛠️ 示例:用 Python Pillow 生成图形验证码 📱 三、数字验证码(短信/邮箱&a…...
微服务架构下数据库范式的失效与反范式设计的崛起
在传统单体应用中,关系型数据库范式设计被认为是数据库建模的黄金标准。然而,随着企业架构向分布式系统,特别是微服务架构演进,范式化数据库设计的有效性和适应性正受到前所未有的挑战。本文将深入剖析范式设计的设计哲学…...
Redis专题
前言 一:看到你的简历上写了你的项目里面用到了redis,为啥用redis? 因为传统的关系型数据库如Mysql,已经不能适用所有的场景,比如秒杀的库存扣减,APP首页的访问流量高峰等,都很容易把数据库打崩࿰…...
Vue的模板语法——指令语法
2025/4/21 向全栈工程师迈进! 一、插值语法 之前通过插值语法,其显示的效果如下。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widt…...
【Java面试笔记:基础】1.谈谈你对Java平台的理解?
前言 Java 是历史悠久且主流的编程语言,拥有庞大的开发者群体和广泛的应用领域。通过系统学习和实践,构建扎实的 Java 知识体系,提升面试成功率 笔记核心内容 1. Java 平台的核心特性 跨平台特性:Java 的核心特性之一是“Writ…...
NestJS-Knife4j
文章目录 前言✅ 一、什么是 Knife4j?✅ 二、Knife4j 与 Swagger 对比✅ 三、NestJS-Knife4j 集成1. 安装依赖2. 配置 Swagger 与 Knife4j3. 启动应用并访问接口文档 ✅ 四、功能增强1. **接口分组**2. **请求/响应示例**3. **接口文档的美化** ✅ 五、总结 前言 N…...
Linux环境准备(安装VirtualBox和Ubuntu,安装MySQL,MySQL启动、重启和停止)
目录 安装VirtualBox和Ubuntu 安装VirtualBox 安装Ubuntu 下载Ubuntu操作系统的镜像文件 创建虚拟机 虚拟机设置 启动虚拟机,安装Ubuntu系统 Ubuntu基础设置 设置系统为中文 设置中文输入法为拼音 修改分辨率 设置缩放比例 设置息屏时间 设置root用户…...
Nebula图数据库
Nebula 通常指 Nebula Graph,是一款开源的分布式图数据库系统1。以下是其相关介绍1: 特点 高性能:能处理千亿顶点和万亿边的超大规模数据集,提供毫秒级查询延迟,在处理大规模数据时,也能维持低时延的读写和…...
基于 Vue,使用Vuex 或事件总线实现跨组件通信
在基于 Vue Element UI 的 RuoYi 系统中,如果需要在一个界面(界面 A)执行某个操作后,通知另一个界面(界面 B)刷新,可以通过 Vuex 或事件总线(Event Bus)来实现跨组件通信…...
【C++篇】string类的终章:深浅拷贝 + 模拟实现string类的深度解析(附源码)
💬 欢迎讨论:在阅读过程中有任何疑问,欢迎在评论区留言,我们一起交流学习! 👍 点赞、收藏与分享:如果你觉得这篇文章对你有帮助,记得点赞、收藏,并分享给更多对C感兴趣的…...
线性DP:最短编辑距离
Dp 状态表示 f(i,j) 集合所有将A[1~i]变成B[1~j]的操作方式属性min 状态计算 (划分) 增f(i,j)f(i,j-1)1//A[i]元素要增加,说明A前i位置与B前j-1相同删f(i,j)f(i-1,j)1//A[i]元素要删除,说明A前i…...
【全网最全】23种设计模式思维导图详解 | 含React/Vue/Spring实战案例
【全网最全】23种设计模式思维导图详解 | 含React/Vue/Spring实战案例 导图概述 本文通过高清思维导图系统梳理了23种设计模式,分为创建型、结构型、行为型三大类,并标注了各模式在主流框架(如React、Vue、Spring)中的典型应用场…...
8086微机原理与接口技术复习(1)存储器(2)接口
8086微机原理与接口技术复习(1)存储器(2)接口 存储器8086的存储空间存储器的拓展存储器的分类 接口8086I/O82558253串行通信 存储器 我们上的是嵌入式与接口技术这门课,存储器章节重点在于理解8086CPU的存储体结构&am…...
第 6 篇:衡量预测好坏 - 评估指标
第 6 篇:衡量预测好坏 - 评估指标 上一篇,我们小试牛刀,用朴素预测、平均法、移动平均法和季节性朴素预测这几种简单方法对未来进行了预测。我们还通过可视化将预测结果与真实值进行了对比。 但光靠眼睛看图来判断“哪个预测更好”往往是不…...
极刻AI搜v1.0 问一次问题 AI工具一起答
软件名:极刻AI搜 版本:v1.0 功能:囊括了互联网上比较好用的一些支持”搜索“的网站或者工具 开发平台:nodepythonweb 分类有: AI搜索(支持智能问答的AI搜索引擎) 常规搜索:ÿ…...
单片机 + 图像处理芯片 + TFT彩屏 进度条控件
进度条控件使用说明 概述 本进度条控件基于单片机 RA8889/RA6809 TFT开发,提供了简单易用的进度显示功能。控件支持多个进度条同时显示、自定义颜色、边框和标签等特性,适用于需要直观显示进度信息的各类应用场景。 特性 支持多个进度条同时显示可…...
RHCSA Linux系统 用户和组的管理
用户管理:增useradd 删userdel 改usermod 查id 组的管理:增groupadd 删groupdel 改groupmod 查groups /etc/default/useradd 即定义useradd默认参数,也定义了/etc/passwd ,/etc/shadow,/etc/group&#…...
2025年pta团队设计天梯赛题解
题解不全,望见谅 L1-1 珍惜生命 题目 前辈工程师 Martin Golding 教育我们说:“Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.”(写代码的时候,总是要…...
Vue---vue2和vue3的生命周期
核心生命周期对比 生命周期阶段Vue 2 钩子Vue 3 Composition API初始化beforeCreate无(使用 setup() 替代)初始化完成created无(使用 setup() 替代)挂载前beforeMountonBeforeMount挂载完成moun…...
C#常用LINQ
在开发时发现别人的代码使用到了LINQ十分便捷且清晰,这里记录一下常用LINQ和对应的使用。参考链接:LINQ 菜鸟教程 使用的学生类和字符串用于测试 public class Student {public int StudentID;public string StudentName;public int Age; }Student[] st…...
Java--数组的应用
一、数组的地址值 数组的地址值表示数组在内存中的位置。 [I1eb44e46 [ :表示当前是一个数组I:表示当前数组是int类型:表示一个间隔符号(固定格式)1eb44e46:数组真正的地址值(十六进制&#…...
PostgreSQL基础
一、PostgreSQL介绍 PostgreSQL是一个功能强大的 开源 的关系型数据库。底层基于C实现。 PostgreSQL的开源协议和Linux内核版本的开源协议是一样的。。BDS协议,这个协议基本和MIT开源协议一样,说人话,就是你可以对PostgreSQL进行一些封装&a…...
Linux系统管理与编程13:基于CentOS7.x的LAMP环境部署
兰生幽谷,不为莫服而不芳; 君子行义,不为莫知而止休。 一、实验目标 1.理解Apache服务器原理 2.掌握Apache服务器的配置文件 3.具备安装Mysql数据库能力 4.具备安装Apache服务器能力 5.具备PHP与数据库连接能力 6.具备Apache、Mysql、…...
浅谈AI致幻
文章目录 当前形势下存在的AI幻觉(AI致幻)什么是AI幻觉AI幻觉的类型为什么AI会产生幻觉AI幻觉的危害与影响当前应对AI幻觉的技术与方法行业与学术界的最新进展未来挑战与展望结论 当前形势下存在的AI幻觉(AI致幻) 什么是AI幻觉 …...
【架构】-- StarRocks 和 Doris 介绍与选型建议
StarRocks 和 Doris 的介绍 随着大数据分析需求的不断增长,企业对高性能、低延迟的分析型数据库提出了更高的要求。StarRocks 和 Apache Doris 是当前主流的开源 MPP(Massively Parallel Processing)数据库系统,广泛应用于实时分析、报表生成和数据仓库等场景。本文将从架…...
【SF顺丰】顺丰开放平台API对接(注册、API测试篇)
1.注册开发者账号 注册地址:顺丰企业账户中心 2.登录开发平台 登录地址:顺丰开放平台 3.开发者对接 点击开发者对接 4.创建开发对接应用 开发者应用中“新建应用”创建应用,最多创建应用限制数量5个 注意:需要先复制保存生产校验…...
C语言高频面试题——常量指针与指针常量区别
1. 常量指针(Pointer to Constant) 定义: 常量指针是指向一个常量数据的指针,即指针指向的内容不能通过该指针被修改。 语法: const int* ptr;或者: int const* ptr;解释: const修饰的是指…...
Novartis诺华制药社招入职综合能力测评真题SHL题库考什么?
一、综合能力测试 诺华制药的入职测评中,综合能力测试是重要的一部分,主要考察应聘者的问题解决能力、数值计算能力和逻辑推理能力。测试总时长为46分钟,实际作答时间为36分钟,共24题。题型丰富多样,包括图形变换题、分…...
网页下载的m3u8格式文件使用FFmpeg转为MP4
FFmpeg 是一个强大的开源音视频处理工具,可以直接将 M3U8 合并并转换为 MP4。 1.步骤: 下载 FFmpeg 官网:https://ffmpeg.org/ Windows 用户可以直接下载 静态构建版本(Static Build),解压后即可使用。 2…...
Java 并发包核心机制深度解析:锁的公平性、异步调度、AQS 原理全解
🧠 Java 并发包核心机制深度解析:锁的公平性、异步调度、AQS 原理全解 Java 并发编程的地基是 java.util.concurrent,但真正驱动这个系统的,是它背后隐藏的三根支柱: ReentrantLock 的公平/非公平调度策略Completabl…...
μC/OS 版本演进过程 | uC/OS-II 和 uC/OS-III 有什么区别?
uC/OS 系列是由 Jean J. Labrosse 开发的一套嵌入式实时操作系统(RTOS),以其高质量源码和清晰的结构,在嵌入式教学和某些工业项目中有着广泛影响。该系统主要包含两个版本:uC/OS-II 和 uC/OS-III。 本文将带你了解这两…...
永磁同步电机参数辨识算法--递推最小二乘法辨识
一、原理介绍 最小二乘法大约是1795年高斯在其著名的星体运动轨道预报研究工作中提出的。后来,最小二乘法成为了估计理论的基石。最小二乘法由于原理简明、收敛较快、易于编程实现等特点,在系统参数估计中应用相当广泛。 其基本原理为: 改写…...
树莓派5+L298N控制电机
准备工作: 树莓派5开发板L298N 控制板电机1个12v的电池1个杜邦线若干L298N 引脚介绍 (1)图中标注的1和2都是都在输出引脚,可以各接入一个电机,电机不分正负极,随便接 (2)图中3这里是控制板的电源输入正负极,可以输入5v和12v,我这里输入的是12v电源,使用的时候应该把…...
UofTCTF-2025-web-复现
感兴趣朋友可以去我博客里看,画风更好看 UofTCTF-2025-web-复现 文章目录 scavenger-huntprismatic-blogscode-dbprepared-1prepared-2timeless scavenger-hunt 国外的一些ctf简单题就喜欢把flag藏在注释里,开源代码找到第一部分的flag 抓个包返回数据…...
记录seatunnel排查重复数据的案例分析
文章目录 背景分析检查现象检查B集群是否有异常,导致重复消费的分析同步任务 修复问题发现flink job 一直报异常修复问题 背景 使用seatunnel 同步数据从A 集群kafka 同步到B集群kafka,现象是发现两边数据不一致,每天10w级别会多几十条数据 分析 检查…...
技术速递|Agent 模式:对所有用户开放,并支持 MCP
作者:Isidor Nikolic 翻译/排版:Alan Wang Agent 模式正在向所有 VS Code 用户推广!它充当一个自主的配对编程助手,能够根据你的指令执行多步编码任务,例如分析代码库、提出文件修改建议以及运行终端命令。它能够响应编…...
实验四 Java图形界面与事件处理
实验四 Java图形界面与事件处理 ###实验目的 掌握Java语言中AWT和Swing组件的基本用法掌握Java语言中的事件处理方法掌握Java语言中事件源、监视器和处理事件的接口的概念 ###实验内容 图形用户界面设计程序(ArtFont.java)(90分) 要求:设…...
day2 python训练营
浙大疏锦行 python训练营介绍...
Linux下 REEF3D及DIVEMesh 源码编译安装及使用
目录 软件介绍 基本依赖 一、源码下载 1、REEF3D 2、DIVEMesh 二、解压缩 三、编译安装 1、REEF3D 2、DIVEMesh 四、算例测试 软件介绍 REEF3D是一款开源流体动力学框架,提供计算流体力学及波浪模型。软件采用高效并行化设计,可以在大规模处理器…...
堡垒机和跳板机之区别(The Difference between Fortress and Springboard Aircraft)
堡垒机和跳板机之区别 在网络安全、安全运维领域,堡垒机和跳板机是两个常被提及且功能相似的概念,但它们在实际应用、功能定位以及技术实现上存在着明显的差异。本文将对堡垒机和跳板机进行详细的解析与比较,帮助读者更好地理解这两种网络安…...
《Android 应用开发基础教程》——第五章:RecyclerView 列表视图与适配器机制
目录 第五章:RecyclerView 列表视图与适配器机制 5.1 为什么要使用 RecyclerView? 5.2 基本结构图 5.3 RecyclerView 使用步骤 1️⃣ 添加 RecyclerView 依赖(Android Studio) 2️⃣ 布局文件(activity_main.xml&…...
【第四章】19-匹配规则定义
在优化Web服务器性能与增强其功能性的过程中,深入理解Nginx的location匹配规则显得尤为关键。它不仅决定了如何高效地路由不同类型的客户端请求,而且是实现精准响应的基础。通过掌握精确匹配、前缀匹配及正则表达式匹配等规则,管理员能够灵活配置以支持复杂的业务需求,同时…...
[PTA]2025CCCC-GPLT天梯赛 现代战争
来源:L1-112 现代战争-Pintia题意:给定 n m n\times m nm 的矩阵,进行 k k k 次操作,每次操作清除矩阵当前最大值所在行和所在列的全部元素,求最终矩阵。关键词:模拟(签到)题解:非常水的模拟…...
操作系统期中复习
未完待续----后续补充全书完整板 一、计算机系统概述 1.1操作系统的基本概念 1.1.1操作系统的概念 操作系统:是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口…...
Linux 入门十一:Linux 网络编程
一、概述 1. 网络编程基础 网络编程是通过网络应用编程接口(API)编写程序,实现不同主机上进程间的信息交互。它解决的核心问题是:如何让不同主机上的程序进行通信。 2. 网络模型:从 OSI 到 TCP/IP OSI 七层模型&…...