大语言模型驱动的智能渗透测试框架:PentestGPT实战解析

news2026/4/27 17:36:31
1. 项目概述当大语言模型成为你的渗透测试副驾驶如果你是一名网络安全从业者或者正在学习渗透测试那么你一定对“自动化”这个词又爱又恨。爱的是它能解放双手恨的是传统自动化工具往往死板、缺乏上下文理解面对稍微复杂一点的场景就束手无策最终还得靠人脑去串联线索、制定策略。我自己在渗透测试和CTFCapture The Flag中摸爬滚打了十几年深知从信息收集到漏洞利用再到权限提升这一整套流程里最耗费心力的不是执行某个命令而是决策——下一步该扫描哪个端口这个奇怪的响应意味着什么哪个漏洞利用链在当前环境下最可能成功PentestGPT的出现正是为了解决这个核心痛点。它不是一个简单的脚本集合而是一个由大语言模型驱动的智能体框架。你可以把它理解为一个拥有顶级安全专家知识库和逻辑推理能力的“副驾驶”。你给它一个目标比如一个IP地址或一个CTF挑战的描述它就能自主规划测试路径、调用工具执行、分析结果并基于反馈调整策略最终目标是找到并利用安全漏洞。这个项目在2024年的USENIX安全顶会上发表本身就证明了其学术和实用价值。它标志着渗透测试正从“工具辅助人”向“智能体自主操作”演进。无论你是想提升自己测试效率的专业安服人员还是渴望一个永不疲倦的CTF陪练的初学者PentestGPT都提供了一个前所未有的视角和工具。2. 核心架构与设计哲学拆解2.1 从“工具链”到“智能体”范式转变传统的自动化渗透测试无论是商业工具还是开源脚本本质上是预定义流程的线性执行。比如先运行Nmap扫描如果发现80端口开放就接着跑Dirb或Nikto如果发现特定服务版本就匹配已知的ExploitDB条目。这种方式的瓶颈很明显缺乏真正的“思考”和“应变”。一旦遇到未知漏洞、需要多步骤组合的复杂攻击链或者目标环境与预设模板有细微差别自动化就会中断。PentestGPT的设计哲学完全不同。它基于“智能体”概念构建。在这个框架里LLM大语言模型扮演着大脑的角色而渗透测试工具如Nmap、sqlmap、Metasploit模块等则是它的手脚。整个工作流程是一个动态的、基于目标的推理循环观察智能体接收当前状态如初始目标、上一步命令的输出。思考LLM分析当前信息结合其庞大的安全知识库推理出最有可能成功的下一步行动是什么以及为什么要这么做。行动智能体生成具体的、可执行的命令如nmap -sV -sC 10.10.11.234并在容器化环境中安全地执行它。反馈命令的执行结果被返回给LLM成为新的“观察”。循环重复步骤2-4直到达成目标如获取到flag、拿到shell或判定无法继续。这个循环的关键在于决策路径不是固定的。LLM可能会因为一次扫描的意外结果完全改变后续的攻击方向。这种灵活性是传统自动化无法比拟的。2.2 Docker-First与模块化设计安全与可扩展的基石项目采用“Docker-First”策略这绝不仅仅是为了方便部署。它解决了渗透测试环境管理的两大顽疾环境一致性与隔离性所有依赖的工具Python库、系统包、渗透测试套件都被封装在一个预构建的Docker镜像中。这意味着在任何机器上运行PentestGPT其行为都是一致的。更重要的是它将测试活动隔离在容器内避免了对宿主机环境的污染也使得清理和重置变得极其简单一个make clean-docker命令即可。安全性在容器内运行未知或可能具有破坏性的测试脚本比直接在宿主机上运行要安全得多。容器提供了天然的沙箱环境。在架构上PentestGPT采用了清晰的模块化设计。核心的“大脑”LLM交互与推理模块与“执行器”工具调用模块是解耦的。这种设计带来了巨大的可扩展性多模型支持虽然当前版本以Claude API为主但其架构允许轻松接入其他LLM提供商如OpenAI、Gemini或本地模型通过OpenAI兼容的API。你甚至可以通过修改路由配置为不同的任务如常规推理、背景分析、长上下文处理指定不同的模型以优化成本和性能。工具集扩展理论上你可以教会智能体使用任何命令行工具。项目内置了常见的渗透测试工具链但你可以通过修改配置引入自定义脚本或新的安全工具只需确保LLM能理解其输入输出格式即可。2.3 会话持久化让复杂的测试得以延续渗透测试尤其是对真实网络环境的测试往往不是几分钟就能结束的。它可能持续数小时甚至数天中间可能需要暂停、回顾、调整策略。PentestGPT的“会话持久化”功能完美解决了这个问题。它允许你将当前智能体的完整状态——包括目标信息、已执行的命令历史、LLM的推理上下文、发现的线索和临时结果——保存到一个会话文件中。当你需要中断时只需暂停并保存下次可以随时从完全相同的状态点恢复智能体会像从未离开过一样继续它的工作。这个功能对于处理大型、复杂的测试场景至关重要也使得多人协作审查测试过程成为可能。3. 实战部署与核心配置详解纸上谈兵终觉浅我们直接上手看看如何把这个智能体框架跑起来并针对不同需求进行配置。3.1 基础环境搭建与Docker部署部署PentestGPT的核心就是与Docker打交道。以下是步步为营的操作指南安装Docker这是唯一严格的宿主机依赖。前往Docker官网下载并安装适合你操作系统Windows/macOS/Linux的Docker Desktop或Docker Engine。安装后确保Docker服务正在运行在终端输入docker --version能正常显示版本号即可。克隆项目与初始化# 关键必须使用 --recurse-submodules 参数这会同时下载内含的基准测试套件 git clone --recurse-submodules https://github.com/GreyDGL/PentestGPT.git cd PentestGPT注意如果你已经克隆了项目但忘了加--recurse-submodules后续运行基准测试时会出错。补救命令是git submodule update --init --recursive。构建Docker镜像这一步会拉取基础镜像并安装所有必要的渗透测试工具和Python依赖耗时可能较长取决于你的网络速度。make install这个命令背后执行的是docker build构建一个名为pentestgpt的本地镜像。你可以通过docker images查看构建好的镜像。首次运行配置镜像构建完成后需要进行一次性的认证配置。make config执行后会进入一个交互式配置界面。这里你需要提供LLM的访问凭据。以最常见的Claude API为例选择对应的配置选项通常是选项1或2对应Claude API。将你在 Anthropic控制台 申请的API Key粘贴进去。配置会被安全地保存在Docker volume中后续使用无需再次输入。进入智能体工作环境make connect这个命令会启动一个基于之前构建镜像的容器并以交互式Shell默认是zsh的形式进入容器内部。至此你的PentestGPT智能体就准备就绪了所有的后续操作都在这个容器内进行。3.2 模型配置云端API与本地LLM的抉择PentestGPT的强大源于LLM而LLM的选择直接关系到成本、速度和隐私。项目提供了灵活的配置方案。方案一使用云端API如Claude这是最省心、性能通常也最好的方案。你只需要在make config时填入有效的API Key。优势是模型能力强、响应稳定适合处理复杂的推理任务。劣势是会产生API调用费用且所有交互数据需要发送到第三方服务器尽管项目声明了隐私保护策略。方案二使用本地LLM通过Ollama/LM Studio对于注重数据隐私、希望零成本或网络受限的环境本地模型是绝佳选择。配置步骤如下在宿主机上启动本地LLM服务Ollama安装Ollama后运行ollama serve。默认会在http://localhost:11434提供兼容OpenAI的API。LM Studio启动LM Studio加载一个模型如CodeLlama、QwenCoder并开启“本地服务器”选项通常端口是1234。配置PentestGPT连接本地服务 运行make config选择“Local LLM”选项可能是选项4。关键配置项是API Base URL。这里不能填localhost因为localhost在Docker容器内指向容器自己。必须使用Docker的特殊域名host.docker.internal它指向宿主机的网络。对于Ollamahttp://host.docker.internal:11434对于LM Studiohttp://host.docker.internal:1234模型路由精细调优 配置文件scripts/ccr-config-template.json是模型路由的核心。你可以在这里为不同类型的任务指定不同的本地模型以发挥各自长处。{ localLLM: { api_base_url: http://host.docker.internal:1234, models: [codellama:7b, qwen:7b] // 你本地服务器上可用的模型列表 }, router: { default: codellama:7b, // 常规任务用CodeLlama think: qwen:7b, // 复杂推理用Qwen longContext: qwen:7b // 处理长输出用Qwen } }实操心得本地模型的推理速度和效果高度依赖你的硬件尤其是GPU显存。对于渗透测试这种需要连续多轮思考-行动的任务一个7B参数的高质量代码模型如CodeLlama、Qwen-Coder通常是性价比和效果的最佳平衡点。13B或更大模型虽然能力更强但可能导致思考过程变慢影响测试体验。3.3 首次运行与交互界面解析在容器内你可以直接使用pentestgpt命令启动智能体。其基本语法非常直观# 最常用交互式模式针对一个目标IP pentestgpt --target 10.10.11.234 # 非交互模式适合脚本化或后台运行 pentestgpt --target 10.10.11.100 --non-interactive # 提供初始上下文引导测试方向 pentestgpt --target 10.10.11.50 --instruction 这是一个WordPress 5.7.2站点请重点测试插件漏洞和用户枚举。启动后你会进入一个基于文本的用户界面。这个TUIText-based User Interface是智能体与你交互的窗口。界面通常会分为几个区域状态/信息区显示当前目标、测试阶段、已用时间等。思考/决策区这是最精彩的部分你会看到LLM的“内心独白”它以自然语言解释“我发现了80端口运行着Apache 2.4.41接下来我应该进行目录扫描以寻找隐藏的管理页面或敏感文件因为这是Web应用的常见入口点...”行动/命令区显示智能体即将执行或刚刚执行完的具体命令例如gobuster dir -u http://10.10.11.234 -w /usr/share/wordlists/dirb/common.txt。结果输出区显示命令执行后的原始输出。控制区显示快捷键提示如F1帮助、CtrlP暂停/继续、CtrlQ退出。键盘快捷键是你必须掌握的CtrlP可以随时暂停智能体的自动执行让你有时间仔细审视输出结果CtrlQ退出时会询问是否保存会话。熟练使用这些快捷键你就能从被动的观察者变为主动的监督者。4. 核心工作流程与智能体行为剖析现在让我们深入智能体的“大脑”看它是如何一步步拆解一个目标的。我们以一个虚构的CTF靶机10.10.11.234为例模拟一次完整的交互。4.1 阶段一智能侦察与信息收集智能体启动后它不会像无头苍蝇一样乱撞。它的第一原则是“先侦察后攻击”。初始推理LLM接收到目标10.10.11.234。它首先会思考“对于一个未知的IP最安全、信息量最大的第一步是进行端口扫描以确定开放的服务和可能的攻击面。”执行命令智能体生成并执行一个综合性的Nmap命令。它不会只用-sSSYN扫描而更可能使用-sV -sC因为版本信息-sV和默认脚本扫描-sC能提供至关重要的上下文。命令可能类似nmap -sV -sC -p- --min-rate 1000 -T4 10.10.11.234。分析结果假设扫描结果显示22/tcp open ssh OpenSSH 8.2p180/tcp open http Apache httpd 2.4.413306/tcp open mysql MySQL 5.7.33二次推理LLM分析这些结果“开放了SSH、HTTP和MySQL。HTTP是常见的Web入口应优先调查。Apache 2.4.41是一个特定版本需要检查已知漏洞。同时MySQL的存在暗示可能有Web应用使用数据库可以留意SQL注入点。SSH版本较新但弱密码或密钥泄露仍是潜在突破口。”深度侦察基于以上推理智能体可能并行或顺序发起Web目录枚举使用gobuster或ffuf扫描http://10.10.11.234寻找后台登录页 (/admin)、配置文件 (/config.php)、备份文件等。Web技术指纹识别使用whatweb或nikto获取更详细的Web服务器和框架信息。特定服务漏洞扫描如果Nmap脚本发现了MySQL的匿名登录可能它可能会尝试连接。整个侦察阶段智能体像一个经验丰富的老手不断从获取的信息中提取线索并动态调整侦察重点。它不会浪费时间去扫描所有65535个端口的所有可能而是基于已发现的服务进行有针对性的深入。4.2 阶段二漏洞分析与利用链构建当侦察阶段收集到足够信息后智能体进入更主动的测试阶段。线索关联假设目录扫描发现了/admin/login.php并且whatweb识别出该页面使用了某款已知的CMS。LLM会立刻将这两条信息关联起来“这是一个使用XXX CMS的管理登录页面。我需要查找该CMS的公开漏洞特别是未授权访问或SQL注入漏洞。”知识库查询与验证智能体虽然没有直接联网搜索但其训练数据中包含了大量的公开漏洞知识CVE、ExploitDB条目。它会“回忆”起与该CMS版本相关的几个CVE。接着它不会盲目利用而是先进行验证。例如对于一个疑似SQL注入的点它可能会先使用sqlmap的检测级别--level进行试探性测试或者手动构造一个简单的布尔型注入Payload来确认漏洞是否存在。利用链规划如果发现一个后台SQL注入但需要认证智能体会回溯“要利用这个注入我需要先进入后台。那么如何获取后台凭证” 它可能会转而测试登录页面的暴力破解、密码喷洒或者寻找是否存在密码重置漏洞、用户信息泄露点通过之前的目录扫描结果。这就是在构建利用链。工具选择与执行对于暴力破解它可能选用hydra对于更复杂的Web漏洞测试它可能会编写一个简单的Python脚本来发送特制的HTTP请求。LLM的优势在于它能根据上下文生成具体、正确的命令参数而不是调用一个死板的工具模板。在这个过程中你会看到智能体展现出惊人的上下文保持能力。它能记住十分钟前扫描发现的某个不起眼的robots.txt文件里的一条路径并在当前遇到障碍时重新评估那条路径的价值。4.3 阶段三权限提升与目标达成在渗透测试中获取初始立足点如一个Web Shell往往只是开始最终目标是获得最高权限如root或SYSTEM。PentestGPT智能体同样致力于此。立足点巩固一旦通过Web漏洞上传了一个Web Shell或获得了反向Shell连接智能体首先会进行基本的系统信息枚举whoami,id,uname -a,cat /etc/passwd等。它会分析当前用户的权限、操作系统版本、运行的服务、具有SUID权限的特殊文件等。提权路径推理LLM基于枚举结果快速匹配常见的提权模式。例如如果发现sudo -l显示当前用户可以以root身份无需密码运行某个程序它会立刻尝试利用。如果发现内核版本较旧它会搜索对应的本地提权漏洞如Dirty Pipe、Dirty Cow并尝试编译和运行Exp。如果发现异常的SUID文件如/usr/bin/find它会检查是否可以利用其进行提权。自动化利用尝试智能体会尝试下载或编写提权利用代码。在容器环境中它可能使用wget从互联网下载公开的Exp或者直接使用内置的linpeas、linenum等自动化提权脚本进行深度扫描。目标达成与报告对于CTF场景最终目标是找到“flag”。智能体会在文件系统中智能搜索find / -name *flag* 2/dev/nullgrep -r “flag{” / 2/dev/null。在真实渗透测试中它可以被设定为达成特定目标如获取/etc/shadow文件或域控的NTDS.dit。一个真实的观察在测试中我曾看到智能体在获得一个低权限Shell后发现系统安装了python3。它没有直接去运行复杂的提权脚本而是先执行了python3 -c ‘import pty; pty.spawn(“/bin/bash”)’来升级为一个完全交互式的TTY Shell。这个细节表明它的训练数据里包含了大量真实的、贴近实战的操作技巧。5. 性能评估与基准测试实战“这个AI到底行不行” 这是所有人最关心的问题。PentestGPT项目组设计了一套严谨的基准测试体系——XBOW验证套件来客观回答这个问题。5.1 理解XBOW基准测试XBOW不是一个单一的靶机而是包含104个独立挑战的测试集。这些挑战覆盖了渗透测试和CTF的各大主要类别WebSQL注入、XSS、文件包含、反序列化等。Crypto经典密码学、编码、随机数缺陷等。Reversing二进制逆向工程破解算法。Forensics内存取证、网络流量分析、文件恢复。PWN二进制漏洞利用栈溢出、堆利用等。Privilege Escalation系统提权挑战。每个挑战都是一个独立的环境目标都是找到一个格式为flag{...}的字符串。这104个挑战被分为三个难度等级Level 1-3为评估智能体在不同复杂度任务上的表现提供了标准。5.2 运行基准测试并解读结果在PentestGPT项目目录下运行基准测试非常简单cd benchmark/standalone-xbow-benchmark-runner # 运行第1到第10个挑战 python3 run_benchmarks.py --range 1-10 --pattern-flag # 运行全部104个挑战耗时较长 python3 run_benchmarks.py --all --pattern-flag # 仅重新运行之前失败的挑战 python3 run_benchmarks.py --retry-failed # 干跑模式预览将要执行的命令而不实际运行 python3 run_benchmarks.py --dry-run --range 1-5关键参数解释--pattern-flag告诉测试运行器成功标志是匹配flag{这个模式。这是必须的。--range灵活选择测试范围便于分批次验证。--dry-run非常实用的功能可以先看看智能体针对每个挑战会生成什么样的初始命令帮你理解其思路而不会真正启动靶机环境。运行结束后你会得到一份详细的报告。根据论文数据PentestGPT在全部104个挑战中取得了86.5%的成功率90/104。这个数字在AI驱动的自动化渗透测试领域是相当惊人的。更值得分析的是分层数据Level 1 (简单)成功率91.1%。说明智能体对于常规、套路化的漏洞已经掌握得非常熟练。Level 2 (中等)成功率74.5%。面对需要多步骤组合或稍加变形的挑战智能体依然有很强的解决问题的能力。Level 3 (困难)成功率62.5%。在需要深度逆向、复杂密码学或非常规思维的挑战上智能体遇到了瓶颈但这恰恰指出了未来改进的方向。成本与效率平均每个成功挑战花费约1.11美元中位数0.42美元耗时约6.1分钟中位数3.3分钟。这意味着用一杯咖啡的钱它可以替你解决数十个中等难度的CTF挑战或者完成一次基础渗透测试的信息收集和漏洞初步验证工作性价比极高。5.3 如何利用基准测试提升自己作为用户运行基准测试不仅是验证工具更是绝佳的学习方式。观察思路在--dry-run模式下看智能体对不同类型挑战的“第一反应”。它是先扫描端口还是直接分析给出的文件这能帮你建立面对未知目标时的分析框架。学习工具链看智能体在解决具体问题如一个Base64编码的流量包时使用了哪些你平时不熟悉的命令行工具或参数组合。这能极大丰富你的个人工具箱。对比与反思当智能体在某个挑战上失败时手动去尝试解决它。对比你的思路和智能体的思路分析它失败的原因是知识盲区是工具使用不当还是推理逻辑出现了偏差这个过程能让你对漏洞原理和利用技巧有更深的理解。6. 常见问题、故障排查与进阶技巧即使设计再精良在实际操作中也会遇到各种问题。下面是我在深度使用PentestGPT过程中总结的“避坑指南”和进阶心法。6.1 部署与连接问题问题现象可能原因解决方案make install构建失败报网络错误Docker构建时需要从国外源下载包网络不稳定。1. 为Docker配置可靠的镜像加速器如阿里云、中科大镜像。2. 在Dockerfile所在目录尝试分步手动构建docker build -t pentestgpt .失败时重试。make connect失败提示容器不存在或未运行容器可能意外退出或未启动。运行docker ps -a查看容器状态。如果存在但已退出用docker start container_name启动它再用docker exec -it container_name /bin/zsh进入。配置API Key后运行pentestgpt仍报认证错误1. API Key输入错误或已失效。2. 对于本地LLMAPI Base URL配置错误。1. 重新运行make config检查或更新Key。2.对于本地LLM确保宿主机LLM服务已启动并在配置中使用host.docker.internal:端口。在容器内尝试curl http://host.docker.internal:1234/v1/models测试连通性。容器内无法访问互联网如无法下载ExpDocker容器的网络配置问题。检查宿主机的防火墙或代理设置。运行容器时可以考虑使用--network host模式需修改Makefile但这会降低隔离性。6.2 智能体行为异常与调优问题现象可能原因解决方案与技巧智能体陷入“死循环”反复执行相似命令LLM在某个步骤上无法获得有效反馈陷入局部推理困境。使用CtrlP暂停然后分析上一步的输出。可能是命令本身有误或者输出结果需要人工解读才能提供新线索。你可以手动执行一个正确的命令然后将结果作为新的“上下文”提供给智能体部分版本支持输入帮助它跳出循环。命令执行速度慢或长时间无响应1. 本地LLM推理速度慢。2. 云端API响应延迟高或达到速率限制。3. 执行的工具本身耗时如全端口扫描。1. 对于本地模型考虑使用量化版本如4bit量化或更小参数的模型来提升速度。2. 检查API用量必要时升级套餐或切换备用Key。3. 在初始指令中加以限制如--instruction “请先进行快速扫描避免耗时超过2分钟的全端口扫描。”智能体选择了不合适的工具或攻击路径LLM的训练数据可能存在偏见或知识滞后。这是AI的固有局限。最佳实践是“人在环路”。不要完全放任自主模式而是使用交互模式在关键决策点如选择利用哪个CVE、使用哪种方法提权暂停智能体根据你的经验进行微调或引导。将PentestGPT视为一个强大的助手而非完全替代。对特定类型漏洞如新型0day、复杂逻辑漏洞识别率低LLM缺乏该漏洞的最新知识或深度理解。1. 在--instruction参数中提供更明确的线索或漏洞类型提示。2. 未来期待项目集成实时漏洞情报如CVE数据库查询或自定义知识库注入功能。目前阶段复杂和最新的漏洞仍需人工主导。6.3 进阶使用技巧会话管理的艺术养成随时保存会话的习惯CtrlQ退出时选择保存。给你的会话文件起一个描述性的名字如target_corporate_web_phase1.json。这不仅用于恢复更是审计和报告的宝贵材料。你可以回顾整个攻击链了解智能体的每一步决策这对于编写渗透测试报告或教学演示极具价值。指令工程的力量--instruction参数是你引导智能体的方向盘。不要只给一个IP多提供一些上下文。例如--instruction “目标是一个公开的博客系统使用WordPress。请优先测试插件漏洞和用户枚举暂时不要进行暴力破解。”--instruction “这是一个内部测试环境可以放心进行主动扫描和利用。目标是获取/etc/shadow文件。”好的指令能显著提升测试效率和针对性。结合传统工具链PentestGPT不是孤岛。你可以将它的输出如发现的特定URL、可疑参数导入到你习惯的图形化工具中进一步分析如Burp Suite、ZAP。同样你也可以将其他工具发现的结果整理成文本作为初始指令喂给PentestGPT让它继续深入。这种“人机协同”的工作流往往能产生最佳效果。用于教育与训练对于安全新手PentestGPT是一个不知疲倦的“陪练”。你可以让它攻击一个你已知漏洞的靶场如DVWA、Vulnhub然后观察它的每一步操作与自己预设的方案进行对比。这种实时观摩“高手”解题思路的过程学习效率远超看书或看视频。7. 伦理边界、合规使用与未来展望最后我们必须严肃地讨论使用这样强大工具的边界。PentestGPT的作者在免责声明中明确指出该工具仅用于教育目的和授权的安全测试。我强烈建议所有使用者遵循以下原则仅针对你拥有明确书面授权的目标进行测试。这包括你自己的实验室环境、专门用于安全训练的靶场如HackTheBox, TryHackMe的付费机器、以及公司内部授权测试的生产系统。绝对不要将其用于探测或攻击任何未经授权的互联网系统、公司网络或个人设备。这不仅违法而且会破坏网络安全社区的声誉。在使用本地模型时虽然数据不出本地但你的操作行为依然需要合规。从技术演进来看PentestGPT代表了AI在网络安全领域应用的一个激动人心的方向。它目前可能还无法完全替代经验丰富的渗透测试专家尤其是在需要创造性思维、社会工程学或对复杂业务逻辑深度理解的场景。但它已经能够出色地完成大量重复性、模式化的侦察和漏洞验证工作将专家从繁琐劳动中解放出来专注于更高级别的策略制定和漏洞研究。我个人在实践中最大的体会是PentestGPT的价值不在于它“全自动地完成了测试”而在于它提供了一个持续互动、可观察、可审计的智能协作界面。它让我能清晰地看到一个拥有海量知识的“大脑”是如何思考安全问题的这个过程本身就在不断启发和修正我自己的方法论。未来随着多模态模型的发展也许它能直接分析截图、处理视频流甚至通过语音与测试者交流。与这样的工具共同成长是每一位现代安全从业者的必修课。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…