<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>NOVASEC</title>
    <link>https://wechat2rss.xlab.app/feed/74ce3507f54a7a5145a4ddd6e4e3407fd76705b5.xml</link>
    <description>NOVASEC 安全团队公众号&#xA;(wechat feed made by @ttttmr https://wechat2rss.xlab.app)</description>
    <managingEditor> (NOVASEC)</managingEditor>
    <image>
      <url>https://wx.qlogo.cn/mmhead/574VdhMFwaGNLFHYicg6jT0micexfPDqW7qYkFDqaCjrZBdBvH7atJgvqdiaBpWOQekHwDUiaGicr1e4/0</url>
      <title>NOVASEC</title>
      <link>https://wechat2rss.xlab.app/feed/74ce3507f54a7a5145a4ddd6e4e3407fd76705b5.xml</link>
    </image>
    <item>
      <title>【抽奖】无影 TscanPlus License</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490928&amp;idx=1&amp;sn=66b73bc7d418f6e7e74de513d56df460</link>
      <description>Tscan License 抽奖分享</description>
      <content:encoded><![CDATA[<p>原创 <span>酒零</span> <span>2026-08-06 00:14</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=4e4c193c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FfL1TQ0l0Qw3mVibGOloJOsaJpLia9JUOVJB3FExOmeTeVZcdPTZU1W5Id1QYB1YnPw5UNRyknsR68TA7ZzAfdxaCzWCrTTK14acbD6N8HKyVU%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>Tscan License 抽奖分享</p>
  <p style="margin-bottom: 0px;"><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6198757763975156" data-s="300,640" data-type="png" data-w="805" style="color: rgb(51, 51, 51);font-size: 14px;letter-spacing: 1.5px;text-align: center;" data-imgfileid="100006977" src="https://wechat2rss.xlab.app/img-proxy/?k=8c8b80b1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjuJtkhP7vxlCDuQbSnofqkMWgjtQCZqKTrdm330DH5kk8NgibIR3cNQQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p style="margin-bottom: 0px;text-align: left;letter-spacing: 1.5px;line-height: 1.75em;"><strong style="font-size: 20px;letter-spacing: 1.5px;"><span style="font-family: 宋体;"><span leaf="">0x00 前言</span></span></strong></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><p style="line-height: 1.5em;letter-spacing: 1.5px;"><strong><span leaf="">免责声明：继续阅读文章视为您已同意[</span></strong><strong><span leaf=""><a class="normal_text_link mp_article_text_link" target="_blank" style="font-size: 16px;font-family: 宋体;" href="http://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247489726&amp;idx=1&amp;sn=e5459d91f53caf90e76c6558dc8b4ac9&amp;chksm=fad4c5a9cda34cbf0d02c24383827a906e7d08d5694d452a0cc18988f130abab371735ee1843&amp;scene=21#wechat_redirect" textvalue="NOVASEC免责声明" data-itemshowtype="0" linktype="text" data-linktype="2">NOVASEC免责声明</a></span></strong><strong><span leaf="">].</span></strong></p></div><p style="margin-bottom: 0px;"><span leaf="">TideSec/TscanPlus: 一款综合性网络安全检测和运维工具，旨在快速资产发现、识别、检测，构建基础资产信息库，协助甲方安全团队或者安全运维人员有效侦察和检索资产，发现存在的薄弱点和攻击面。</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=""><span class="code-snippet__attr">https</span>:<span class="code-snippet__comment">//github.com/TideSec/TscanPlus/</span></span></code></pre></p><p style="box-sizing: border-box;margin-top: 0px !important;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans Backtick Fix&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" data-pm-slice="0 0 []"><span leaf="">无影(TscanPlus) v3.4.0 发布，修复多个Bug、同步更新TscanClient #</span></p><p style="text-align: center;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6287037037037037" data-s="300,640" data-type="png" data-w="1080" type="block" data-imgfileid="100007277" src="https://wechat2rss.xlab.app/img-proxy/?k=bd2e1d42&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FfL1TQ0l0Qw2vqM52sJc0UEIQmjYa8UkN08ocnazKpe1HSrdzZAEp8Pn3aKY38icVgX0qtRppHaxVkibMySoBb3QCEE6gHPfTZG4h78hI13gwM%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans Backtick Fix&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;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;margin-top: 0px !important;"><span leaf="">活动开始，找 @重剑无锋 为大家PY了一些Tscanplus的License。</span></p><p style="box-sizing: border-box;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans Backtick Fix&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;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;margin-top: 0px !important;"><span leaf="">快速参与方式：</span></p><p style="box-sizing: border-box;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans Backtick Fix&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;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;margin-top: 0px !important;"><span leaf="">1. 抽奖码抽奖，开出来的兑换码就是License. </span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;line-height: 1.5em;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"> (</span><span leaf="">38个 拼拼手气)。</span></p><p style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 16px;padding: 0px;outline: 0px;max-width: 100%;clear: both;min-height: 1em;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%;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;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span textstyle="" style="font-size: 16px;font-weight: bold;">公众号后台回复“抽奖”参与抽奖或直接扫描下方</span></span><span leaf="" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;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;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span textstyle="" style="font-size: 16px;font-weight: bold;">抽奖码.</span></span></p><p style="text-align: center;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1.0203703703703704" data-s="300,640" data-type="jpeg" data-w="1080" style="width:261px;height:266px;" type="block" data-imgfileid="100007275" src="https://wechat2rss.xlab.app/img-proxy/?k=e91aed4a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FfL1TQ0l0Qw0QUWFssmViaP7Z4h2CDfePzOW2WdY3AEPkRtdzStAymmBgyj3oWtnsQT9Y5Ry7P60zwodDibbhCspicdWBuuCFo6r81hsSLZOIIA%2F640%3Fwx_fmt%3Djpeg%26from%3Dappmsg"/></p><p style="box-sizing: border-box;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans Backtick Fix&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;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;margin-top: 0px !important;"><span leaf="">2. 集赞获取抽奖码，转发文章到朋友圈集赞20个 (12个 先到先得)。</span></p><p><span 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;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 700;letter-spacing: 0.578px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;display: inline !important;float: none;" data-pm-slice="0 0 []"><span leaf="">集赞用户添加</span><span leaf="">二维码</span><span 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;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 700;letter-spacing: 0.578px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;display: inline !important;float: none;" data-pm-slice="3 2 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span 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;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 700;letter-spacing: 0.578px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;display: inline !important;float: none;" data-pm-slice="0 0 []"><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;&#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;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; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 700; letter-spacing: 0.578px; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;  background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">微信</span></span><span leaf="">联系。</span></span></span></p><p style="text-align: center;"><span 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;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 700;letter-spacing: 0.578px;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;" data-pm-slice="0 0 []"><span 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;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 700;letter-spacing: 0.578px;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;" data-pm-slice="3 2 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 0px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="430" style="vertical-align:middle;width:262px;height:262px;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007002" src="https://wechat2rss.xlab.app/img-proxy/?k=b1271a8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ%2F640%3Fwx_fmt%3Djpeg"/></span></span></span></p><p nodeleaf=""><mp-common-profile class="js_uneditable custom_select_card mp_profile_iframe" data-pluginname="mpprofile" data-nickname="NOVASEC" data-alias="NOVA_SEC" data-from="2" data-headimg="http://mmbiz.qpic.cn/mmbiz_png/toroKEibicmZC7QAYyWHtDoIWgIKkJS0UgnH5iaGXoLOOdzBkAAoI6Zxn82xT9GSrxFNKd2zF0aEkDYnmofMib5AzQ/0?wx_fmt=png" data-signature="NOVASEC 安全团队公众号" data-id="MzUzODU3ODA0MA==" data-is_biz_ban="0"></mp-common-profile></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=9dbf8d73&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490928%26idx%3D1%26sn%3D66b73bc7d418f6e7e74de513d56df460">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Thu, 06 Aug 2026 00:14:00 +0800</pubDate>
    </item>
    <item>
      <title>【工具】ocrapi和相关辅助工具</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490921&amp;idx=1&amp;sn=4861a443da08f97cf1fc36bd7a3583ca</link>
      <description>OcrApi 轻量级 OCR API 服务聚合</description>
      <content:encoded><![CDATA[<p>原创 <span>酒零</span> <span>2026-07-30 12:00</span> <span style="display: inline-block;">新加坡</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=35720eb5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FfL1TQ0l0Qw0KvVRHGADsvpFSTiahU6grTbHxZoyOEukr2nyjHgOtppezYVK8Zfz8JfXkxVaib6oBXiaiaDWpBzGnQ3rx1O4r8ItEpBFTm4aicwvw%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>OcrApi 轻量级 OCR API 服务聚合</p>
  <p style="margin-bottom: 0px;"><span leaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100006977" data-ratio="0.6198757763975156" data-s="300,640" style="color: rgb(51, 51, 51);font-size: 14px;letter-spacing: 1.5px;text-align: center;" data-type="png" data-w="805" src="https://wechat2rss.xlab.app/img-proxy/?k=8c8b80b1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjuJtkhP7vxlCDuQbSnofqkMWgjtQCZqKTrdm330DH5kk8NgibIR3cNQQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p style="margin-bottom: 0px;text-align: left;letter-spacing: 1.5px;line-height: 1.75em;"><strong style="font-size: 20px;letter-spacing: 1.5px;"><span style="font-family: 宋体;"><span leaf="">0x00 前言</span></span></strong></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><p style="line-height: 1.5em;letter-spacing: 1.5px;"><strong><span leaf="">免责声明：继续阅读文章视为您已同意[</span></strong><strong><span leaf=""><a class="normal_text_link mp_article_text_link" target="_blank" style="font-size: 16px;font-family: 宋体;" href="http://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247489726&amp;idx=1&amp;sn=e5459d91f53caf90e76c6558dc8b4ac9&amp;chksm=fad4c5a9cda34cbf0d02c24383827a906e7d08d5694d452a0cc18988f130abab371735ee1843&amp;scene=21#wechat_redirect" textvalue="NOVASEC免责声明" data-itemshowtype="0" linktype="text" data-linktype="2">NOVASEC免责声明</a></span></strong><strong><span leaf="">].</span></strong></p></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><p style="line-height: 1.5em;"><span style="font-size: 14px;"><em><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="">注：本文属于推荐系列文章，所推荐内容均为外部优质项目，并非由本团队开源实现。文章旨在分享各类优质项目，提升其关注度与影响力，文中观点仅代表作者个人看法。若您有更合适的替代项目，欢迎在留言区推荐分享，共同推荐优质项目资源。</span></span></strong></strong></em></span></p><p style="line-height: 1.5em;"><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="">一些ocrapi和相关辅助工具</span></span></strong></strong></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="bash"><code><span leaf="">OcrApi/</span></code><br/><code><span leaf="">├── dddd_ocr_api/          <span class="code-snippet__comment"># DDDDOCR 验证码识别 API（Python/Flask）</span></span></code><br/><code><span leaf="">├── llm_ocr_api_py/        <span class="code-snippet__comment"># LLM 大模型 OCR API（Python/FastAPI）</span></span></code><br/><code><span leaf="">├── llm_ocr_api_go/        <span class="code-snippet__comment"># LLM 大模型 OCR API（Go/Gin）</span></span></code><br/><code><span leaf="">├── llm_ocr_api_go_v2/     <span class="code-snippet__comment"># LLM + DDDDOCR 混合 OCR API（Go/Gin）</span></span></code><br/><code><span leaf="">├── ruoyi_login/           <span class="code-snippet__comment"># 若依登录爆破工具（Python）</span></span></code><br/><code><span leaf="">├── ruoyi_login_go/        <span class="code-snippet__comment"># 若依登录爆破工具（Go）</span></span></code><br/><code><span leaf="">├── other_ocr/             <span class="code-snippet__comment"># 其他 OCR 引擎 API 集合</span></span></code><br/><code><span leaf="">│   ├── easy_ocr_api/      <span class="code-snippet__comment">#   EasyOCR 多语言识别</span></span></code><br/><code><span leaf="">│   ├── paddle_ocr_api/    <span class="code-snippet__comment">#   PaddleOCR 百度飞桨识别</span></span></code><br/><code><span leaf="">│   ├── pytesseract_ocr/   <span class="code-snippet__comment">#   Tesseract OCR 识别</span></span></code><br/><code><span leaf="">│   └── rapidocr_api/      <span class="code-snippet__comment">#   RapidOCR 轻量识别</span></span></code><br/><code><span leaf="">├── BurpPluginsAPI/        <span class="code-snippet__comment"># Burp Suite 插件适配服务端</span></span></code><br/><code><span leaf="">│   ├── captcha-killer/    <span class="code-snippet__comment">#   captcha-killer 插件服务端</span></span></code><br/><code><span leaf="">│   └── xiapao_server/     <span class="code-snippet__comment">#   瞎跑插件服务端（多引擎）</span></span></code><br/><code><span leaf="">├── deprecated/            <span class="code-snippet__comment"># 已废弃模块</span></span></code><br/><code><span leaf="">│   └── muggle_ocr_api/    <span class="code-snippet__comment">#   Muggle OCR（已失效）</span></span></code><br/><code><span leaf="">├── yzm_calc/              <span class="code-snippet__comment"># 计算型验证码样本图片</span></span></code><br/><code><span leaf="">└── yzm_num/               <span class="code-snippet__comment"># 纯数字验证码样本图片</span></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="makefile"><code><span leaf=""><span class="code-snippet__section">OcrApi: My Any OCR API</span></span></code><br/><code><span leaf=""><span class="code-snippet__section"><a href="https://github.com/winezer0/OcrApi" target="_blank">https://github.com/winezer0/OcrApi</a></span></span></code><br/></pre></p></div><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100% 100%;text-align: left;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=2d404a2d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjklAO9ezM6ymrNndsrPn9lZ3FyFiaibib5n6nicPsotVIIILEARU4QSNMTA%2F640%3Fwx_fmt%3Dpng&#34;);margin-bottom: 0px;"><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 4%;background-size: 100%;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=767f4cec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjSZevnnVaheZ2lF9BFRIxBhhT2I64n8ZWKyRZcP7OUBUFlpyzLbwHibQ%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="258" style="vertical-align: middle;width: 100%;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007001" src="https://wechat2rss.xlab.app/img-proxy/?k=38982032&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">NOVASEC</span></p></div></div></div></div></div></div></div></div></div></div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);" data-remoteid="c1752114746949"><div style="margin-bottom: unset;"><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="430" style="vertical-align: middle;width: 100%;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007002" src="https://wechat2rss.xlab.app/img-proxy/?k=b1271a8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">WINEZER0</span></p></div></div></div></div></div></div></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=5af617f0&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490921%26idx%3D1%26sn%3D4861a443da08f97cf1fc36bd7a3583ca">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Thu, 30 Jul 2026 12:00:00 +0800</pubDate>
    </item>
    <item>
      <title>paseo-notifier 成为paseo ai agents 时间管理大师</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490912&amp;idx=1&amp;sn=ab0ade35d0779459dfb1d01a40c42c59</link>
      <description>解决paseo ai agents 通知不到位的问题。</description>
      <content:encoded><![CDATA[<p>原创 <span>酒零</span> <span>2026-07-03 13:28</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=66e9b8ef&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FfL1TQ0l0Qw11RxXiaOEZia4VuB6hkJaZKqF6HomDWw4FFpADQ4Se2iaomI6uzA09pFjOEu2HcwJTiaxcrRibpicMPh8WhVwBOuEk434wicHguh41icw%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>解决paseo ai agents 通知不到位的问题。</p>
  <p>最近AICoding用的越来越多，试了很多个agent，最后感觉如果能远程就更能提升效率 (能从5*12小时打工牛马升级7*24小时纯牛马)。</p><p>目前主要用两个远程agent:</p><p>1 Trae Work  国产闭源，app适配度比较好，缺点就是对非主流部分模型没有针对性优化，然后因为429这种问题导致任务中断也不会自动继续重试，移动端连接会有一点同步延迟，不知道是不是因为用户太多。</p><p>2 Paseo  社区开源，优势是支持多种agent cli，算是一个多Agent cli的封装器，支持远程操作。缺点就是同步信号也不太好，但是可以自建中继服务器。还有就是兼容性问题导致无法播放出通知声音，任务写完没有通知，导致经常不知道写完了没有，影响效率。</p><p>Paseo。</p><p>官网： <a href="https://paseo.sh/" target="_blank">https://paseo.sh/</a></p><p>开源地址：</p><p> <a href="https://github.com/getpaseo/paseo" target="_blank">https://github.com/getpaseo/paseo</a></p><p>Paseo 的运行逻辑：</p><p>1  PC 本地运行 Agent，代码和环境依然在自己的电脑上。</p><p>2  手机作为控制器，通过扫码连接，默认支持内网穿透，可以自建中继加快访问速度。</p><p>中继问题通过paseo-relay项目自建了一个服务器，加快了手机端同步电脑🖥️。</p><p>zenghongtu/paseo-relay: </p><p><a href="https://github.com/zenghongtu/paseo-rel" target="_blank">https://github.com/zenghongtu/paseo-rel</a><span style="background-color: transparent;letter-spacing: 0.034em;">ay</span></p><p>paseo任务完成后让手机能够进行声音通知这里设置了很久都没有成功，不知道什么原因，查日志好像是打包后导致的驱动问题。</p><p><span style="background-color: transparent;letter-spacing: 0.034em;">周折许久，最后发现通过调用paseo本地服务的MCP可以查询到相关agent的运行状态。因此又实现了</span><span style="background-color: transparent;letter-spacing: 0.034em;">一个监听服务，在任务完成时可以通过钉钉 飞书之类聊天工具的进行消息提醒。</span></p><p><span style="background-color: transparent;letter-spacing: 0.034em;">paseo-notifier:  Paseo 状态通知器<br/><a href="https://github.com/winezer0/paseo-notifier" target="_blank">https://github.com/winezer0/paseo-notifier</a></span></p><div><p style="display: inline-block;"><img data-ratio="1.7092592592592593" data-type="jpeg" data-w="1080" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=6b7b2413&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FfL1TQ0l0Qw2l8aEEJuAbSNiciacGJb0BUzA0Wr2A3TIYsTlpqPhZgllfs3bzFFHL0Ra7FzdAdjQcmo4BbW9CgoYxQaSLeYCu8Lmr04UemKAfQ%2F640%3Fwx_fmt%3Djpeg"/></p></div><p style="display: none;"><mp-style-type data-value="10000"></mp-style-type></p>



<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=bee81fa9&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490912%26idx%3D1%26sn%3Dab0ade35d0779459dfb1d01a40c42c59">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 03 Jul 2026 13:28:00 +0800</pubDate>
    </item>
    <item>
      <title>【工具】zipany 跨平台目录压缩打包工具</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490906&amp;idx=1&amp;sn=625587bdaa3bddfe208e856ab3f1dd5c</link>
      <description>zipany 基于 Go 语言的跨平台目录打包压缩工具，支持 tar.gz 格式，提供灵活的文件过滤规则和预设配置。</description>
      <content:encoded><![CDATA[<p>原创 <span>酒零</span> <span>2026-06-22 14:00</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=1ea38f8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FfL1TQ0l0Qw0t32HAkzUNBe5hhYMicjlicLPSyN369mftrsA9nN5NmChwzFr9Cb4QCvhjxiaMR45JUhwRBMytRUrQwz7LSc8LYicznuUHWpfPZLY%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>zipany 基于 Go 语言的跨平台目录打包压缩工具，支持 tar.gz 格式，提供灵活的文件过滤规则和预设配置。</p>
  <p style="margin-bottom: 0px;"><span leaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100006977" data-ratio="0.6198757763975156" data-s="300,640" data-type="png" data-w="805" style="color: rgb(51, 51, 51);font-size: 14px;letter-spacing: 1.5px;text-align: center;height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=8c8b80b1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjuJtkhP7vxlCDuQbSnofqkMWgjtQCZqKTrdm330DH5kk8NgibIR3cNQQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p style="margin-bottom: 0px;text-align: left;letter-spacing: 1.5px;line-height: 1.75em;"><strong style="font-size: 20px;letter-spacing: 1.5px;"><span style="font-family: 宋体;"><span leaf="">0x00 前言</span></span></strong></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><p style="line-height: 1.5em;letter-spacing: 1.5px;"><strong><span leaf="">免责声明：继续阅读文章视为您已同意[</span></strong><strong><span leaf=""><a class="normal_text_link mp_article_text_link" target="_blank" style="font-size: 16px;font-family: 宋体;" href="http://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247489726&amp;idx=1&amp;sn=e5459d91f53caf90e76c6558dc8b4ac9&amp;chksm=fad4c5a9cda34cbf0d02c24383827a906e7d08d5694d452a0cc18988f130abab371735ee1843&amp;scene=21#wechat_redirect" textvalue="NOVASEC免责声明" data-itemshowtype="0" linktype="text" data-linktype="2">NOVASEC免责声明</a></span></strong><strong><span leaf="">].</span></strong></p></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><p style="line-height: 1.5em;"><span style="font-size: 14px;"><em><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="">注：本文属于推荐系列文章，所推荐内容并非全部由本团队开源实现。文章旨在分享各类优质项目，提升其关注度与影响力，文中观点仅代表作者个人看法。若您有更合适的替代项目，欢迎在留言区推荐分享，共同推荐优质项目资源。</span></span></strong></strong></em></span></p><h1 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 0px !important;margin-right: 0px;margin-bottom: 16px;margin-left: 0px;font-size: 2em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">zipany</span></h1><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">一个基于 Go 语言的跨平台目录打包压缩工具，支持 tar.gz 格式，提供灵活的文件过滤规则和预设配置。</span></p><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;"><span leaf="">特性</span></h2><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">✅ </span><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">跨平台支持</span></strong><span leaf=""> - Windows、Linux、macOS 全平台兼容</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">✅ </span><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">tar.gz 格式</span></strong><span leaf=""> - 通用格式，解压速度快，兼容性好</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">✅ </span><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">配置文件管理</span></strong><span leaf=""> - YAML 配置文件，支持黑白名单过滤规则</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">✅ </span><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">预设配置</span></strong><span leaf=""> - 内置多种打包预设，支持自定义预设</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">✅ </span><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">安全保护</span></strong><span leaf=""> - 自动跳过软链接，防止路径穿越攻击</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">✅ </span><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">智能过滤</span></strong><span leaf=""> - 支持按文件扩展名、目录名过滤</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">✅ </span><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">空目录跳过</span></strong><span leaf=""> - 支持跳过无用的空目录</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">✅ </span><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">结果校验</span></strong><span leaf=""> - 打包完成后自动校验文件并输出统计信息</span></p></li></ul><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;"><span leaf="">安装</span></h2><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">从源码编译</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span leaf="">git clone <a href="https://github.com/winezer0/zipany.git" target="_blank">https://github.com/winezer0/zipany.git</a></span><span style="box-sizing: border-box;color: rgb(5, 80, 174);"><span leaf="">cd</span></span><span leaf=""> zipany go build -o zipany </span><span style="box-sizing: border-box;color: rgb(5, 80, 174);"><span leaf="">.</span></span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="git clone https://github.com/zipany/zipany.git
cd zipany
go build -o zipany ." tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;"><span leaf="">快速开始</span></h2><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">基本用法</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span leaf="">#</span></span><span leaf=""> 打包目录（使用默认配置，自动生成输出文件名）</span></span><span leaf="">zipany -s ./project</span><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span leaf="">#</span></span><span leaf=""> 打包目录（指定输出文件）</span></span><span leaf="">zipany -s ./project -o ./project.tar.gz</span><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span leaf="">#</span></span><span leaf=""> 使用配置文件</span></span><span leaf="">zipany -s ./project -o ./project.tar.gz -c config.yaml</span><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span leaf="">#</span></span><span leaf=""> 使用 PHP 预设</span></span><span leaf="">zipany -s ./project -o ./project.tar.gz -p php</span><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span leaf="">#</span></span><span leaf=""> 使用命令行扩展名过滤 白名单模式打包</span></span><span leaf="">zipany -s ./project -o ./project.tar.gz -p </span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#34;</span></span><span leaf="">ext:php,tpl,vue</span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#34;</span></span></span><span leaf="">  -w</span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="# 打包目录（使用默认配置，自动生成输出文件名）
zipany -s ./project

# 打包目录（指定输出文件）
zipany -s ./project -o ./project.tar.gz

# 使用配置文件
zipany -s ./project -o ./project.tar.gz -c config.yaml

# 使用 PHP 预设
zipany -s ./project -o ./project.tar.gz -p php

# 使用命令行扩展名过滤 白名单模式打包
zipany -s ./project -o ./project.tar.gz -p &#34;ext:php,tpl,vue&#34;  -w
" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">分片压缩</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">因为 gzip 的压缩字典是跨文件的，要直接生成完全独立的可单独解压的多个 .tar.gz 较为复杂，且在很多场景下解压并不兼容。</span></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">流级别分片可以将输出的压缩包自动截断为 .part1 , .part2 等文件，解压前只需要用 cat archive.tar.gz.part* &gt; archive.tar.gz 合并即可。</span></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;"><code style="white-space:pre-wrap;box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;background: 0px 0px rgba(0, 0, 0, 0);border-radius: 6px;margin: 0px;padding: 0px;word-break: normal;border: 0px;line-height: inherit;overflow-wrap: normal;display: inline;overflow: visible;"><span leaf=""># 生成普通不分片压缩包</span><br/><span leaf="">zipany -s /path/to/source -o output.tar.gz</span><br/><span leaf=""># 将压缩包限制在最大 100MB，如果超出则会生成 output.tar.gz.part1, output.tar.gz.part2 ...</span><br/><span leaf="">zipany -s /path/to/source -o output.tar.gz -S 100</span></code></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="# 生成普通不分片压缩包
zipany -s /path/to/source -o output.tar.gz

# 将压缩包限制在最大 100MB，如果超出则会生成 output.tar.gz.part1, output.tar.gz.part2 ...
zipany -s /path/to/source -o output.tar.gz -S 100" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">解压分片压缩包方法（系统内置）：</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><h4 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1em;font-weight: 600;line-height: 1.25;"><span leaf="">Windows 命令行：</span></h4><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;"><code style="white-space:pre-wrap;box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;background: 0px 0px rgba(0, 0, 0, 0);border-radius: 6px;margin: 0px;padding: 0px;word-break: normal;border: 0px;line-height: inherit;overflow-wrap: normal;display: inline;overflow: visible;"><span leaf="">copy /b output.tar.gz.part* output.tar.gz</span><br/><span leaf="">tar -xzf output.tar.gz</span></code></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="copy /b output.tar.gz.part* output.tar.gz

tar -xzf output.tar.gz" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><h4 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1em;font-weight: 600;line-height: 1.25;"><span leaf="">Linux/Mac 命令行：</span></h4><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;"><code style="white-space:pre-wrap;box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;background: 0px 0px rgba(0, 0, 0, 0);border-radius: 6px;margin: 0px;padding: 0px;word-break: normal;border: 0px;line-height: inherit;overflow-wrap: normal;display: inline;overflow: visible;"><span leaf="">cat output.tar.gz.part* &gt; output.tar.gz</span><br/><span leaf="">tar -xzf output.tar.gz</span></code></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="cat output.tar.gz.part* &gt; output.tar.gz
tar -xzf output.tar.gz
" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">生成默认配置文件</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span leaf="">zipany --gen</span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="zipany --gen" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">这将生成一个 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">zipany.yaml</span></code><span leaf=""> 配置文件，包含默认过滤规则和预设配置。</span></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">列出所有预设</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span leaf="">zipany --list</span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="zipany --list" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">这将输出当前配置文件中所有可用的预设名称。</span></p><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;"><span leaf="">命令行参数</span></h2><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><markdown-accessiblity-table data-catalyst="" style="box-sizing: border-box;display: block;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;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;"><table style="box-sizing: border-box;border-spacing: 0px;border-collapse: collapse;margin-top: 0px;margin-bottom: 16px;font-variant: tabular-nums;width: max-content;max-width: 100%;display: block;overflow: auto;"><thead><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">参数</span></p></th><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">简写</span></p></th><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">说明</span></p></th></tr></thead><tbody><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">--source</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">-s</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">源目录路径（必需）</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">--output</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">-o</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">输出压缩包路径（可选，默认自动生成）</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">--config</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">-c</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">配置文件路径（可选）</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">--preset</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">-p</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">预设配置名称（默认：common），支持 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">ext:xxx,xxx</span></code><span leaf=""> 或 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">dir:xxx,xxx</span></code><span leaf=""> 格式</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">--gen</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">生成默认配置文件到 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">&lt;ConfigPath&gt;</span></code></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">--list</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">列出配置文件中的所有预设</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">--white</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">-w</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">白名单模式：仅保留预设中的扩展名列表</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">--se</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">跳过空目录</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">--no-bar</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">-n</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">不显示进度条</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">--version</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">-v</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">输出版本信息</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">--lf</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">日志文件路径（默认：不输出到文件）</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">--ll</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">日志级别（debug/info/warn/error，默认：info）</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">--cf</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">控制台日志格式（T L C M F 组合或 off|null 禁用，默认：M）</span></p></td></tr></tbody></table></markdown-accessiblity-table><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;"><span leaf="">配置文件</span></h2><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">配置文件结构</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span leaf="">#</span></span><span leaf=""> 预设配置示例</span></span><span style="box-sizing: border-box;color: rgb(5, 80, 174);"><span leaf="">presets</span></span><span leaf="">:  </span><span style="box-sizing: border-box;color: rgb(5, 80, 174);"><span leaf="">php</span></span><span leaf="">:    </span><span style="box-sizing: border-box;color: rgb(5, 80, 174);"><span leaf="">description</span></span><span leaf="">: </span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#34;</span></span><span leaf="">常见的 PHP 保存方案</span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#34;</span></span></span><span style="box-sizing: border-box;color: rgb(5, 80, 174);"><span leaf="">stored_ext</span></span><span leaf="">:       - </span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">php</span></span><span leaf="">       - </span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">tpl</span></span><span leaf="">       - </span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">vue</span></span><span style="box-sizing: border-box;color: rgb(5, 80, 174);"><span leaf="">ignore_ext</span></span><span leaf="">:       - </span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">jpg</span></span><span leaf="">       - </span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">png</span></span><span leaf="">       - </span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">mp3</span></span><span leaf="">       - </span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">mp4</span></span><span style="box-sizing: border-box;color: rgb(5, 80, 174);"><span leaf="">ignore_dir</span></span><span leaf="">:       - </span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#34;</span></span><span leaf="">.cache</span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#34;</span></span></span><span leaf="">       - </span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#34;</span></span><span leaf="">tmp</span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#34;</span></span></span><span leaf="">       - </span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#34;</span></span><span leaf="">node_modules</span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#34;</span></span></span><span leaf="">       - </span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#34;</span></span><span leaf="">vendor</span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#34;</span></span></span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="# 预设配置示例
presets:
  php:
    description: &#34;常见的 PHP 保存方案&#34;
    stored_ext:
      - php
      - tpl
      - vue
    ignore_ext:
      - jpg
      - png
      - mp3
      - mp4
    ignore_dir:
      - &#34;.cache&#34;
      - &#34;tmp&#34;
      - &#34;node_modules&#34;
      - &#34;vendor&#34;" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">配置说明</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><h4 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1em;font-weight: 600;line-height: 1.25;"><span leaf="">白名单模式 (</span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: inherit;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0px 0.2em;"><span leaf="">stored_ext</span></code><span leaf="">)</span></h4><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">-w 启用白名单模式</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">只保留指定扩展名的文件</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">其他所有文件都会被排除</span></p></li></ul><h4 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1em;font-weight: 600;line-height: 1.25;"><span leaf="">黑名单模式 (</span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: inherit;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0px 0.2em;"><span leaf="">ignore_ext</span></code><span leaf="">, </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: inherit;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0px 0.2em;"><span leaf="">ignore_dir</span></code><span leaf="">)</span></h4><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">默认使用黑名单模式</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">排除 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">ignore_ext</span></code><span leaf=""> 中指定的文件扩展名</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">排除 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">ignore_dir</span></code><span leaf=""> 中指定的目录名</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">其他文件和目录都会被包含</span></p></li></ul><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">预设配置</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">程序内置了 多种预设， 示例 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">php</span></code><span leaf=""> 预设，适用于 PHP 项目打包：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">保留文件</span></strong><p><span leaf="">: </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">.php</span></code><span leaf="">, </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">.tpl</span></code><span leaf="">, </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">.vue</span></code></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">忽略文件</span></strong><p><span leaf="">: 图片 (jpg, jpeg, png, bmp, gif, webp)、音视频 (mp3, mp4, avi, mov, wmv)、压缩包 (zip, rar, 7z)</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">忽略目录</span></strong><p><span leaf="">: </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">.cache</span></code><span leaf="">, </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">.temp</span></code><span leaf="">, </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">tmp</span></code><span leaf="">, </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">temp</span></code><span leaf="">, </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">.git</span></code><span leaf="">, </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">node_modules</span></code><span leaf="">, </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">vendor</span></code></p></li></ul><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;"><span leaf="">使用示例</span></h2><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">示例 1: 打包 PHP 项目</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span leaf="">#</span></span><span leaf=""> 使用 PHP 预设打包</span></span><span leaf="">zipany -s /var/www/myapp -o /backup/myapp.tar.gz -p php</span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="# 使用 PHP 预设打包
zipany -s /var/www/myapp -o /backup/myapp.tar.gz -p php" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">输出：</span></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;"><code style="white-space:pre-wrap;box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;background: 0px 0px rgba(0, 0, 0, 0);border-radius: 6px;margin: 0px;padding: 0px;word-break: normal;border: 0px;line-height: inherit;overflow-wrap: normal;display: inline;overflow: visible;"><span leaf="">使用配置文件：config.yaml</span><br/><span leaf="">源目录：/var/www/myapp</span><br/><span leaf="">输出文件：/backup/myapp.tar.gz</span><br/><span leaf="">使用预设：php</span><br/><span leaf="">过滤规则已启用</span><br/><span leaf="">开始打包...</span><br/><span leaf="">打包完成!</span><br/><span leaf="">  输出文件：/backup/myapp.tar.gz</span><br/><span leaf="">  文件大小：2.35 MB</span><br/><span leaf="">  文件数量：156</span><br/><span leaf="">  目录数量：23</span></code></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="使用配置文件：config.yaml
源目录：/var/www/myapp
输出文件：/backup/myapp.tar.gz
使用预设：php
过滤规则已启用
开始打包...

打包完成!
  输出文件：/backup/myapp.tar.gz
  文件大小：2.35 MB
  文件数量：156
  目录数量：23" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">示例 2: 使用自定义配置文件</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span leaf="">#</span></span><span leaf=""> 生成配置文件</span></span><span leaf="">zipany --gen</span><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span leaf="">#</span></span><span leaf=""> 编辑 zipany.yaml，添加自定义规则</span></span><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span leaf="">#</span></span><span leaf=""> 使用自定义配置打包</span></span><span leaf="">zipany -s ./src -o ./output.tar.gz -c myconfig.yaml</span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="# 生成配置文件
zipany --gen

# 编辑 zipany.yaml，添加自定义规则

# 使用自定义配置打包
zipany -s ./src -o ./output.tar.gz -c myconfig.yaml" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">示例 3: 打包时跳过空目录</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span leaf="">#</span></span><span leaf=""> 跳过空目录</span></span><span leaf="">zipany -s ./project -o ./project.tar.gz --se</span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="# 跳过空目录
zipany -s ./project -o ./project.tar.gz --se" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">构建发布版本</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span leaf="">#</span></span><span leaf=""> Windows</span></span><span leaf="">CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o zipany.exe </span><span style="box-sizing: border-box;color: rgb(5, 80, 174);"><span leaf="">.</span></span><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span leaf="">#</span></span><span leaf=""> Linux</span></span><span leaf="">CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o zipany </span><span style="box-sizing: border-box;color: rgb(5, 80, 174);"><span leaf="">.</span></span><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span style="box-sizing: border-box;color: rgb(89, 99, 110);"><span leaf="">#</span></span><span leaf=""> macOS</span></span><span leaf="">CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o zipany </span><span style="box-sizing: border-box;color: rgb(5, 80, 174);"><span leaf="">.</span></span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="# Windows
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o zipany.exe .

# Linux
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o zipany .

# macOS
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o zipany ." tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;"><span leaf="">常见问题</span></h2><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">Q: 如何排除特定大小的文件？</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">A: 当前版本不支持按文件大小过滤，可以通过 Issue 提出此需求。</span></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">Q: 支持 zip 格式吗？</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">A: 当前仅支持 tar.gz 格式，未来版本可能会添加其他格式支持。</span></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">Q: 配置文件放在哪里？</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 0px !important;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">A: 程序会在当前工作目录和/.config/目录，自动查找 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">zipany.yaml</span></code><span leaf="">文件， 未找到配置文件路径时默认使用内置配置文件，也可以使用 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">-c</span></code><span leaf=""> 参数指定路径。</span></p></div><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100% 100%;text-align: left;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=2d404a2d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjklAO9ezM6ymrNndsrPn9lZ3FyFiaibib5n6nicPsotVIIILEARU4QSNMTA%2F640%3Fwx_fmt%3Dpng&#34;);margin-bottom: 0px;"><div style="background-repeat: no-repeat;background-position: 0% 4%;background-size: 100%;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=767f4cec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjSZevnnVaheZ2lF9BFRIxBhhT2I64n8ZWKyRZcP7OUBUFlpyzLbwHibQ%2F640%3Fwx_fmt%3Dpng&#34;);"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);"><div style="margin-bottom: unset;"><div><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;"><img class="rich_pages wxw-img" data-aistatus="1" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007001" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="258" style="vertical-align: middle;width: 100%;height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=38982032&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div></div></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=1bba1fc3&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490906%26idx%3D1%26sn%3D625587bdaa3bddfe208e856ab3f1dd5c">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 22 Jun 2026 14:00:00 +0800</pubDate>
    </item>
    <item>
      <title>【工具】CodeCleaner - 开源代码文件统计和清理工具</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490902&amp;idx=1&amp;sn=d19df0988311e703aa792f1454296cf7</link>
      <description>【工具】CodeCleaner - 代码文件统计和清理工具</description>
      <content:encoded><![CDATA[<p>原创 <span>酒零</span> <span>2026-06-17 00:00</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=185969a2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FfL1TQ0l0Qw1W8ffdg7X42Mfia2wPJ4JhfLVVlQZpKgHknIaMEpsmjGIFsZzoib5oxf0HncQz2NjACkzzKiaNgTMeQo9A84dUZxMlVvZDQ2MiaWM%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>【工具】CodeCleaner - 代码文件统计和清理工具</p>
  <p style="margin-bottom: 0px;"><span leaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100006977" data-ratio="0.6198757763975156" data-s="300,640" data-type="png" data-w="805" style="color: rgb(51, 51, 51);font-size: 14px;letter-spacing: 1.5px;text-align: center;height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=8c8b80b1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjuJtkhP7vxlCDuQbSnofqkMWgjtQCZqKTrdm330DH5kk8NgibIR3cNQQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p style="margin-bottom: 0px;text-align: left;letter-spacing: 1.5px;line-height: 1.75em;"><strong style="font-size: 20px;letter-spacing: 1.5px;"><span style="font-family: 宋体;"><span leaf="">0x00 前言</span></span></strong></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><p style="line-height: 1.5em;letter-spacing: 1.5px;"><strong><span leaf="">免责声明：继续阅读文章视为您已同意[</span></strong><strong><span leaf=""><a class="normal_text_link mp_article_text_link" target="_blank" style="font-size: 16px;font-family: 宋体;" href="http://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247489726&amp;idx=1&amp;sn=e5459d91f53caf90e76c6558dc8b4ac9&amp;chksm=fad4c5a9cda34cbf0d02c24383827a906e7d08d5694d452a0cc18988f130abab371735ee1843&amp;scene=21#wechat_redirect" textvalue="NOVASEC免责声明" data-itemshowtype="0" linktype="text" data-linktype="2">NOVASEC免责声明</a></span></strong><strong><span leaf="">].</span></strong></p></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><p style="line-height: 1.5em;"><span style="font-size: 14px;"><em><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="">注：本文属于推荐系列文章，所推荐内容并非全部由本团队开源实现。文章旨在分享各类优质项目，提升其关注度与影响力，文中观点仅代表作者个人看法。若您有更合适的替代项目，欢迎在留言区推荐分享，共同推荐优质项目资源。</span></span></strong></strong></em></span></p><p data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="6 3 []"><h1 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 0px !important;margin-right: 0px;margin-bottom: 16px;margin-left: 0px;font-size: 2em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">前言</span></h1></p><p style="line-height: 1.5em;"><span leaf="">由于发现 </span><span leaf="">CodeStatistics 在日常使用时，发现还需要进行一些无用代码清理操作，因此在 </span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;line-height: 1.5em;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">CodeStatistics 包的</span><span leaf="">的基础上加入了基于预设模式的代码清理功能和js格式化功能。</span></p><h1 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 0px !important;margin-right: 0px;margin-bottom: 16px;margin-left: 0px;font-size: 2em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">CodeCleaner - Go 代码文件清理工具</span></h1><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">一个基于 Go 语言开发的命令行程序，用于清理指定目录及其子目录中的非代码文件，并且也支持</span><span leaf="">文件数量和后缀类型统计。</span></p><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;"><span leaf="">功能特性</span></h2><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing:border-box;font-weight:bold;"><p><span leaf=""><span textstyle="" style="font-weight: bold;">支持文件数量和类型统计模式</span></span></p></li><li style="box-sizing:border-box;margin-top:0.25em;font-weight:bold;"><p><span leaf=""><span textstyle="" style="font-weight: bold;">根据预设规则或自定义规则删除非代码文件</span></span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">支持空文件检测、空目录检测, 删除无用路径</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">提供预览模式（Dry Run）</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">默认黑名单模式(仅移除指定后缀或预设后缀)</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">支持白名单模式(仅保留指定后缀或预设后缀)</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">后缀配置时, 支持使用 none 表示 无后缀文件</span></p></li><li style="box-sizing:border-box;margin-top:0.25em;font-weight:bold;"><p><span leaf=""><span textstyle="" style="font-weight: bold;">支持 JS 代码格式化 (依赖 node js-beautify)</span></span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">使用 YAML 配置文件 实现预设的清理和存储后缀</span></p></li></ul></div><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">基本使用</span></h2><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">首先使用 -s/-S 统计目录下的文件后缀数量 确定需要删除的文件后缀</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">然后使用 -P/-w 指定需要保留或需要移除的后缀类型</span></p></li></ul><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="bash"><code><span leaf=""><span class="code-snippet__comment"># 统计模式 统计目录下各种后缀频率 常用</span></span></code><br/><code><span leaf="">./codecleaner -p path/to/src/dir -s</span></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf=""><span class="code-snippet__comment"># 统计模式 统计每个目录下文件数量 极少使用</span></span></code><br/><code><span leaf="">./codecleaner -p path/to/src/dir -S</span></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf=""><span class="code-snippet__comment"># 使用 Go 预设清理源码目录 黑名单模式（仅移除预设中 remove 键中指定的文件类型）</span></span></code><br/><code><span leaf="">./codecleaner -p path/to/src/dir -P go </span></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf=""><span class="code-snippet__comment"># 使用 Go 预设清理源码目录 白名单模式（仅保留预设中 stored 键 指定的文件类型）</span></span></code><br/><code><span leaf="">./codecleaner -p path/to/src/dir -P go -w</span></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf=""><span class="code-snippet__comment"># 预览模式，仅显示操作,但是不实际进行删除</span></span></code><br/><code><span leaf="">./codecleaner -p path/to/src/dir -P go -d</span></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf=""><span class="code-snippet__comment"># 使用 自定义后缀清理目录 黑名单模式（移除ext:指定的 js html后缀文件类型, 移除 dir:指定的目录名）</span></span></code><br/><code><span leaf="">./codecleaner -p path/to/src/dir -P ext:js,html,<span class="code-snippet__built_in">dir</span>:temp</span></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf=""><span class="code-snippet__comment"># 使用 自定义后缀清理目录 白名单模式（保留ext:指定的go后缀文件类型, 移除dir:指定的目录名）</span></span></code><br/><code><span leaf="">./codecleaner -p path/to/src/dir -P ext:go,<span class="code-snippet__built_in">env</span>,<span class="code-snippet__built_in">dir</span>:temp -w</span></code><br/><code></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf="">注意: <span class="code-snippet__built_in">dir</span>:关键字当前只支持声明需要移除的目录, 和配置文件中的rmdirs键相同</span></code><br/></pre></p></div><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;" data-pm-slice="0 0 []"><span leaf="">配置文件格式</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;"><code style="white-space:pre-wrap;box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;background: 0px 0px rgba(0, 0, 0, 0);border-radius: 6px;margin: 0px;padding: 0px;word-break: normal;border: 0px;line-height: inherit;overflow-wrap: normal;display: inline;overflow: visible;"><span leaf="">presets:</span><span leaf=""><br/></span><span leaf="">  java:</span><span leaf=""><br/></span><span leaf="">    description: &#34;常见Java文件清理文档&#34;</span><span leaf=""><br/></span><span leaf="">    stored:</span><span leaf=""><br/></span><span leaf="">      - java</span><span leaf=""><br/></span><span leaf="">      - class</span><span leaf=""><br/></span><span leaf="">      - jsp</span><span leaf=""><br/></span><span leaf="">      - jar</span><span leaf=""><br/></span><span leaf="">      - groovy</span><span leaf=""><br/></span><span leaf="">      - ini</span><span leaf=""><br/></span><span leaf="">      - prop</span><span leaf=""><br/></span><span leaf="">      - properties</span><span leaf=""><br/></span><span leaf="">      - xml</span><span leaf=""><br/></span><span leaf="">      - yml</span><span leaf=""><br/></span><span leaf="">      - yaml</span><span leaf=""><br/></span><span leaf="">    remove:</span><span leaf=""><br/></span><span leaf="">    rmdirs:</span></code></pre><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 3 []"><h1 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 0px !important;margin-right: 0px;margin-bottom: 16px;margin-left: 0px;font-size: 2em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">项目地址</span></h1><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></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=""><span class="code-snippet__attr">https</span>:<span class="code-snippet__comment">//github.com/winezer0/CodeCleaner</span></span></code></pre></p></div><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100% 100%;text-align: left;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=2d404a2d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjklAO9ezM6ymrNndsrPn9lZ3FyFiaibib5n6nicPsotVIIILEARU4QSNMTA%2F640%3Fwx_fmt%3Dpng&#34;);margin-bottom: 0px;"><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 4%;background-size: 100%;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=767f4cec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjSZevnnVaheZ2lF9BFRIxBhhT2I64n8ZWKyRZcP7OUBUFlpyzLbwHibQ%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;"><img class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="258" style="vertical-align: middle;width: 100%;height: auto !important;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007001" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=38982032&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">NOVASEC</span></p></div></div></div></div></div></div></div></div></div></div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);" data-remoteid="c1752114746949"><div style="margin-bottom: unset;"><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;"><img class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="430" style="vertical-align: middle;width: 100%;height: auto !important;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007002" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=b1271a8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">WINEZER0</span></p></div></div></div></div></div></div></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=9048379a&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490902%26idx%3D1%26sn%3Dd19df0988311e703aa792f1454296cf7">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Wed, 17 Jun 2026 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>【工具】sqlichecker  - 开源sql注入过滤关键字检测demo</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490901&amp;idx=1&amp;sn=90daf33a14b4273f6347399917115144</link>
      <description>【工具】sqlichecker  sql注入过滤关键字检测</description>
      <content:encoded><![CDATA[<p>原创 <span>酒零</span> <span>2026-06-15 08:00</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=68df3dff&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FfL1TQ0l0Qw1ox7oP2iaIcDc1pCnSyj5AN4ru1lpxJEZWI72X2kkqYNTw9lTQRSTu64Fibj3X77q6UdibNiaCQCx7EAiaaT4k9kJw6D7Ysd3RHE4g%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>【工具】sqlichecker  sql注入过滤关键字检测</p>
  <p style="margin-bottom: 0px;"><span leaf=""><img class="rich_pages wxw-img" data-ratio="0.6198757763975156" data-s="300,640" data-type="png" data-w="805" style="color: rgb(51, 51, 51);font-size: 14px;letter-spacing: 1.5px;text-align: center;height: auto !important;" data-imgfileid="100006977" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=8c8b80b1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjuJtkhP7vxlCDuQbSnofqkMWgjtQCZqKTrdm330DH5kk8NgibIR3cNQQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p style="margin-bottom: 0px;text-align: left;letter-spacing: 1.5px;line-height: 1.75em;"><strong style="font-size: 20px;letter-spacing: 1.5px;"><span style="font-family: 宋体;"><span leaf="">0x00 前言</span></span></strong></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><p style="line-height: 1.5em;letter-spacing: 1.5px;"><strong><span leaf="">免责声明：继续阅读文章视为您已同意[</span></strong><strong><span leaf=""><a class="normal_text_link mp_article_text_link" target="_blank" style="font-size: 16px;font-family: 宋体;" href="http://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247489726&amp;idx=1&amp;sn=e5459d91f53caf90e76c6558dc8b4ac9&amp;chksm=fad4c5a9cda34cbf0d02c24383827a906e7d08d5694d452a0cc18988f130abab371735ee1843&amp;scene=21#wechat_redirect" textvalue="NOVASEC免责声明" data-itemshowtype="0" linktype="text" data-linktype="2">NOVASEC免责声明</a></span></strong><strong><span leaf="">].</span></strong></p></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><p style="line-height: 1.5em;"><span style="font-size: 14px;"><em><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="">注：本文属于推荐系列文章，所推荐内容并非全部由本团队开源实现。文章旨在分享各类优质项目，提升其关注度与影响力，文中观点仅代表作者个人看法。若您有更合适的替代项目，欢迎在留言区推荐分享，共同推荐优质项目资源。</span></span></strong></strong></em></span></p><h1 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 0px !important;margin-right: 0px;margin-bottom: 16px;margin-left: 0px;font-size: 2em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">前言</span></h1><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span style="color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;display: inline !important;float: none;" data-pm-slice="0 0 []"><span leaf="">这是一个实际似乎没有什么用的、但是SQLI过程中有想过几次的小工具。</span></span></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span style="color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;display: inline !important;float: none;" data-pm-slice="0 0 []"><span leaf="">开发目标是用于自动化检测sql注入时的关键字是否被过滤，但由于实际过程中</span><span style="color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;display: inline !important;float: none;" data-pm-slice="0 0 []"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;dir&#34;:&#34;auto&#34;,&#34;style&#34;:&#34;box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: \&#34;Mona Sans VF\&#34;, -apple-system, BlinkMacSystemFont, \&#34;Segoe UI\&#34;, \&#34;Noto Sans\&#34;, Helvetica, Arial, sans-serif, \&#34;Apple Color Emoji\&#34;, \&#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;span&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;color: rgb(31, 35, 40);font-family: \&#34;Mona Sans VF\&#34;, -apple-system, BlinkMacSystemFont, \&#34;Segoe UI\&#34;, \&#34;Noto Sans\&#34;, Helvetica, Arial, sans-serif, \&#34;Apple Color Emoji\&#34;, \&#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;display: inline !important;float: none;&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">（由于不同场景下比较难以完全适配）</span></span><span leaf="">还需要手动拼接sql语句检测方法。大部分场景下不如直接使用dbkeys_&lt;dbtype&gt;.csv 中的语法关键字，再使用yakit或burp进行重放检测。</span></span></p><div data-autoskip="1" data-pm-slice="3 6 []"><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;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="2 3 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span leaf="" style="color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">本项目</span><span leaf="" style="color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">主要是基于 </span><code><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;pre&#34;,&#34;attributes&#34;:{&#34;class&#34;:&#34;notranslate&#34;,&#34;style&#34;:&#34;box-sizing: border-box; font-family: \&#34;Monaspace Neon\&#34;, ui-monospace, SFMono-Regular, \&#34;SF Mono\&#34;, Menlo, Consolas, \&#34;Liberation Mono\&#34;, monospace; font-size: 13.6px; margin-top: 0px; margin-bottom: 0px; tab-size: 4; overflow-wrap: normal; padding: 16px; color: rgb(31, 35, 40); background-color: rgb(246, 248, 250); border-radius: 6px; line-height: 1.45; overflow: auto;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;code&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;white-space:pre-wrap;box-sizing: border-box; font-family: \&#34;Monaspace Neon\&#34;, ui-monospace, SFMono-Regular, \&#34;SF Mono\&#34;, Menlo, Consolas, \&#34;Liberation Mono\&#34;, monospace; font-size: 13.6px; tab-size: 4;  background: 0px 0px rgba(0, 0, 0, 0); border-radius: 6px; margin: 0px; padding: 0px; word-break: normal; border: 0px; line-height: inherit; overflow-wrap: normal; display: inline; overflow: visible;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" style="color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">sqlichecker 中的 </span><span leaf="" style="color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">dbkeys_&lt;dbtype&gt;.csv 中的sql关键字来构造包</span></code></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;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="2 3 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><code><span leaf="" style="color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">含不同SQLI关键字的请求报文，并编写能够区分服务端响应状态表达式来实现sqli时被过滤和未被过滤关键字的检测。</span></code></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;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="2 3 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><code><span leaf="" style="color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">目前的实现比较简单，只是通过替换占位符从而实现对每个关键字进度独立重放，实际上还可以进行（</span><code><span leaf="" style="color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 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;data-autoskip&#34;:&#34;1&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: \&#34;Mona Sans VF\&#34;, -apple-system, BlinkMacSystemFont, \&#34;Segoe UI\&#34;, \&#34;Noto Sans\&#34;, Helvetica, Arial, sans-serif, \&#34;Apple Color Emoji\&#34;, \&#34;Segoe UI 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: start;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;2 3 [\&#34;para\&#34;,{\&#34;tagName\&#34;:\&#34;section\&#34;,\&#34;attributes\&#34;:{\&#34;data-autoskip\&#34;:\&#34;1\&#34;,\&#34;style\&#34;:\&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;\&#34;,\&#34;data-pm-slice\&#34;:\&#34;3 6 []\&#34;},\&#34;namespaceURI\&#34;:\&#34;http://www.w3.org/1999/xhtml\&#34;}]&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;code&#34;,&#34;attributes&#34;:{},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">合并多个关键字后重放</span></code><span leaf="" style="color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">），减少重放次数（未实现，因为对于其他不方便回显的场景不太实用）</span><code><span leaf="" style="color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">，或者批量进行某些payload修改处理后重放</span><span leaf="" style="color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">（未实现，因为sqlmap的tamper功能已经覆盖到了）。</span></code></code></p></div><h1 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 0px !important;margin-right: 0px;margin-bottom: 16px;margin-left: 0px;font-size: 2em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">SQL 注入关键字检测工具</span></h1><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">本项目包含一个带有关键字过滤功能的演示服务端和一个 SQL 关键字检测工具，用于测试 SQL 注入漏洞的关键字过滤情况。</span></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;" data-pm-slice="0 0 []"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;heading&#34;,{&#34;tagName&#34;:&#34;h3&#34;,&#34;attributes&#34;:{&#34;tabindex&#34;:&#34;-1&#34;,&#34;class&#34;:&#34;heading-element&#34;,&#34;dir&#34;:&#34;auto&#34;,&#34;style&#34;:&#34;box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; font-size: 1.25em; font-weight: 600; line-height: 1.25;&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;,&#34;level&#34;:3}]">sqlichecker关键参数</span></h3><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;"><code style="white-space:pre-wrap;box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;background: 0px 0px rgba(0, 0, 0, 0);border-radius: 6px;margin: 0px;padding: 0px;word-break: normal;border: 0px;line-height: inherit;overflow-wrap: normal;display: inline;overflow: visible;"><span leaf="">Usage: sqlichecker [OPTIONS]</span><span leaf=""><br/></span><span leaf="">Application Options:</span><span leaf=""><br/></span><span leaf="">  -r, --req:               HTTP 请求包文件路径</span><span leaf=""><br/></span><span leaf="">  -k, --keys:              关键字 CSV 文件路径或数据库类型</span><span leaf=""><br/></span><span leaf="">                            （mysql/mssql/oracle/postgresql/sqlite）</span><span leaf=""><br/></span><span leaf="">  -e, --expr:              检测表达式</span><span leaf=""><br/></span><span leaf="">                            变量：keyword, keylength, resp_text, resp_time</span><span leaf=""><br/></span><span leaf="">                            操作符：contains, in, + - * / == != &lt; &gt; and or not</span><span leaf=""><br/></span><span leaf="">                            函数：length, counts</span></code></pre><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;" data-pm-slice="0 0 []"><span leaf="">请求包占位符</span></h3><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">请求文件为标准 HTTP raw 格式（首行方法+路径+协议，header 区，空行，body 区）。 支持以下占位符：</span></p><markdown-accessiblity-table data-catalyst="" style="box-sizing: border-box;display: block;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;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;"><table style="box-sizing: border-box;border-spacing: 0px;border-collapse: collapse;margin-top: 0px;margin-bottom: 16px;font-variant: tabular-nums;width: max-content;max-width: 100%;display: block;overflow: auto;"><thead><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">占位符</span></p></th><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">替换值</span></p></th></tr></thead><tbody><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">$KEYWORD$</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">URL 编码后的关键字（空格 → </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">+</span></code><span leaf="">）</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">$KEYLENGTH$</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">关键字字节长度</span></p></td></tr></tbody></table></markdown-accessiblity-table><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;" data-pm-slice="0 0 []"><span leaf="">表达式语法（-e 参数）</span></h3><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">底层基于 antonmedv/expr 库，</span><strong style="box-sizing: border-box;font-weight: 600;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">contains</span></code></strong><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">和</span></strong><strong style="box-sizing: border-box;font-weight: 600;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">in</span></code></strong><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">是内置操作符</span></strong><span leaf="">，直接使用即可。</span></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">表达式支持</span><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">无引号简写</span></strong><span leaf="">：</span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">contains</span></code><span leaf=""> 和 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">in [...]</span></code><span leaf=""> 中的字符串字面量可以省略引号，预处理会自动补全。已知变量名（keyword/keylength/resp_text/resp_time）和数字不会被误加引号。</span></p><h4 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1em;font-weight: 600;line-height: 1.25;" data-pm-slice="0 0 []"><span leaf="">可用变量</span></h4><markdown-accessiblity-table data-catalyst="" style="box-sizing: border-box;display: block;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;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;"><table style="box-sizing: border-box;border-spacing: 0px;border-collapse: collapse;margin-top: 0px;margin-bottom: 16px;font-variant: tabular-nums;width: max-content;max-width: 100%;display: block;overflow: auto;"><thead><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">变量名</span></p></th><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">类型</span></p></th><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">含义</span></p></th></tr></thead><tbody><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">keyword</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">string</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">当前测试的关键字原文</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">keylength</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">int</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">关键字字节长度</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">resp_text</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">string</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">完整响应体</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">resp_time</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">float</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">响应耗时（秒）</span></p></td></tr></tbody></table></markdown-accessiblity-table><h4 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1em;font-weight: 600;line-height: 1.25;"><span leaf="">内置操作符</span></h4><markdown-accessiblity-table data-catalyst="" style="box-sizing: border-box;display: block;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;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;"><table style="box-sizing: border-box;border-spacing: 0px;border-collapse: collapse;margin-top: 0px;margin-bottom: 16px;font-variant: tabular-nums;width: max-content;max-width: 100%;display: block;overflow: auto;"><thead><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">语法</span></p></th><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">含义</span></p></th></tr></thead><tbody><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">resp_text contains &#34;success&#34;</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">字符串包含子串</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">keyword in [&#34;select&#34;,&#34;from&#34;]</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">元素在数组中</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">resp_time &gt; 3.0</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">数值比较</span></p></td></tr></tbody></table></markdown-accessiblity-table><h4 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1em;font-weight: 600;line-height: 1.25;"><span leaf="">自定义函数</span></h4><markdown-accessiblity-table data-catalyst="" style="box-sizing: border-box;display: block;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;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;"><table style="box-sizing: border-box;border-spacing: 0px;border-collapse: collapse;margin-top: 0px;margin-bottom: 16px;font-variant: tabular-nums;width: max-content;max-width: 100%;display: block;overflow: auto;"><thead><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">函数</span></p></th><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">含义</span></p></th></tr></thead><tbody><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">length(s)</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">字符串长度</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">counts(text, substr)</span></code></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">substr 在 text 中出现的次数</span></p></td></tr></tbody></table></markdown-accessiblity-table><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;" data-pm-slice="0 0 []"><span leaf="">请求包与表达式组合示例</span></h3></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><h4 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1em;font-weight: 600;line-height: 1.25;"><span leaf="">1. 报错注入</span></h4><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">请求包（</span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">demo/request_error.txt</span></code><span leaf="">）：</span></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span style="box-sizing: border-box;color: rgb(207, 34, 46);"><span leaf="">GET</span></span><span style="box-sizing: border-box;color: rgb(5, 80, 174);"><span leaf=""> /filtered_error_based?id=1%20AND%20EXTRACTVALUE(1,CONCAT(0x7e,&#39;$KEYWORD$&#39;,0x7e))-- HTTP/1.1</span></span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="GET /filtered_error_based?id=1%20AND%20EXTRACTVALUE(1,CONCAT(0x7e,&#39;$KEYWORD$&#39;,0x7e))-- HTTP/1.1
Host: 127.0.0.1:5000
User-Agent: Mozilla/5.0
Accept: */*" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">表达式：</span></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span leaf="">-e </span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#39;</span></span><span leaf="">counts(resp_text, keyword) &gt; 0</span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#39;</span></span></span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="-e &#39;counts(resp_text, keyword) &gt; 0&#39;" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">判断：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">关键字未过滤：响应中含 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">~关键字~</span></code><span leaf=""> 的 XPATH 错误</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">关键字已过滤：响应中显示 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">~~</span></code><span leaf="">（关键字被替换）</span></p></li></ul><h4 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1em;font-weight: 600;line-height: 1.25;"><span leaf="">2. 时间注入</span></h4><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">请求包（</span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">demo/request_time.txt</span></code><span leaf="">）：</span></p><p data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;" data-pm-slice="3 3 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span style="box-sizing: border-box;color: rgb(207, 34, 46);"><span leaf="">GET</span></span><span style="box-sizing: border-box;color: rgb(5, 80, 174);"><span leaf=""> /filtered_time_based?id=1%20AND%20IF(LENGTH(&#39;$KEYWORD$&#39;)&gt;=</span><span style="box-sizing: border-box;color: rgb(5, 80, 174);"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;pre&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;box-sizing: border-box;font-family: \&#34;Monaspace Neon\&#34;, ui-monospace, SFMono-Regular, \&#34;SF Mono\&#34;, Menlo, Consolas, \&#34;Liberation Mono\&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;&#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;box-sizing: border-box;color: rgb(5, 80, 174);&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">$KEYLENGTH$</span></span><span leaf="">,SLEEP(3),0)-- HTTP/1.1</span></span></pre></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">表达式：</span></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span leaf="">-e </span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#39;</span></span><span leaf="">resp_time &gt; 4.5</span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#39;</span></span></span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="-e &#39;resp_time &gt; 4.5&#39;" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">判断：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">关键字未过滤：</span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">IF</span></code><span leaf=""> 条件为 true，MySQL 执行 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">SLEEP(3)</span></code><span leaf="">，加上 Scan 失败分支 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">sleep(3)</span></code><span leaf="">，总耗时约 6 秒</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">关键字已过滤：</span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">IF</span></code><span leaf=""> 条件为 false，MySQL 不执行 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">SLEEP</span></code><span leaf="">，仅 Scan 失败分支 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">sleep(3)</span></code><span leaf="">，总耗时约 3 秒</span></p></li></ul><h4 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1em;font-weight: 600;line-height: 1.25;"><span leaf="">3. 布尔注入</span></h4><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">请求包（</span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">demo/request_bool.txt</span></code><span leaf="">）：</span></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span style="box-sizing: border-box;color: rgb(207, 34, 46);"><span leaf="">GET</span></span><span style="box-sizing: border-box;color: rgb(5, 80, 174);"><span leaf=""> /filtered_boolean_based?id=1%20AND%20LENGTH(&#39;$KEYWORD$&#39;)</span><span style="box-sizing: border-box;color: rgb(5, 80, 174);" data-pm-slice="2 3 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 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;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;pre&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;box-sizing: border-box; font-family: \&#34;Monaspace Neon\&#34;, ui-monospace, SFMono-Regular, \&#34;SF Mono\&#34;, Menlo, Consolas, \&#34;Liberation Mono\&#34;, monospace; font-size: 13.6px; margin-top: 0px; margin-bottom: 0px; tab-size: 4; overflow-wrap: normal; padding: 16px; color: rgb(31, 35, 40); background-color: rgb(246, 248, 250); border-radius: 6px; line-height: 1.45; overflow: auto; word-break: normal; min-height: 52px;&#34;,&#34;data-pm-slice&#34;:&#34;3 3 [\&#34;para\&#34;,{\&#34;tagName\&#34;:\&#34;section\&#34;,\&#34;attributes\&#34;:{\&#34;data-autoskip\&#34;:\&#34;1\&#34;,\&#34;style\&#34;:\&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;\&#34;,\&#34;data-pm-slice\&#34;:\&#34;3 6 []\&#34;},\&#34;namespaceURI\&#34;:\&#34;http://www.w3.org/1999/xhtml\&#34;}]&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span leaf="">&gt;=</span><span style="box-sizing: border-box;color: rgb(5, 80, 174);"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;para&#34;,{&#34;tagName&#34;:&#34;pre&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;box-sizing: border-box;font-family: \&#34;Monaspace Neon\&#34;, ui-monospace, SFMono-Regular, \&#34;SF Mono\&#34;, Menlo, Consolas, \&#34;Liberation Mono\&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;&#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;box-sizing: border-box;color: rgb(5, 80, 174);&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">$KEYLENGTH$-- HTTP/1.1</span></span></span></span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="GET /filtered_boolean_based?id=1%20AND%20LENGTH(&#39;$KEYWORD$&#39;)&gt;0-- HTTP/1.1
Host: 127.0.0.1:5000
User-Agent: Mozilla/5.0
Accept: */*" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">表达式：</span></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span leaf="">-e </span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#39;</span></span><span leaf="">resp_text contains &#34;success&#34;</span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#39;</span></span></span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="-e &#39;resp_text contains &#34;success&#34;&#39;" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">判断：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">关键字未过滤：查询条件成立，返回 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">{&#34;status&#34;:&#34;success&#34;}</span></code></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">关键字已过滤：条件失效，返回 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">{&#34;status&#34;:&#34;error&#34;}</span></code></p></li></ul><h4 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1em;font-weight: 600;line-height: 1.25;"><span leaf="">4. 联合注入</span></h4><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">请求包（</span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">demo/request_union.txt</span></code><span leaf="">）：</span></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span style="box-sizing: border-box;color: rgb(207, 34, 46);"><span leaf="">GET</span></span><span style="box-sizing: border-box;color: rgb(5, 80, 174);"><span leaf=""> /filtered_union_based?id=-1%20UNION%20SELSELECTECT%201,&#39;$KEYWORD$&#39;,3-- HTTP/1.1</span></span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="GET /filtered_union_based?id=-1%20UNION%20SELSELECTECT%201,&#39;$KEYWORD$&#39;,3-- HTTP/1.1
Host: 127.0.0.1:5000
User-Agent: Mozilla/5.0
Accept: */*" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">表达式：</span></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span leaf="">-e </span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#39;</span></span><span leaf="">counts(resp_text, keyword) &gt; 0</span><span style="box-sizing: border-box;color: rgb(10, 48, 105);"><span leaf="">&#39;</span></span></span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="-e &#39;counts(resp_text, keyword) &gt; 0&#39;" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><blockquote style="box-sizing: border-box;margin: 0px 0px 16px;color: rgb(89, 99, 110);border-left: 4px solid rgb(209, 217, 224);padding: 0px 1em;font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;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;"><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 0px;"><span leaf="">注意：联合注入当前在集成测试中被 skip，因为请求包中含有字面量 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">SELECT</span></code><span leaf="">，被服务端一并过滤后 SQL 子句不合法，过滤前后均为 MySQL 错误，无法通过内容区分。</span></p></blockquote><p style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;"><strong data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []"><span data-pm-slice="0 0 []"><span leaf="">项目地址</span></span></strong></strong></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="bash"><code><span leaf=""><a href="https://github.com/winezer0/sqlifilter" target="_blank">https://github.com/winezer0/sqlifilter</a></span></code></pre></p><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">注意事项</span></h2><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">本项目仅用于学习和测试目的，请勿用于未经授权的系统</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">服务端包含故意设置的安全漏洞，请勿在生产环境中使用</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">检测工具仅用于演示 SQL 注入检测的基本原理</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">URL 编码会自动应用于关键字，确保请求正确传输</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">默认跳过 SSL 证书校验（自签证书场景）；生产场景请启用 </span><code style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;white-space: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;margin: 0px;padding: 0.2em 0.4em;"><span leaf="">--verify-ssl</span></code></p></li></ul><div><div style="margin-bottom: unset;"><div style="margin-top: 2em;"><div><div style="text-align: unset;"><p style="color: rgb(255, 255, 255);text-align: center;"><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span leaf="">——完——</span></strong></strong></p></div></div></div></div></div></div><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100% 100%;text-align: left;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=2d404a2d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjklAO9ezM6ymrNndsrPn9lZ3FyFiaibib5n6nicPsotVIIILEARU4QSNMTA%2F640%3Fwx_fmt%3Dpng&#34;);margin-bottom: 0px;"><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 4%;background-size: 100%;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=767f4cec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjSZevnnVaheZ2lF9BFRIxBhhT2I64n8ZWKyRZcP7OUBUFlpyzLbwHibQ%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;"><img class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="258" style="vertical-align: middle;width: 100%;height: auto !important;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007001" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=38982032&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">NOVASEC</span></p></div></div></div></div></div></div></div></div></div></div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);" data-remoteid="c1752114746949"><div style="margin-bottom: unset;"><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;"><img class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="430" style="vertical-align: middle;width: 100%;height: auto !important;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007002" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=b1271a8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">WINEZER0</span></p></div></div></div></div></div></div></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=0502a540&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490901%26idx%3D1%26sn%3D90daf33a14b4273f6347399917115144">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 15 Jun 2026 08:00:00 +0800</pubDate>
    </item>
    <item>
      <title>【工具】CodeStatistics - 开源代码行数统计工具</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490900&amp;idx=1&amp;sn=80f5ce06eea8c27f0a8c4207c612bfc4</link>
      <description>【工具】CodeStatistics - 开源代码行数统计工具</description>
      <content:encoded><![CDATA[<p>原创 <span>酒零</span> <span>2026-06-12 00:00</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=53758a8f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FfL1TQ0l0Qw0IGG5RCFXIU6iccrQ0CQIKcdZ1CRvYcrWQ3fIJNzDwicYBhxBgZvU2wqia4NpNZQA8Svxv5tZ2MdiaunUxWPEg3sZAP4yZqzJtVJE%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>【工具】CodeStatistics - 开源代码行数统计工具</p>
  <p style="margin-bottom: 0px;" data-pm-slice="0 0 []"><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100006977" data-ratio="0.6198757763975156" data-s="300,640" data-type="png" data-w="805" style="color: rgb(51, 51, 51);font-size: 14px;letter-spacing: 1.5px;text-align: center;height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=8c8b80b1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjuJtkhP7vxlCDuQbSnofqkMWgjtQCZqKTrdm330DH5kk8NgibIR3cNQQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="margin-bottom: 0px;text-align: left;letter-spacing: 1.5px;line-height: 1.75em;"><strong style="font-size: 20px;letter-spacing: 1.5px;"><span style="font-family: 宋体;"><span leaf="">0x00 前言</span></span></strong></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><p style="line-height: 1.5em;letter-spacing: 1.5px;"><strong><span leaf="">免责声明：继续阅读文章视为您已同意[</span></strong><strong><span leaf=""><a class="normal_text_link mp_article_text_link" target="_blank" style="font-size: 16px;font-family: 宋体;" href="http://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247489726&amp;idx=1&amp;sn=e5459d91f53caf90e76c6558dc8b4ac9&amp;chksm=fad4c5a9cda34cbf0d02c24383827a906e7d08d5694d452a0cc18988f130abab371735ee1843&amp;scene=21#wechat_redirect" textvalue="NOVASEC免责声明" data-itemshowtype="0" linktype="text" data-linktype="2">NOVASEC免责声明</a></span></strong><strong><span leaf="">].</span></strong></p></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><p style="line-height: 1.5em;"><span style="font-size: 14px;"><em><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="">注：本文属于推荐系列文章，所推荐内容并非全部由本团队开源实现。文章旨在分享各类优质项目，提升其关注度与影响力，文中观点仅代表作者个人看法。若您有更合适的替代项目，欢迎在留言区推荐分享，共同推荐优质项目资源。</span></span></strong></strong></em></span></p><h1 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 0px !important;margin-right: 0px;margin-bottom: 16px;margin-left: 0px;font-size: 2em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">CodeStatistics</span></h1><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">CodeStatistics 是一个强代码统计工具，用于分析项目中的代码文件并生成详细的统计报告。 主要是是通过预设逻辑来进行配置</span></p><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;"><span leaf="">功能特点</span></h2><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">代码行数统计</span></strong><p><span leaf="">：统计项目中的总行数、代码行数、注释行数和空行数</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">文件类型分析</span></strong><p><span leaf="">：区分不同类型的文件（基于文件扩展名）</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">灵活的过滤机制</span></strong><p><span leaf="">：支持白名单和黑名单机制，可以指定要包含或排除的文件类型和目录</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">报告生成</span></strong><p><span leaf="">：可以生成CSV格式的统计报告</span></p></li></ul><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">白名单和黑名单</span></h2><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">默认白名单（代码文件）</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">工具内置了常见的代码文件扩展名白名单配置，包括：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">编程语言文件：.go, .java, .c, .cpp, .py, .js, .ts 等</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">模板语言文件：.vue, .svelte, .jsx, .tsx 等</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">前端语言文件：.html, .htm 等</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">脚本语言文件：.sh, .bash, .bat, .cmd 等</span></p></li></ul></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">默认黑名单（非代码文件）</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">工具内置了常见的非代码文件扩展名黑名单，包括：</span></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">数据库文件：.sql, .mysql 等</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">标记和配置语言文件：.xml, .css, .json, .yaml 等</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">构建和配置文件：.mk, .cmake 等</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">文档文件：.md, .rst, .tex 等</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">图片文件：.jpg, .png, .gif 等</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">音视频文件：.mp3, .mp4, .avi 等</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">压缩文件：.zip, .rar, .7z 等</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">工具默认会跳过以下目录：</span><span leaf=""> .git, node_modules, vendor, .svn, .hg, target, build, dist, .idea, .vscode</span></p></li></ul></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">示例</span></h2><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">基本分析</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span leaf="">./CodeStatistics --path ./myproject</span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="./CodeStatistics --path ./myproject" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">生成CSV报告</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span leaf="">./CodeStatistics --path ./myproject --output stats.csv</span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="./CodeStatistics --path ./myproject --output stats.csv" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">自定义白名单</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span leaf="">./CodeStatistics --path ./myproject --white-add .custom,.special</span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="./CodeStatistics --path ./myproject --white-add .custom,.special" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">自定义黑名单目录</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span leaf="">./CodeStatistics --path ./myproject --bdir-add cache,temp</span></pre><p><clipboard-copy aria-label="Copy code to clipboard" data-copy-feedback="Copied!" data-tooltip-direction="w" value="./CodeStatistics --path ./myproject --bdir-add cache,temp" tabindex="0" role="button" style="box-sizing: border-box;margin: 8px !important;padding: 0px !important;font-size: 14px;font-weight: 500;white-space: nowrap;vertical-align: middle;cursor: pointer;user-select: none;appearance: none;border: 0px;border-radius: 6px;line-height: 20px;display: flex !important;color: rgb(9, 105, 218);background-color: rgba(0, 0, 0, 0);box-shadow: none;transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);justify-content: center !important;align-items: center !important;width: 28px;height: 28px;"></clipboard-copy></p><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;"><span leaf="">输出示例</span></h2><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;"><code style="white-space:pre-wrap;box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;background: 0px 0px rgba(0, 0, 0, 0);border-radius: 6px;margin: 0px;padding: 0px;word-break: normal;border: 0px;line-height: inherit;overflow-wrap: normal;display: inline;overflow: visible;"><span leaf="">代码统计摘要:</span><span leaf="">总文件数: 120</span><span leaf="">总行数: 15000</span><span leaf="">代码行数: 10000 (66.7%)</span><span leaf="">空行数: 3000 (20.0%)</span><span leaf="">注释行数: 2000 (13.3%)</span><span leaf="">文件类型分布:</span><span leaf="">.go: 50 文件, 5000 行 (33.3%)</span><span leaf="">.js: 30 文件, 4000 行 (26.7%)</span><span leaf="">.html: 20 文件, 3000 行 (20.0%)</span><span leaf="">.css: 15 文件, 2000 行 (13.3%)</span><span leaf="">其他: 5 文件, 1000 行 (6.7%)</span></code></pre><p data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;"><span leaf="">项目地址</span></h2></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=""><span class="code-snippet__attr">https</span>:<span class="code-snippet__comment">//github.com/winezer0/CodeStatistics</span></span></code></pre></p></div><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100% 100%;text-align: left;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=2d404a2d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjklAO9ezM6ymrNndsrPn9lZ3FyFiaibib5n6nicPsotVIIILEARU4QSNMTA%2F640%3Fwx_fmt%3Dpng&#34;);margin-bottom: 0px;"><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 4%;background-size: 100%;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=767f4cec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjSZevnnVaheZ2lF9BFRIxBhhT2I64n8ZWKyRZcP7OUBUFlpyzLbwHibQ%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;"><img class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="258" style="vertical-align: middle;width: 100%;height: auto !important;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007001" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=38982032&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">NOVASEC</span></p></div></div></div></div></div></div></div></div></div></div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);" data-remoteid="c1752114746949"><div style="margin-bottom: unset;"><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;"><img class="rich_pages wxw-img" data-aistatus="1" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007002" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="430" style="vertical-align: middle;width: 100%;height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=b1271a8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">WINEZER0</span></p></div></div></div></div></div></div></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=df454791&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490900%26idx%3D1%26sn%3D80f5ce06eea8c27f0a8c4207c612bfc4">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>【工具】cdninfo - 开源cdn信息分析工具</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490896&amp;idx=1&amp;sn=7a426ba17df556251996b5421caf5463</link>
      <description>【工具】cdninfo cdn信息解析工具</description>
      <content:encoded><![CDATA[<p>原创 <span>酒零</span> <span>2026-06-10 08:04</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=ada1f1c8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FfL1TQ0l0Qw2MXEEpnuWSiaDuniaiaHqIRCTibwTbZy2kn5rmhn6ibQV5du0WZ14SH50nze69jnJblAkgNSB1tTVlAKuge4UTJWvsHfLP23QhA6aA%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>【工具】cdninfo cdn信息解析工具</p>
  <p style="margin-bottom: 0px;"><span leaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100006977" data-ratio="0.6198757763975156" data-s="300,640" data-type="png" data-w="805" style="color: rgb(51, 51, 51);font-size: 14px;letter-spacing: 1.5px;text-align: center;height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=8c8b80b1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjuJtkhP7vxlCDuQbSnofqkMWgjtQCZqKTrdm330DH5kk8NgibIR3cNQQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p style="margin-bottom: 0px;text-align: left;letter-spacing: 1.5px;line-height: 1.75em;"><strong style="font-size: 20px;letter-spacing: 1.5px;"><span style="font-family: 宋体;"><span leaf="">0x00 前言</span></span></strong></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><p style="line-height: 1.5em;letter-spacing: 1.5px;"><strong><span leaf="">免责声明：继续阅读文章视为您已同意[</span></strong><strong><span leaf=""><a class="normal_text_link mp_article_text_link" target="_blank" style="font-size: 16px;font-family: 宋体;" href="http://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247489726&amp;idx=1&amp;sn=e5459d91f53caf90e76c6558dc8b4ac9&amp;chksm=fad4c5a9cda34cbf0d02c24383827a906e7d08d5694d452a0cc18988f130abab371735ee1843&amp;scene=21#wechat_redirect" textvalue="NOVASEC免责声明" data-itemshowtype="0" linktype="text" data-linktype="2">NOVASEC免责声明</a></span></strong><strong><span leaf="">].</span></strong></p></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><p style="line-height: 1.5em;"><span style="font-size: 14px;"><em><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="">注：本文属于推荐系列文章，所推荐内容并非全部由本团队开源实现。文章旨在分享各类优质项目，提升其关注度与影响力，文中观点仅代表作者个人看法。若您有更合适的替代项目，欢迎在留言区推荐分享，共同推荐优质项目资源。</span></span></strong></strong></em></span></p><h1 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 0px !important;margin-right: 0px;margin-bottom: 16px;margin-left: 0px;font-size: 2em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">前言</span></h1><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">由于cdnAnalyzer 太难拼了，因此在实现基于 ipinfo 包</span><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;dir&#34;:&#34;auto&#34;,&#34;style&#34;:&#34;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(31, 35, 40); font-family: \&#34;Mona Sans VF\&#34;, -apple-system, BlinkMacSystemFont, \&#34;Segoe UI\&#34;, \&#34;Noto Sans\&#34;, Helvetica, Arial, sans-serif, \&#34;Apple Color Emoji\&#34;, \&#34;Segoe UI 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: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;strong&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;box-sizing: border-box; font-weight: 600;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">的 ip db 支持时，将本项目修改为 cdninfo。</span></strong></strong></p><h1 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 0px !important;margin-right: 0px;margin-bottom: 16px;margin-left: 0px;font-size: 2em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">cdninfo</span></h1><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">CDN Check On Golang</span></strong></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">目前最完善的CDN分析工具, 便于快速筛选CDN资产信息, 基于IP、ASN、CNAME、IP归属地等多种方案进行分析.</span></p><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">更新说明 2026-04-28</span></h2><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">添加 mmdb ipdb dat xdb 等后缀格式的ip数据库支持</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">添加 mmdb、csv等后缀格式的ip asn数据库支持</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">更多类型数据库欢迎他提供数据源到 ipinfo 项目</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">ipinfo 包项目地址 <a href="https://github.com/winezer0/ipinfo" target="_blank">https://github.com/winezer0/ipinfo</a></span></p></li></ul><p style="line-height: 1.5em;"><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span style="color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;display: inline !important;float: none;" data-pm-slice="0 0 []"><span leaf="">注意：由于已经更新了程序名称，建议移除 %usernmae%/cdnAnalyzer 目录。</span></span></span></strong></strong></p><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">支持的数据库格式</span></h2><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">IP 地理位置数据库</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><markdown-accessiblity-table data-catalyst="" style="box-sizing: border-box;display: block;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;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;"><table style="box-sizing: border-box;border-spacing: 0px;border-collapse: collapse;margin-top: 0px;margin-bottom: 16px;font-variant: tabular-nums;width: max-content;max-width: 100%;display: block;overflow: auto;"><thead><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">格式</span></p></th><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">说明</span></p></th><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">支持版本</span></p></th></tr></thead><tbody><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">qqwry.dat</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">纯真 IP 数据库</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv4</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">zxipv6wry.db</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">ZX IPv6 数据库</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv6</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">ip2region_v4/v6.xdb</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IP2Region</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv4/IPv6</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">geolite2-city-ipv4/ipv6.mmdb</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">GeoLite2 City</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv4/IPv6</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">dbip-city-ipv4/ipv6.mmdb</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">DBIP City</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv4/IPv6</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">qqwry.ipdb</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPIP.net 格式</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv4</span></p></td></tr></tbody></table></markdown-accessiblity-table><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">ASN 数据库</span></h3><p><svg data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></p><markdown-accessiblity-table data-catalyst="" style="box-sizing: border-box;display: block;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;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;"><table style="box-sizing: border-box;border-spacing: 0px;border-collapse: collapse;margin-top: 0px;margin-bottom: 16px;font-variant: tabular-nums;width: max-content;max-width: 100%;display: block;overflow: auto;"><thead><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">格式</span></p></th><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">说明</span></p></th><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">支持版本</span></p></th></tr></thead><tbody><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">geolite2-asn.mmdb</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">GeoLite2 ASN</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv4/IPv6</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">dbip-asn.mmdb</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">DBIP ASN</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv4/IPv6</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">geolite2/dbip-asn-ipv4.mmdb</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">独立 IPv4 库</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv4</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">geolite2/dbip-asn-ipv6.mmdb</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">独立 IPv6 库</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv6</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">dbip-asn-ipv4/ipv6.csv</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">CSV 格式</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv4/IPv6</span></p></td></tr></tbody></table></markdown-accessiblity-table><p style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><strong data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []"><span data-pm-slice="0 0 []"><span leaf="">项目地址</span></span></strong></strong></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="bash"><code><span leaf=""><a href="https://github.com/winezer0/cdninfo" target="_blank">https://github.com/winezer0/cdninfo</a></span></code></pre></p></div><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100% 100%;text-align: left;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=2d404a2d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjklAO9ezM6ymrNndsrPn9lZ3FyFiaibib5n6nicPsotVIIILEARU4QSNMTA%2F640%3Fwx_fmt%3Dpng&#34;);margin-bottom: 0px;"><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 4%;background-size: 100%;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=767f4cec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjSZevnnVaheZ2lF9BFRIxBhhT2I64n8ZWKyRZcP7OUBUFlpyzLbwHibQ%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;"><img class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="258" style="vertical-align: middle;width: 100%;height: auto !important;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007001" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=38982032&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">NOVASEC</span></p></div></div></div></div></div></div></div></div></div></div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);" data-remoteid="c1752114746949"><div style="margin-bottom: unset;"><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;"><img class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="430" style="vertical-align: middle;width: 100%;height: auto !important;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007002" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=b1271a8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">WINEZER0</span></p></div></div></div></div></div></div></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=cda3e72c&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490896%26idx%3D1%26sn%3D7a426ba17df556251996b5421caf5463">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Wed, 10 Jun 2026 08:04:00 +0800</pubDate>
    </item>
    <item>
      <title>【工具】ipinfo - 支持多数据库类型的开源IPdb解析库</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490895&amp;idx=1&amp;sn=3eda10f4c03a08d4e272a7178070b612</link>
      <description>ipinfo 支持多种类型的IPdb解析库</description>
      <content:encoded><![CDATA[<p>原创 <span>酒零</span> <span>2026-06-08 09:00</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=3dbfa024&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FfL1TQ0l0Qw1HSHSDHszzib9X9vwgOoMrFKibKDzXh3ica9aCG0fNiatcwAvicmIDUvqw8tqT8wf8N2pLiaegcbtTaLCfeNPDSDicyu3e86h0vagqME%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>ipinfo 支持多种类型的IPdb解析库</p>
  <p style="margin-bottom: 0px;"><span leaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100006977" data-ratio="0.6198757763975156" data-s="300,640" data-type="png" data-w="805" style="color: rgb(51, 51, 51);font-size: 14px;letter-spacing: 1.5px;text-align: center;height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=8c8b80b1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjuJtkhP7vxlCDuQbSnofqkMWgjtQCZqKTrdm330DH5kk8NgibIR3cNQQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p style="margin-bottom: 0px;text-align: left;letter-spacing: 1.5px;line-height: 1.75em;"><strong style="font-size: 20px;letter-spacing: 1.5px;"><span style="font-family: 宋体;"><span leaf="">0x00 前言</span></span></strong></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><p style="line-height: 1.5em;letter-spacing: 1.5px;"><strong><span leaf="">免责声明：继续阅读文章视为您已同意[</span></strong><strong><span leaf=""><a class="normal_text_link mp_article_text_link" target="_blank" style="font-size: 16px;font-family: 宋体;" href="http://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247489726&amp;idx=1&amp;sn=e5459d91f53caf90e76c6558dc8b4ac9&amp;chksm=fad4c5a9cda34cbf0d02c24383827a906e7d08d5694d452a0cc18988f130abab371735ee1843&amp;scene=21#wechat_redirect" textvalue="NOVASEC免责声明" data-itemshowtype="0" linktype="text" data-linktype="2">NOVASEC免责声明</a></span></strong><strong><span leaf="">].</span></strong></p></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><p style="line-height: 1.5em;"><span style="font-size: 14px;"><em><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="">注：本文属于推荐系列文章，所推荐内容并非全部由本团队开源实现。文章旨在分享各类优质项目，提升其关注度与影响力，文中观点仅代表作者个人看法。若您有更合适的替代项目，欢迎在留言区推荐分享，共同推荐优质项目资源。</span></span></strong></strong></em></span></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 3 []"><h1 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 0px !important;margin-right: 0px;margin-bottom: 16px;margin-left: 0px;font-size: 2em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">前言</span></h1><p><strong style="color: rgb(0, 0, 0);font: 16px / 24px 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-weight: 400;line-height: 24px;text-align: start;white-space: normal;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">维护 r</span><span leaf="">evsuit 的时候发现默认加载的qqwry.dat位置已经不存在的了，然后考虑到 Cdninfo 和 渗透测试中多种辅助项目其实也需要使用ipdb，就抽时间将</span><strong style="color: rgb(0, 0, 0);font: 16px / 24px 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-weight: 400;line-height: 24px;text-align: start;white-space: normal;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 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;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 3 []&#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;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;color: rgb(0, 0, 0);font: 16px / 24px 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-weight: 400;line-height: 24px;text-align: start;white-space: normal;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">Cdninfo </span></strong><span leaf="">中的ipdb相关进行剥离和优化，让后续使用ipdb的项目能够更简单一些。</span></strong></p><p><strong style="color: rgb(0, 0, 0);font: 16px / 24px 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-weight: 400;line-height: 24px;text-align: start;white-space: normal;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">剥离过程中发现由于当前Github上离线 IP 数据库格式较多、解析方式不太统一，切换数据库都要单独编写带带代码。</span></strong></p><p><strong style="color: rgb(0, 0, 0);font: 16px / 24px 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-weight: 400;line-height: 24px;text-align: start;white-space: normal;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">所以写了 ipinfo 这个通用库，目的是：实现通过一套接口加载所有常见类型的离线 IP 库，并提供了常见的使用示例。</span></strong></p></div><h1 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 0px !important;margin-right: 0px;margin-bottom: 16px;margin-left: 0px;font-size: 2em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">ipinfo</span></h1><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">IP 地理位置与 ASN 信息查询工具集，支持多种数据库格式，提供 Go 包调用和 HTTP API 服务。</span></p><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">支持的数据库格式</span></h2></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">IP 地理位置数据库</span></h3><markdown-accessiblity-table data-catalyst="" style="box-sizing: border-box;display: block;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;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;"><table style="box-sizing: border-box;border-spacing: 0px;border-collapse: collapse;margin-top: 0px;margin-bottom: 16px;font-variant: tabular-nums;width: max-content;max-width: 100%;display: block;overflow: auto;"><thead><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">格式</span></p></th><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">说明</span></p></th><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">支持版本</span></p></th></tr></thead><tbody><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">qqwry.dat</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">纯真 IP 数据库</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv4</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">zxipv6wry.db</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">ZX IPv6 数据库</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv6</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">ip2region_v4/v6.xdb</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IP2Region</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv4/IPv6</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">geolite2-city-ipv4/ipv6.mmdb</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">GeoLite2 City</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv4/IPv6</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">dbip-city-ipv4/ipv6.mmdb</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">DBIP City</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv4/IPv6</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">qqwry.ipdb</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPIP.net 格式</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv4</span></p></td></tr></tbody></table></markdown-accessiblity-table><h3 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.25em;font-weight: 600;line-height: 1.25;"><span leaf="">ASN 数据库</span></h3><markdown-accessiblity-table data-catalyst="" style="box-sizing: border-box;display: block;color: rgb(31, 35, 40);font-family: &#34;Mona Sans VF&#34;, -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;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;"><table style="box-sizing: border-box;border-spacing: 0px;border-collapse: collapse;margin-top: 0px;margin-bottom: 16px;font-variant: tabular-nums;width: max-content;max-width: 100%;display: block;overflow: auto;"><thead><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">格式</span></p></th><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">说明</span></p></th><th style="box-sizing: border-box;padding: 6px 13px;font-weight: 600;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">支持版本</span></p></th></tr></thead><tbody><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">geolite2-asn.mmdb</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">GeoLite2 ASN</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv4/IPv6</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">dbip-asn.mmdb</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">DBIP ASN</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv4/IPv6</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">geolite2/dbip-asn-ipv4.mmdb</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">独立 IPv4 库</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv4</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(246, 248, 250);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">geolite2/dbip-asn-ipv6.mmdb</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">独立 IPv6 库</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv6</span></p></td></tr><tr style="box-sizing: border-box;background-color: rgb(255, 255, 255);border-top: 1px solid rgba(209, 217, 224, 0.7);"><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">dbip-asn-ipv4/ipv6.csv</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">CSV 格式</span></p></td><td style="box-sizing: border-box;padding: 6px 13px;border-color: rgb(209, 217, 224);border-style: solid;border-width: 1px;border-image: none 100% / 1 / 0 stretch;"><p><span leaf="">IPv4/IPv6</span></p></td></tr></tbody></table></markdown-accessiblity-table><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">项目结构</span></h2><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;"><code style="white-space:pre-wrap;box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;tab-size: 4;background: 0px 0px rgba(0, 0, 0, 0);border-radius: 6px;margin: 0px;padding: 0px;word-break: normal;border: 0px;line-height: inherit;overflow-wrap: normal;display: inline;overflow: visible;"><span leaf="">ipinfo/</span><span leaf=""><br/></span><span leaf="">├── pkg/                     # 核心功能包</span><span leaf=""><br/></span><span leaf="">│   ├── iplocate/            # IP 地理位置查询接口与实现</span><span leaf=""><br/></span><span leaf="">│   ├── asninfo/             # ASN 信息查询接口与实现</span><span leaf=""><br/></span><span leaf="">│   ├── queryip/             # 统一查询引擎（组合 IP + ASN）</span><span leaf=""><br/></span><span leaf="">│   ├── iputils/             # IP 工具函数</span><span leaf=""><br/></span><span leaf="">│   ├── logging/             # 日志模块</span><span leaf=""><br/></span><span leaf="">│   └── utils/               # 通用工具</span><span leaf=""><br/></span><span leaf="">├── cmd/                     # 可执行程序</span><span leaf=""><br/></span><span leaf="">│   ├── iplocate/            # 命令行 IP 查询工具</span><span leaf=""><br/></span><span leaf="">│   ├── iplocate2/           # 命令行工具（多数据库版本）</span><span leaf=""><br/></span><span leaf="">│   └── ipinfoapi/           # HTTP API 服务</span><span leaf=""><br/></span><span leaf="">└── assets/                  # 数据库文件目录</span></code></pre><p data-pm-slice="2 2 []"><span leaf="">项目地址:</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="bash"><code><span leaf=""><a href="https://github.com/winezer0/ipinfo" target="_blank">https://github.com/winezer0/ipinfo</a></span></code></pre></p></div><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100% 100%;text-align: left;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=2d404a2d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjklAO9ezM6ymrNndsrPn9lZ3FyFiaibib5n6nicPsotVIIILEARU4QSNMTA%2F640%3Fwx_fmt%3Dpng&#34;);margin-bottom: 0px;"><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 4%;background-size: 100%;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=767f4cec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjSZevnnVaheZ2lF9BFRIxBhhT2I64n8ZWKyRZcP7OUBUFlpyzLbwHibQ%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;"><img class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="258" style="vertical-align: middle;width: 100%;height: auto !important;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007001" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=38982032&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">NOVASEC</span></p></div></div></div></div></div></div></div></div></div></div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);" data-remoteid="c1752114746949"><div style="margin-bottom: unset;"><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;"><img class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="430" style="vertical-align: middle;width: 100%;height: auto !important;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007002" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=b1271a8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">WINEZER0</span></p></div></div></div></div></div></div></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=9853b86e&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490895%26idx%3D1%26sn%3D3eda10f4c03a08d4e272a7178070b612">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 08 Jun 2026 09:00:00 +0800</pubDate>
    </item>
    <item>
      <title>实践JSRPC之从手工调试到实现全自动JSRPC注入</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490875&amp;idx=1&amp;sn=ed04e6c225ac26b228470bd6dc4fba09</link>
      <description>从手工调试JS到实现全自动JSRPC客户端的注入</description>
      <content:encoded><![CDATA[<p>原创 <span>酒零</span> <span>2026-05-25 00:01</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=0db534ee&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FfL1TQ0l0Qw2SzvDAEk1JofKUq8tyRM8dmRJDOsA97PyJyOhia0icKxEelzZrGyxaxMwW8x6EgRQZu4djhP2ibNwGnjResFIQSAOIuQLicYbuLdY%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>从手工调试JS到实现全自动JSRPC客户端的注入</p>
  <p style="margin-bottom: 0px;"><span leaf=""><img class="rich_pages wxw-img" data-ratio="0.6198757763975156" data-s="300,640" data-type="png" data-w="805" style="color: rgb(51, 51, 51);font-size: 14px;letter-spacing: 1.5px;text-align: center;height: auto !important;" data-imgfileid="100006977" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=8c8b80b1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjuJtkhP7vxlCDuQbSnofqkMWgjtQCZqKTrdm330DH5kk8NgibIR3cNQQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p style="margin-bottom: 0px;text-align: left;letter-spacing: 1.5px;line-height: 1.75em;"><strong style="font-size: 20px;letter-spacing: 1.5px;"><span style="font-family: 宋体;"><span leaf="">0x00 前言</span></span></strong></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><p style="line-height: 1.5em;letter-spacing: 1.5px;"><strong><span leaf="">免责声明：继续阅读文章视为您已同意[</span></strong><strong><span leaf=""><a class="normal_text_link mp_article_text_link" target="_blank" style="font-size: 16px;font-family: 宋体;" href="http://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247489726&amp;idx=1&amp;sn=e5459d91f53caf90e76c6558dc8b4ac9&amp;chksm=fad4c5a9cda34cbf0d02c24383827a906e7d08d5694d452a0cc18988f130abab371735ee1843&amp;scene=21#wechat_redirect" textvalue="NOVASEC免责声明" data-itemshowtype="0" linktype="text" data-linktype="2">NOVASEC免责声明</a></span></strong><strong><span leaf="">].</span></strong></p></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><p style="line-height: 1.5em;"><span style="font-size: 14px;"><em><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="">注：本文仅供学习参考。</span></span></strong></strong></em></span></p><p style="line-height: 1.5em;"><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf=""><span textstyle="" style="font-weight: bold;">0X01 目标页面的安全措施</span></span></span></strong></strong></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang=""><code><span leaf="">1、反调试</span></code><br/><code><span leaf="">2、JS混淆</span></code><br/><code><span leaf="">3、基于报文内容和时间戳的签名</span></code><br/></pre></p><p style="line-height: 1.5em;"><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;line-height: 1.5em;&#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;-webkit-tap-highlight-color: transparent;outline: 0px;font-family: \&#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;background-color: rgb(255, 255, 255);visibility: visible;&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#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-pm-slice&#34;:&#34;0 0 []&#34;,&#34;style&#34;:&#34;-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;&#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-pm-slice&#34;:&#34;0 0 []&#34;,&#34;style&#34;:&#34;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="font-weight: bold;">0X02 反调试及绕过</span></span></span></strong></strong></p><p><span leaf="">按F12进入开发者模式时，触发debugger</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-ratio="0.2162883845126836" data-s="300,640" data-type="png" data-w="749" type="block" data-imgfileid="100007200" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=7b0606a5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FfL1TQ0l0Qw3HaaTKxhFf6eMsibRwy1p8ETXXG896KWD4S2jlwKJmju80AmiacNoOmGDRNq0Fg0PzrVLBlNo4FogsqR53vaMI0yoQLBYbvho3k%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p><span leaf="">直接使用0xsdeo 大佬的AntiDebug Breaker插件，开启BypassDebugger，然后刷新页面，此时已经可以正常调试。</span></p><p><span leaf="">AntiDebug_Breaker项目地址：</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=""><span class="code-snippet__attr">https</span>:<span class="code-snippet__comment">//github.com/0xsdeo/AntiDebug_Breaker</span></span></code></pre></p><p style="line-height: 1.5em;"><span leaf="" style="font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;">注：感谢0xsdeo大佬开源生产力加速工具。</span></p><p><span leaf=""><span textstyle="" style="font-weight: bold;">0X03 JSRPC方案介绍</span></span></p><p><span leaf="">JSRPC（JavaScript Remote Procedure Call） 核心是：把浏览器当作一个远程 JS 执行引擎，外部程序（Python/Go/Java 等）通过网络（WebSocket/CDP）调用页面里的 JS 函数，拿到结果，主要用于 JS 逆向、爬虫、自动化 场景。</span></p><p><span leaf=""><span textstyle="" style="font-weight: bold;">JSRPC 核心优点</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="markdown"><code><span leaf=""><span class="code-snippet__bullet">1.</span> 完全免逆向、免抠代码、免补环境</span></code><br/><code><span leaf=""><span class="code-snippet__bullet">2.</span> 开发效率极高</span></code><br/><code><span leaf=""><span class="code-snippet__bullet">3.</span> 抗更新、抗混淆</span></code><br/><code><span leaf=""><span class="code-snippet__bullet">4.</span> 支持强依赖浏览器的场景</span></code><br/><code><span leaf=""><span class="code-snippet__bullet">5.</span> 可直接调用网站内部状态</span></code><br/></pre></p><p><span leaf=""><span textstyle="" style="font-weight: bold;">JSRPC 核心缺点</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="markdown"><code><span leaf=""><span class="code-snippet__bullet">1.</span> 必须启动并保持浏览器运行（最大缺点）</span></code><br/><code><span leaf=""><span class="code-snippet__bullet">2.</span> 性能低于本地执行（1～2 个数量级）</span></code><br/><code><span leaf=""><span class="code-snippet__bullet">3.</span> 页面刷新 / 跳转 → 状态丢失</span></code><br/><code><span leaf=""><span class="code-snippet__bullet">4.</span> 稳定性依赖页面与反爬机制</span></code><br/><code><span leaf=""><span class="code-snippet__bullet">5.</span> 调用链路比较复杂、排错难</span></code><br/><code><span leaf=""><span class="code-snippet__bullet">6.</span> 不适合超高频 / 超低延迟场景</span></code><br/><code><span leaf=""><span class="code-snippet__bullet">7.</span> 部署与运维比较麻烦</span></code><br/></pre></p><p><span leaf=""><span textstyle="" style="font-weight: bold;">JSRPC项目地址 </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=""><span class="code-snippet__attr">https</span>:<span class="code-snippet__comment">//github.com/jxhczhl/JsRpc</span></span></code></pre></p><p style="line-height: 1.5em;"><span leaf="" style="font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;line-height: 1.5em;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">注：感</span><span leaf="" style="color: rgb(51, 51, 51);text-align: left;letter-spacing: 1.5px;line-height: 1.5em;font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;line-height: 1.5em;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">谢</span><span leaf="" style="color: rgb(51, 51, 51);text-align: left;letter-spacing: 1.5px;line-height: 1.5em;font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;">jxhczhl</span><span leaf="" style="color: rgb(51, 51, 51);text-align: left;letter-spacing: 1.5px;line-height: 1.5em;font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;line-height: 1.5em;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">大佬开源生产力加速工</span><span leaf="" style="font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;line-height: 1.5em;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">具。</span></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="6 6 []"><p style="line-height: 1.5em;"><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;line-height: 1.5em;&#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;-webkit-tap-highlight-color: transparent;outline: 0px;font-family: \&#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;background-color: rgb(255, 255, 255);visibility: visible;&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#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-pm-slice&#34;:&#34;0 0 []&#34;,&#34;style&#34;:&#34;-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;&#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-pm-slice&#34;:&#34;0 0 []&#34;,&#34;style&#34;:&#34;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="font-weight: bold;">0X04 JS混淆下的自动化签名实现</span></span></span></strong></strong></p><p style="line-height: 1.5em;"><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">经过前期抓包分析，发现每个请求包中都带有Sign请求头部，sign的内容是基于请求体计算的，由于前端混淆，调试到算法后发现混淆过于复杂，所以最后决定使用JSRPC方案进行算法调用。如果算法简单的话，建议直接重写实现或者调用js文件进行加密。</span></span></strong></strong></p></div><p data-pm-slice="0 0 []"><span leaf=""><span textstyle="" style="font-weight: bold;">本次JSRPC调用链路：</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=""><code><span leaf="">Mitm插件&lt;-&gt;JSRPC服务服务端&lt;-&gt;WS协议&lt;-&gt;浏览器&lt;-&gt;目标JS</span></code></pre></p><p style="line-height: 1.5em;"><strong data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []"><span data-pm-slice="0 0 []"><span leaf=""><span textstyle="" style="font-weight: bold;">本次目标的实现思路：</span></span></span></strong></strong></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang=""><code><span leaf="">1、前端调试JS找到签名函数的调用</span></code><br/><code><span leaf="">2、将签名函数提升为全局函数</span></code><br/><code><span leaf="">3、注册签名函数到JSRPC服务端</span></code><br/><code><span leaf="">4、编写MITM签名实现调用插件调用JSRPC服务端的签名函数</span></code><br/></pre></p><p style="line-height: 1.5em;"><strong data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []"><span data-pm-slice="0 0 []"><span leaf=""><span textstyle="" style="font-weight: bold;">具体调试和实现：</span></span></span></strong></strong></p><p><span leaf=""><span textstyle="" style="font-weight: bold;">1、通过前端调试查找签名算法：</span></span></p><p><span leaf="">本页面登录时会进行签名算法调用，因此通过调试登录接口进行算法分析。</span></p><p><span leaf="">本次使用网络通信的登陆包的发起程序，从上到下逐个断点调试，从而分析发出登陆包的算法信息。</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-ratio="0.20660146699266504" data-s="300,640" data-type="png" data-w="818" type="block" data-imgfileid="100007201" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=f9df40b5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FfL1TQ0l0Qw30zq3zxlu5MDZm1icu4gADhwC2ibMof7ygJkxVseVe2eGuJwibfnFRSJ0sLdAM71clPHNbVFxzG7V8MslDFG2vofQUBs9lvic0VibM%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p><span leaf="">双击js文件跳转到对应的实际代码中，并点击左侧栏开启断点。</span></p><p><span leaf="">开启断点后，重新按登陆按钮，触发登陆操作，此时程序自动暂停，并在右侧展示出本次的堆栈信息。</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-ratio="0.3300760043431053" data-s="300,640" data-type="png" data-w="921" type="block" data-imgfileid="100007202" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=cc614f1c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FfL1TQ0l0Qw1sCicgVzGQYIQwn9yPwlkAtkELmqqlpHyYUe1ib9OsbD4gHMZenQfaHw00e0KhzuenRz1IZNHJgqNyEG6lDgPN2KnnrIrXZWdlw%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p><span leaf="">从上到下对堆栈触发代码逐个断点，然后不断下一步，看看是什么时候会在变量内容中出现加密后的内容。</span></p><p><span leaf=""><span textstyle="" style="font-weight: bold;">详细的简单堆栈调试步骤记录如下：</span></span></p><p><span leaf="">(匿名) (chunk-vendors.045712e0.js:51)				</span></p><p><span leaf="">代码为p.send(d) 最后的发送http请求，不包含加密算法。</span></p><p><span leaf="">push.b50d.e.exports (chunk-vendors.045712e0.js:51)  </span></p><p><span leaf="">代码为return new Promise((function(t, n)</span></p><p><span leaf="">进行断点，并重新触发登陆操作，发现此时右侧的本地变量中，headers部分已经存在签名数据了，因此加密算法还在更前面。</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-ratio="0.1734357848518112" data-s="300,640" data-type="png" data-w="911" type="block" data-imgfileid="100007205" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=e12b4a06&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FfL1TQ0l0Qw1v2jAXs0472xX9DJ18elnxjtv7n8fF3APUFUibj6TJzLTF0MjmSETnRLMbkproluMibdUMju7xNLPOB1nzoWkf9ChlPaThIdqjE%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p><span leaf="">push.5270.e.exports (chunk-vendors.045712e0.js:20)</span></p><p><span leaf="">代码为 return t(e).then((function(t) </span></p><p><span leaf="">进行断点，并重新触发登陆操作，发现此时右侧的本地变量中，headers部分已经存在签名数据了，因此加密算法还在更前面。</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-ratio="0.14510686164229472" data-s="300,640" data-type="png" data-w="889" type="block" data-imgfileid="100007206" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=221d9eee&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FfL1TQ0l0Qw1TcnzN0pxiaEaXRF0EtH0BONazyzoWN0vynLWVlBKlVnyUfNsM1M34hOoBXFeWLPEeuCIyVMo4ibbghP2n211TZzicVhy5y0icplM%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p><span leaf="">Promise.then</span></p><p><span leaf="">push.0a06.c.request (chunk-vendors.045712e0.js:1)</span></p><p><span leaf="">代码为 n = n.then(t.shift(), t.shift());</span></p><p><span leaf="">进行断点，并重新触发登陆操作， 发现此时右侧的本地变量中，headers部分不存在签名数据了，因此加密算法肯定会在 n.then(t.shift(), t.shift()); 此处代码中进行调用</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-ratio="0.1522956326987682" data-s="300,640" data-type="png" data-w="893" type="block" data-imgfileid="100007207" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=376b3060&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FfL1TQ0l0Qw0M20JGD7CbXWSrsibljluwYwz7B5LnSOIsku2LQGM6PQ1SmjqvV9kdZdrXpWKu4wRics1uIkDdd8Hshhia1TgRfxuh2G8J8onbQY%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p><span leaf="">按F9/F10/F11等键或点击下一步图标进行调试，看看什么时候会出现生成的sign数据。</span></p><p><span leaf="">经过不断的点击和等待，此时已经发现a 就是签名数据：</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-ratio="0.10834236186348863" data-s="300,640" data-type="png" data-w="923" type="block" data-imgfileid="100007208" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=019036c5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FfL1TQ0l0Qw3aZ5jUrBARJwkr1NAL3YKoIfaibgfFKgHr2UEqn87DgQVq4fdfvG45sPhDgLLJnW97icWjW4l9og2ZCeSSmAha8BwTjQlMMibuQE%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p><span leaf="">保持断点状态，并打开控制台开始手动调试和分析p[&#34;a&#34;][d(992, 594, 924, 888, 505) + d(716, 381, 611, 893, 456) + x(1111, 1347, 1333, 1579, 1452)](e); 中每个字段的内容信息</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-ratio="0.18386714116251482" data-s="300,640" data-type="png" data-w="843" type="block" data-imgfileid="100007209" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=25761744&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FfL1TQ0l0Qw3PK703s91Cw6ibia5QMBuBEYhe1k6ot5q0bIfsibNAV96b4eX0Z8RMTVuxYNduRTzcU54WFl2XpIftEIhQcZ5abKTvnm9DWicaiazE%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p><span leaf="">JS中可以用 .xxx 代替 [xxx]函数的调用，因此最终的签名算法就是：p.a.getBaseHeader(e)</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-ratio="0.4670750382848392" data-s="300,640" data-type="png" data-w="653" type="block" data-imgfileid="100007210" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=398daae6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FfL1TQ0l0Qw1bDc3OIFTRF3PaBvhhtUMLhaolia9WotaL3RV95Bd21wNBJ10u0Ticqta4WdZmH8RZQlT4BEaT5AlEibm4D62m4nPKY5xcKUeA0s%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p><span leaf="">通过查看e的结构，并对比请求报文，我们了解了e的构成是一个由部分有效请求头和请求体信息组成的特定格式的json数据，后续直接向p.a.getBaseHeader传递由请求信息解析出的json数据即可实现签名计算。</span></p><p><span leaf=""><span textstyle="" style="font-weight: bold;">2、将加密算法提升到全局函数</span></span></p><p><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">最后，将p.a对象通过赋值给全局变量window，从而让用户能够通过window对象调用签名算法</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-ratio="0.11902231668437832" data-s="300,640" data-type="png" data-w="941" type="block" data-imgfileid="100007211" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=d2c89181&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FfL1TQ0l0Qw1o0tCzZ0nUIwwFjg1YDyqn3MspicpwcsvqJmsKaac7iawr9cehiblJkyz4JIunmy9g3WNQiaBiaQYpQBxxlQRnqZwqV9BMmibBSgiagc%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p><span leaf="">并在源代码页面中，取消或者删除其他的断点，仅保留签名算法前的断点，便于后续直接调到签名算法的调用部分。</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-ratio="0.15181518151815182" data-s="300,640" data-type="png" data-w="909" type="block" data-imgfileid="100007212" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=1dbae102&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FfL1TQ0l0Qw3x6reQKArLrHn8sTsB0nCMVK5q7ZqUaTX9IicgfQxL3rKTK4Qa6z7q2LcCE2LMVlamh3U7bBjYJENrjahBmExSCB6CgHq3hrKs%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p><span leaf=""><span textstyle="" style="font-weight: bold;">3、使用JSRPC进行加密算法调用</span></span></p><p><span leaf="">使用jsrpc需要进行如下步骤：</span></p><p><span leaf="">1、启动jsrpc服务端，用于监听客户端浏览器的链接。</span></p><p><span leaf="">jsrpc_window_amd64.exe</span></p><p><span leaf="">2、打开浏览器控制台，注入jsrpc客户端环境代码，并连接到jsrpc服务端</span></p><p><span leaf="">1.关闭页面并重新打开网页和控制台窗口</span></p><p><span leaf="">2.注入JsEnv_De.js</span></p><p><span leaf="">打开/resouces/JsEnv_De.js文本内容，复制内容更浓粘贴到网站控制台，如果存在回显表示jsrpc环境已经注入成功，存在报错或者卡顿就关闭浏览器进行重试。</span></p><p><span leaf="">3. 连接到jsrpc服务端</span></p><p><span leaf="">控制台继续执行如下命令，</span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">服务端接收到响应说明链接成功</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=""><span class="code-snippet__keyword">var</span> demo = <span class="code-snippet__keyword">new</span> <span class="code-snippet__title">Hlclient</span>(<span class="code-snippet__string">&#34;ws://127.0.0.1:12080/ws?group=zzz&#34;</span>);</span></code></pre></p><p><span leaf="">注意：浏览器有时会拦截提示ws的弹框动作，需要点击运行按钮。</span></p><p><span leaf=""><img class="rich_pages wxw-img" data-ratio="0.11213872832369942" data-type="png" data-w="865" data-imgfileid="100007214" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=79f03fda&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FfL1TQ0l0Qw0rQ1ibGeTkib7ndmdTEvyy8HNeKcIFmqHMF4YABiatvzPgCGT2r8CiakWOTWom2EdUw4k5Du7PuibNyOURQOvBAOBLicNEJzhwyoV7k%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p><span leaf="">4.可选，注册一个简单的函数进行jsrpc功能测试</span></p><p><span leaf="">//简单的测试函数，返回base64值的接口</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="">demo.<span class="code-snippet__title">regAction</span>(<span class="code-snippet__string">&#34;hello2&#34;</span>, <span class="code-snippet__keyword">function</span> (<span class="code-snippet__params">resolve,param</span>) {</span></code><br/><code><span leaf="">    <span class="code-snippet__variable">console</span>.<span class="code-snippet__title">log</span>(param);</span></code><br/><code><span leaf="">    <span class="code-snippet__keyword">var</span> base666 = <span class="code-snippet__title">btoa</span>(param)</span></code><br/><code><span leaf="">    <span class="code-snippet__title">resolve</span>(base666);</span></code><br/><code><span leaf="">})</span></code><br/></pre></p><p><span leaf=""><img class="rich_pages wxw-img" data-ratio="0.055491329479768786" data-type="png" data-w="865" data-imgfileid="100007213" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=debd21d1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FfL1TQ0l0Qw3iaJHospMrzOpOPNVxLx1uzIqe0DicUFTtJCiaTWlC1319RfRqhuEMtaS4Qrpukr5E4VShnbH23UXaQEibmWgol6OKKFPhMrlDvD4%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p data-pm-slice="0 0 []"><span lang="EN-US"><span leaf="">//</span></span><span leaf="">本机任意浏览器访问接口，获得</span><span lang="EN-US"><span leaf="">js</span></span><span leaf="">端的返回值，</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="apache"><code><span leaf=""><span class="code-snippet__attribute">http</span>://<span class="code-snippet__number">127.0.0.1:12080</span>/go?group=zzz&amp;action=hello2&amp;param=<span class="code-snippet__number">123456</span></span></code></pre></p><p><span leaf="" style="background-color: transparent;">此时说明</span><span lang="EN-US" style="background-color: transparent;"><span leaf="">jsrpc</span></span><span leaf="" style="background-color: transparent;">环境已经基本完成，需要注册具体的算法到</span><span lang="EN-US" style="background-color: transparent;"><span leaf="">jsrpc</span></span><span leaf="" style="background-color: transparent;">服务中</span></p><h4 data-pm-slice="0 0 []"><span leaf=""><span textstyle="" style="font-weight: bold;">4、将签名算法注册到</span></span><span lang="EN-US"><span leaf=""><span textstyle="" style="font-weight: bold;">jsrpc</span></span></span><span leaf=""><span textstyle="" style="font-weight: bold;">服务中，便于用户通过</span></span><span lang="EN-US"><span leaf=""><span textstyle="" style="font-weight: bold;">http</span></span></span><span leaf=""><span textstyle="" style="font-weight: bold;">服务调用。</span></span></h4><h5 data-pm-slice="0 0 []"><span lang="EN-US"><span leaf="">1. </span></span><span leaf="">断点到算法代码</span></h5><p><span leaf="">开启控制台和调试断点并点击登录，此时将会自动断点到算法所在函数，此时算法相关代码已经被浏览器完全加载。</span></p><p style="line-height: 1.5em;"><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf=""><img class="rich_pages wxw-img" data-ratio="0.13261648745519714" data-type="png" data-w="279" data-imgfileid="100007218" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=8f588873&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FfL1TQ0l0Qw0nEsqDAAUHAvpFcCjqgnhicU8NicmEPmmZW0kSICUoxvpNor7XibDop2nrjAAp1RvTibYRhicdibjdwHRlmsZQNzYxLKymAibialiadzCk%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></span></strong></strong></p><p><span leaf="">2. 在控制台执行函数提升函数权限</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="ini"><code><span leaf=""><span class="code-snippet__attr">window.sign</span>=p.a</span></code></pre></p><p><span leaf="">//测试加密函数是否升级全局成功</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang=""><code><span leaf="">sign.getBaseHeader(e).signatureStr</span></code></pre></p><p><span leaf=""><img class="rich_pages wxw-img" data-ratio="0.10404624277456648" data-type="png" data-w="865" data-imgfileid="100007219" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=f4ed694b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FfL1TQ0l0Qw3TbJIFbuu45oJAFtdibWgv3rZNeJpW64icjo7UHDTP0JczwwiavGZ03CQ0n8y2031RalZfOjDNPRt3wH9x9dOKsOP8gs7Ric9LdH0%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p><span leaf="">3. 编写并注册简单的签名函数调用算法注册</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="">demo.<span class="code-snippet__title">regAction</span>(<span class="code-snippet__string">&#34;sign&#34;</span>, <span class="code-snippet__keyword">function</span>(<span class="code-snippet__params">resolve, param</span>) {</span></code><br/><code><span leaf="">    <span class="code-snippet__keyword">try</span> {</span></code><br/><code><span leaf="">        <span class="code-snippet__comment">// 1. Base64 解码</span></span></code><br/><code><span leaf="">        <span class="code-snippet__keyword">var</span> s = <span class="code-snippet__title">atob</span>(<span class="code-snippet__title">String</span>(param));</span></code><br/><code><span leaf="">        <span class="code-snippet__comment">//console.log(&#34;解码成功:&#34;, s);</span></span></code><br/><code><span leaf="">        <span class="code-snippet__comment">// 2. 解析JSON并获取签名字符串</span></span></code><br/><code><span leaf="">        <span class="code-snippet__keyword">let</span> res = <span class="code-snippet__variable">window</span>.<span class="code-snippet__property">sign</span>.<span class="code-snippet__title">getBaseHeader</span>(<span class="code-snippet__title">JSON</span>.<span class="code-snippet__title">parse</span>(s)).<span class="code-snippet__property">signatureStr</span>;</span></code><br/><code><span leaf="">        <span class="code-snippet__comment">// 3. 成功返回结果</span></span></code><br/><code><span leaf="">        <span class="code-snippet__title">resolve</span>(res);</span></code><br/><code><span leaf="">    } <span class="code-snippet__keyword">catch</span> (error) {</span></code><br/><code><span leaf="">        <span class="code-snippet__comment">// 任何一步报错，都返回 &#34;error&#34;</span></span></code><br/><code><span leaf="">        <span class="code-snippet__comment">//console.error(&#34;签名执行失败:&#34;, error);</span></span></code><br/><code><span leaf="">        <span class="code-snippet__keyword">var</span> s = <span class="code-snippet__title">String</span>(error);</span></code><br/><code><span leaf="">        <span class="code-snippet__title">resolve</span>(s);</span></code><br/><code><span leaf="">    }</span></code><br/><code><span leaf="">});</span></code><br/></pre></p><p><span leaf="">由于本算法是使用的json格式作为参数，为了防止json编码错误，因此设计 param 传入base64编码后的json内容，后续的插件中需要调用 访问接口，获得js端的返回值</span></p><p><span leaf="">//签名调用接口</span></p><p><span leaf=""><a href="http://127.0.0.1:12080/go?group=zzz&amp;action=sign&amp;param={base64编码的json内容}" target="_blank">http://127.0.0.1:12080/go?group=zzz&amp;action=sign&amp;param={base64编码的json内容}</a></span></p><p><span leaf="">注意: 可以自己先将e值对应的json进行拷贝，然后进行base64编码，访问<a href="http://127.0.0.1:12080/go?group=zzz&amp;action=sign&amp;param=xxx" target="_blank">http://127.0.0.1:12080/go?group=zzz&amp;action=sign&amp;param=xxx</a> </span></p><p><span leaf="">进行初步测试，确保算法正确。</span></p><p><span leaf="">4. 放行断点，不再阻塞。</span></p><p><span leaf="">注意：如果此时提示获取结果超时，就是由于控制台还在进行断点调试导致的问题。 </span></p><p><span leaf=""><img class="rich_pages wxw-img" data-ratio="0.12485549132947976" data-type="png" data-w="865" data-imgfileid="100007220" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=16b24561&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FfL1TQ0l0Qw1d6aXEWY3ksHojibeE9aq6icibiaB8dPVN1FE4iaRQxibACv7aIZItVkZMKac1DTB9DTuXUUpZJvMzaTvmVz63mua9WWYbv4IuJ3XFg%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p><span leaf="">5. </span><span leaf="">编写burpsuite插件或其他mitm插件，实现对客户端发送来的请求进行签名重新计算</span></p><p><span leaf="">此处使用的是 </span><span leaf="">EditHttpMsgDemoWithUI </span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">项目，该项目已经实现了比较完善的UI和常用的过滤方案，只需要用户自己实现报文修改操作即可实现签名重写。</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=""><span class="code-snippet__attr">https</span>:<span class="code-snippet__comment">//github.com/winezer0/EditHttpMsgDemoWithUI </span></span></code></pre></p><p><span leaf="">让AI参照上文中e的json格式，对Burpsuite IHttpRequestResponse messageInfo对象进行了内容提取，实现了简单的java代码编写，</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-ratio="0.6017316017316018" data-s="300,640" data-type="png" data-w="693" type="block" data-imgfileid="100007222" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=163de2a8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FfL1TQ0l0Qw2zZXcyL5GMBzHEGP32cldLfOiaXFX5Q0ebDhiafrFqbwsceibJf3MYLZ51rhmZENqd7hJcUTk1Ij1oicBDkTU3XxxAxu56tuZMFFQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p><span leaf="">由于每个场景的算法不同，此处仅提供远程remoteSign调用的示例代码，具体的报文修改代码没有粘贴。</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="java"><code><span leaf=""><span class="code-snippet__comment">/**</span></span></code><br/><code><span leaf=""> * 远程签名接口调用（自动解析返回JSON，取 data 字段）</span></code><br/><code><span leaf=""> */</span></code><br/><code><span leaf=""><span class="code-snippet__keyword">private</span> String <span class="code-snippet__title">remoteSign</span><span class="code-snippet__params">(String input)</span> {</span></code><br/><code><span leaf="">    <span class="code-snippet__keyword">if</span> (input == <span class="code-snippet__literal">null</span> || input.isEmpty()) {</span></code><br/><code><span leaf="">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__string">&#34;&#34;</span>;</span></code><br/><code><span leaf="">    }</span></code><br/><code><span leaf="">    <span class="code-snippet__type">CloseableHttpClient</span> <span class="code-snippet__variable">client</span> <span class="code-snippet__operator">=</span> HttpClients.createDefault();</span></code><br/><code><span leaf="">    <span class="code-snippet__keyword">try</span> {</span></code><br/><code><span leaf="">        <span class="code-snippet__comment">// 1. Base64 编码</span></span></code><br/><code><span leaf="">        <span class="code-snippet__type">String</span> <span class="code-snippet__variable">base64Param</span> <span class="code-snippet__operator">=</span> Base64.getEncoder().encodeToString(input.getBytes(StandardCharsets.UTF_8));</span></code><br/><code><span leaf="">        <span class="code-snippet__comment">// 2. 拼接请求地址</span></span></code><br/><code><span leaf="">        <span class="code-snippet__type">String</span> <span class="code-snippet__variable">url</span> <span class="code-snippet__operator">=</span> <span class="code-snippet__string">&#34;<a href="http://127.0.0.1:12080/go?group=zzz&amp;action=sign&amp;param=" target="_blank">http://127.0.0.1:12080/go?group=zzz&amp;action=sign&amp;param=</a>&#34;</span> + base64Param;</span></code><br/><code><span leaf="">        <span class="code-snippet__comment">// 3. 发送 GET</span></span></code><br/><code><span leaf="">        <span class="code-snippet__type">HttpGet</span> <span class="code-snippet__variable">get</span> <span class="code-snippet__operator">=</span> <span class="code-snippet__keyword">new</span> <span class="code-snippet__title">HttpGet</span>(url);</span></code><br/><code><span leaf="">        <span class="code-snippet__type">CloseableHttpResponse</span> <span class="code-snippet__variable">response</span> <span class="code-snippet__operator">=</span> client.execute(get);</span></code><br/><code><span leaf="">        <span class="code-snippet__comment">// 4. 获取接口返回的 JSON 字符串</span></span></code><br/><code><span leaf="">        <span class="code-snippet__type">String</span> <span class="code-snippet__variable">jsonResult</span> <span class="code-snippet__operator">=</span> EntityUtils.toString(response.getEntity()).trim();</span></code><br/><code><span leaf="">       <span class="code-snippet__comment">// 5. 【关键】解析 JSON，提取 data 字段</span></span></code><br/><code><span leaf="">        <span class="code-snippet__type">JsonNode</span> <span class="code-snippet__variable">jsonNode</span> <span class="code-snippet__operator">=</span> objectMapper.readTree(jsonResult);</span></code><br/><code><span leaf="">        <span class="code-snippet__type">String</span> <span class="code-snippet__variable">signData</span> <span class="code-snippet__operator">=</span> jsonNode.get(<span class="code-snippet__string">&#34;data&#34;</span>).asText();</span></code><br/><code><span leaf="">        <span class="code-snippet__comment">// 关闭资源</span></span></code><br/><code><span leaf="">        response.close();</span></code><br/><code><span leaf="">        client.close();</span></code><br/><code><span leaf="">        <span class="code-snippet__comment">// 只返回 data 部分</span></span></code><br/><code><span leaf="">        <span class="code-snippet__keyword">return</span> signData;</span></code><br/><code><span leaf="">    } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><br/><code><span leaf="">        e.printStackTrace();</span></code><br/><code><span leaf="">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__string">&#34;&#34;</span>;</span></code><br/><code><span leaf="">    }</span></code><br/><code><span leaf="">}</span></code><br/></pre></p><p><span leaf="">6. 加载插件进行使用</span></p><p data-pm-slice="0 0 []"><span lang="EN-US"><span leaf=""><img class="rich_pages wxw-img" data-ratio="0.6520231213872832" data-type="png" data-w="865" data-imgfileid="100007223" data-aistatus="1" style="height: auto !important;" src="https://wechat2rss.xlab.app/img-proxy/?k=6d26dc94&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FfL1TQ0l0Qw1zIO81glXRnYMOr8rUSqjISgQz7uicHtCQNsBeF7phsmVXerXQ8XslxfOmVS9yMiaYt0UEDxOYEABSnwCvm4zqLFIcOdNeUKHw4%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></span></p><p><span leaf="">在repeater模块进行请求测试，在logger模型查看最终发送的请求报文，通过请求响应判断算法是否正确。</span></p><p style="line-height: 1.5em;"><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 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;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;6 6 []&#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;line-height: 1.5em;&#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;-webkit-tap-highlight-color: transparent;outline: 0px;font-family: \&#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;background-color: rgb(255, 255, 255);visibility: visible;&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#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-pm-slice&#34;:&#34;0 0 []&#34;,&#34;style&#34;:&#34;-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;&#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-pm-slice&#34;:&#34;0 0 []&#34;,&#34;style&#34;:&#34;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="font-weight: bold;">0X05 JSRPC方式下的程序缺陷与解决</span></span></span></strong></strong></p><p><span leaf="">本项目场景下，由于具体的签名函数处于非全局函数，导致每次注册函数前都需要先进行手动调试，因此重复劳动时会有点冗余。</span></p><p><span leaf="">相对于其他的JSRPC场景，本场景下如果想要实现全自动化的JSRPC客户端注册，需要实现</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang=""><code><span leaf="">自动启动浏览器、</span></code><br/><code><span leaf="">自动定位调试位置、</span></code><br/><code><span leaf="">自动开启调试、</span></code><br/><code><span leaf="">自动注入JS代码、</span></code><br/><code><span leaf="">自动校验函数是否可以被调用成功、</span></code><br/><code><span leaf="">自动继续运行</span></code><br/></pre></p><p><span leaf="">当这几步骤实现自动化后，即可实现适配于几乎所有场景的JSRPC客户端的注册，其中最难的是如何自动化实现调试暂停的功能。</span></p><p><span leaf="">经过研究现有的开源项目，没有找到相关的案例技术文章，因此笔者进行了多种浏览器自动化项目的研究。</span></p><p><span leaf="">最终发现可以通过CDP协议远程操作浏览器开启调试和继续运行，并通过执行JS进行校验，从而解决每次JSRPC客户端注册必须手动debug的问题。</span></p><p><span leaf=""><span textstyle="" style="font-weight: bold;">程序设计逻辑：</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=""><code><span leaf="">打开浏览器CDP</span></code><br/><code><span leaf="">  通过访问CDP监听端口检测浏览器是否开启CDP调试</span></code><br/><code><span leaf="">  若不可访问，自动启动 Chrome 并开启 CDP 调试端口。</span></code><br/><code></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf="">通过CDP连接浏览器并打开页面</span></code><br/><code><span leaf="">  连接页面级 WebSocket。</span></code><br/><code><span leaf="">  打开目标页面并等待加载完成。</span></code><br/><code></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf="">开始进行断点</span></code><br/><code><span leaf="">  收集页面脚本 URL 和 Debugger.scriptParsed 事件。</span></code><br/><code><span leaf="">  优先使用 Debugger.getScriptSource 获取脚本源码。</span></code><br/><code><span leaf="">  当未拿到 scriptId 时，自动回退到 httpx 下载脚本源码。</span></code><br/><code><span leaf="">  依据目标代码片段定位断点位置并设置精确断点。</span></code><br/><code></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf="">触发断点调试</span></code><br/><code><span leaf="">  刷新页面触发暂停。</span></code><br/><code><span leaf="">  在暂停上下文中执行提升脚本，得到可用的签名函数。</span></code><br/><code></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf="">注入JS代码</span></code><br/><code><span leaf="">  注入 js_env.js。</span></code><br/><code><span leaf="">  读取 reg_action.js 注册 sign 动作。</span></code><br/><code><span leaf="">  读取 reg_action_verify.js 校验动作是否注册成功。</span></code><br/><code><span leaf="">  读取 promote_func_verify.js 验证签名函数是否可用。</span></code><br/><code></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf="">恢复浏览器执行</span></code><br/><code><span leaf="">  恢复浏览器执行并保持连接一段时间。</span></code><br/></pre></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="0 0 []"><p><span leaf=""><span textstyle="" style="font-weight: bold;">具体代码实现</span></span><span leaf=""><span textstyle="" style="font-weight: bold;">jsrpc_by_cdp_python</span></span><span leaf=""><span textstyle="" style="font-weight: bold;">：</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="makefile"><code><span leaf=""><span class="code-snippet__section">jsrpc_by_cdp_python: </span></span></code><br/><code><span leaf=""><span class="code-snippet__section">通过cdp实现全自动jsrpc客户端注册: </span></span></code><br/><code><span leaf=""><span class="code-snippet__section"><a href="https://github.com/winezer0/jsrpc_by_cdp_python" target="_blank">https://github.com/winezer0/jsrpc_by_cdp_python</a></span></span></code><br/></pre></p></div><p style="line-height: 1.5em;"><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf=""><span textstyle="" style="font-weight: bold;">全自动化JSRPC注册方案优势：</span></span></span></strong></strong></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang=""><code><span leaf="">只需要手动调试一次程序，找到加密算法调用。</span></code><br/><code><span leaf="">能够全自动化实现jsrpc客户端的注册。</span></code><br/><code><span leaf="">适用于非全局加密函数的调用。</span></code><br/><code><span leaf="">通过无头浏览器模式可以减少内存占用。</span></code><br/></pre></p><p style="line-height: 1.5em;"><span leaf="">注：当前程序是基于目标网站的场景实现的较复杂版本，对于全局可调用函数可以跳过断点和刷新页面部分，具体可以根据实际的场景进行设计。</span></p><p style="line-height: 1.5em;"><span leaf="">注：对于自动化场景下的反调试问题，本次是直接在CDP连接的浏览器中安装并启用了</span><span leaf="">AntiDebug_Breaker</span><span leaf="">插件，未通过JS注入实现反反调试功能。</span></p></div><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100% 100%;text-align: left;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=2d404a2d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjklAO9ezM6ymrNndsrPn9lZ3FyFiaibib5n6nicPsotVIIILEARU4QSNMTA%2F640%3Fwx_fmt%3Dpng&#34;);margin-bottom: 0px;"><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 4%;background-size: 100%;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=767f4cec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjSZevnnVaheZ2lF9BFRIxBhhT2I64n8ZWKyRZcP7OUBUFlpyzLbwHibQ%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;"><img class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="258" style="vertical-align: middle;width: 100%;height: auto !important;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007001" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=38982032&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">NOVASEC</span></p></div></div></div></div></div></div></div></div></div></div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);" data-remoteid="c1752114746949"><div style="margin-bottom: unset;"><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;"><img class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="430" style="vertical-align: middle;width: 100%;height: auto !important;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007002" data-aistatus="1" src="https://wechat2rss.xlab.app/img-proxy/?k=b1271a8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">WINEZER0</span></p></div></div></div></div></div></div></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=4c4070e7&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490875%26idx%3D1%26sn%3Ded04e6c225ac26b228470bd6dc4fba09">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 25 May 2026 00:01:00 +0800</pubDate>
    </item>
    <item>
      <title>【工具】Copier-Plus：批量保存Burp报文</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490844&amp;idx=1&amp;sn=ddb2f750d0d68eda8089b78ec603eaf5</link>
      <description>Copier-Branch：批量保存Burp报文</description>
      <content:encoded><![CDATA[<p>原创 <span>酒零</span> <span>2026-04-13 20:01</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=b16353af&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FfL1TQ0l0Qw29dOgecRStQjDXPiaOFLnMtpicZWJicpfN0dRMtk1Y2xd2lBJic0hLNfZ81KOl4vKXv9ZZFbSlCCvpOh9H3oCgLxTpMKglwI3DdLI%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>Copier-Branch：批量保存Burp报文</p>
  <p style="margin-bottom: 0px;"><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6198757763975156" data-s="300,640" data-type="png" data-w="805" style="color: rgb(51, 51, 51);font-size: 14px;letter-spacing: 1.5px;text-align: center;" data-imgfileid="100006977" src="https://wechat2rss.xlab.app/img-proxy/?k=8c8b80b1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjuJtkhP7vxlCDuQbSnofqkMWgjtQCZqKTrdm330DH5kk8NgibIR3cNQQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p style="margin-bottom: 0px;text-align: left;letter-spacing: 1.5px;line-height: 1.75em;"><strong style="font-size: 20px;letter-spacing: 1.5px;"><span style="font-family: 宋体;"><span leaf="">0x00 前言</span></span></strong></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><p style="line-height: 1.5em;letter-spacing: 1.5px;"><strong><span leaf="">免责声明：继续阅读文章视为您已同意[</span></strong><strong><span leaf=""><a class="normal_text_link" target="_blank" style="font-size: 16px;font-family: 宋体;" href="http://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247489726&amp;idx=1&amp;sn=e5459d91f53caf90e76c6558dc8b4ac9&amp;chksm=fad4c5a9cda34cbf0d02c24383827a906e7d08d5694d452a0cc18988f130abab371735ee1843&amp;scene=21#wechat_redirect" textvalue="NOVASEC免责声明" data-itemshowtype="0" linktype="text" data-linktype="2">NOVASEC免责声明</a></span></strong><strong><span leaf="">].</span></strong></p></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><p style="line-height: 1.5em;"><span style="font-size: 14px;"><em><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="">注：本文属于推荐系列文章，所推荐内容并非全部由本团队开源实现。文章旨在分享各类优质项目，提升其关注度与影响力，文中观点仅代表作者个人看法。若您有更合适的替代项目，欢迎在留言区推荐分享，共同推荐优质项目资源。</span></span></strong></strong></em></span></p><p style="line-height: 1.5em;"><span leaf=""><span textstyle="" style="font-weight: bold;">项目介绍</span></span></p><p dir="auto" msttexthash="762774298" msthash="244" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" data-pm-slice="0 0 []"><span leaf="">Copier </span><span leaf="">是 Burp Suite 的一个扩展，允许用户轻松复制请求和回复，同时使用自定义规则进行自动修改。使得请求和响应可以轻松复制到报告中，无需编辑去大 Cookie 值、多余的头部或敏感数据</span></p><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf=""><span textstyle="" style="font-weight: bold;">原项目仅支持Copy清理后的报文，但没有提供文件保存功能，在原项目的基础下，实现了批量报文保存功能。</span></span></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><p dir="auto" msttexthash="762774298" msthash="244" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;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="2 2 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span leaf="">支持设置配置多种方式，批量复制指定报文的指定部分，比如复制请求url和响应体,  </span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;dir&#34;:&#34;auto&#34;,&#34;msttexthash&#34;:&#34;762774298&#34;,&#34;msthash&#34;:&#34;244&#34;,&#34;style&#34;:&#34;box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: -apple-system, BlinkMacSystemFont, \&#34;Segoe UI\&#34;, \&#34;Noto Sans\&#34;, Helvetica, Arial, sans-serif, \&#34;Apple Color Emoji\&#34;, \&#34;Segoe UI 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: start;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;}]">复制请求和响应 等等  </span></p></div><p style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf=""><span textstyle="" style="font-weight: bold;">我的使用主要是实现一些批量报文的保存。</span></span></p><p><span leaf=""><span textstyle="" style="font-weight: bold;">扩展功能</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=""><code><span leaf="">1、允许正则替换内容框为空</span></code><br/><code><span leaf="">2、增加 LocateRule, 用于标记仅提取 Location部分报文</span></code><br/><code><span leaf="">3、增加 EnabledBase64, 用于确定是否对报文内容进行Base64编码</span></code><br/><code><span leaf="">4、增加 jsonFormat框 , 用于确定是否输出Json格式的结果</span></code><br/><code><span leaf="">5、支持多种方式保存【剪贴板、单文件、多文件】</span></code><br/></pre></p><p style="line-height: 1.5em;"><span leaf=""><span textstyle="" style="font-weight: bold;">常用配置：复制请求行和响应体</span></span></p><p style="text-align: center;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6884955752212389" data-s="300,640" data-type="png" data-w="565" type="block" data-imgfileid="100007141" src="https://wechat2rss.xlab.app/img-proxy/?k=603d833a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FfL1TQ0l0Qw0Ma57sRT1I8cdQiayIfQHhWtHb1J9lI1rpLMdlOCicoh7PREorU8iaoEAWpiaz0bx3yViccrIkMrRpnVQIC7lH2uiaicbOdAibpCXVB98%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></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;color: rgb(51, 51, 51);font-family: &#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;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 1.5px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.5em;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><span data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: 400;visibility: visible;display: inline !important;"><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></span></strong></strong></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=""><span class="code-snippet__attr">https</span>:<span class="code-snippet__comment">//github.com/Tib3rius/Copier</span></span></code></pre></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="6 6 []"><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;color: rgb(51, 51, 51);font-family: &#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;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 1.5px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.5em;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible;"><span data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: 400;visibility: visible;display: inline !important;"><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></span></strong></strong></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=""><span class="code-snippet__attr">https</span>:<span class="code-snippet__comment">//github.com/winezer0/Copier-Branch</span></span></code></pre></p></div><p style="line-height: 1.5em;"><span leaf="" style="font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;line-height: 1.5em;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">注意：该插件使用的是高版本 montoya-api Jdk 较高版本语法 需要使用新版burp (2024+)</span></p></div><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100% 100%;text-align: left;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=2d404a2d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjklAO9ezM6ymrNndsrPn9lZ3FyFiaibib5n6nicPsotVIIILEARU4QSNMTA%2F640%3Fwx_fmt%3Dpng&#34;);margin-bottom: 0px;"><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 4%;background-size: 100%;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=767f4cec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjSZevnnVaheZ2lF9BFRIxBhhT2I64n8ZWKyRZcP7OUBUFlpyzLbwHibQ%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="258" style="vertical-align: middle;width: 100%;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007001" src="https://wechat2rss.xlab.app/img-proxy/?k=38982032&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">NOVASEC</span></p></div></div></div></div></div></div></div></div></div></div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);" data-remoteid="c1752114746949"><div style="margin-bottom: unset;"><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="430" style="vertical-align: middle;width: 100%;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007002" src="https://wechat2rss.xlab.app/img-proxy/?k=b1271a8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">WINEZER0</span></p></div></div></div></div></div></div></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=19c8b6d6&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490844%26idx%3D1%26sn%3Dddb2f750d0d68eda8089b78ec603eaf5">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 13 Apr 2026 20:01:00 +0800</pubDate>
    </item>
    <item>
      <title>【工具】LLM AI API Checker 批量检测和管理APIKEY</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490843&amp;idx=1&amp;sn=eb31e6205373f15d59315f52d1e1b9ec</link>
      <description>API Checker 一个用于批量检测和管理 AI LLM API Key 的桌面工具。</description>
      <content:encoded><![CDATA[<p>原创 <span>酒零</span> <span>2026-04-08 20:01</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=1e35cc95&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FfL1TQ0l0Qw08HMOdu3ozg4x1Pk9Z92iaaP315LXKSNqtS5xFOicaYGb7D8vf8lW4NxzwWZwhL4cyp3jQuibIgzQSqM2CibHW5WyKpfG4uc3h1VI%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>API Checker 一个用于批量检测和管理 AI LLM API Key 的桌面工具。</p>
  <p style="margin-bottom: 0px;"><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6198757763975156" data-s="300,640" data-type="png" data-w="805" style="color: rgb(51, 51, 51);font-size: 14px;letter-spacing: 1.5px;text-align: center;" data-imgfileid="100006977" src="https://wechat2rss.xlab.app/img-proxy/?k=8c8b80b1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjuJtkhP7vxlCDuQbSnofqkMWgjtQCZqKTrdm330DH5kk8NgibIR3cNQQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p style="margin-bottom: 0px;text-align: left;letter-spacing: 1.5px;line-height: 1.75em;"><strong style="font-size: 20px;letter-spacing: 1.5px;"><span style="font-family: 宋体;"><span leaf="">0x00 前言</span></span></strong></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><p style="line-height: 1.5em;letter-spacing: 1.5px;"><strong><span leaf="">免责声明：继续阅读文章视为您已同意[</span></strong><strong><span leaf=""><a class="normal_text_link" target="_blank" style="font-size: 16px;font-family: 宋体;" href="http://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247489726&amp;idx=1&amp;sn=e5459d91f53caf90e76c6558dc8b4ac9&amp;chksm=fad4c5a9cda34cbf0d02c24383827a906e7d08d5694d452a0cc18988f130abab371735ee1843&amp;scene=21#wechat_redirect" textvalue="NOVASEC免责声明" data-itemshowtype="0" linktype="text" data-linktype="2">NOVASEC免责声明</a></span></strong><strong><span leaf="">].</span></strong></p></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><p style="line-height: 1.5em;"><span style="font-size: 14px;"><em><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="">注：本文属于推荐系列文章，所推荐内容并非由全部本团队开源实现。文章旨在分享各类优质项目，提升其关注度与影响力，文中观点仅代表作者个人看法。若您有更合适的替代项目，欢迎在留言区推荐分享，共同推荐优质项目资源。</span></span></strong></strong></em></span></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 3 []"><p style="line-height: 1.5em;"><span leaf=""><span textstyle="" style="font-size: 14px;">不同的LLM API有点混淆了，需要便捷的测试、保存、复制，从而开发了这个工具。</span></span></p></div><p><span leaf=""><span textstyle="" style="font-weight: bold;">功能特点</span></span></p><p><span leaf=""><span textstyle="" style="font-size: 14px;">批量检测: 支持批量验证 OpenAI 和 Anthropic API Key 的有效性</span></span></p><p><span leaf=""><span textstyle="" style="font-size: 14px;">模型获取: 自动获取每个有效 API Key 可用的模型列表</span></span></p><p><span leaf=""><span textstyle="" style="font-size: 14px;">智能测试: 测试模型的智能度并缓存结果</span></span></p><p><span leaf=""><span textstyle="" style="font-size: 14px;">安全存储: 使用机器码或用户自定义密码加密存储配置，确保敏感信息安全</span></span></p><p><span leaf=""><span textstyle="" style="font-size: 14px;">聊天调试: 内置聊天窗口，可直接与模型对话进行调试</span></span></p><p><span leaf=""><span textstyle="" style="font-size: 14px;">快速复制: 双击表格单元格快速复制 API Key 或 Base URL</span></span></p><p><span leaf=""><span textstyle="" style="font-size: 14px;">多协议支持: 支持 OpenAI、Anthropic 及兼容 OpenAI API 格式的自定义 API</span></span></p><p><span leaf=""><span textstyle="" style="font-size: 14px;">提示词配置: 可自定义测试提示词，用于智能度测试</span></span></p><p><span leaf=""><span textstyle="" style="font-size: 14px;">启动密码保护: 可设置启动密码，防止未授权访问 API Key</span></span></p><p><span leaf=""><span textstyle="" style="font-weight: bold;">支持的协议</span></span></p><p><span leaf=""><span textstyle="" style="font-size: 14px;">OpenAI</span></span></p><p><span leaf=""><span textstyle="" style="font-size: 14px;">Anthropic</span></span></p><p><span leaf=""><span textstyle="" style="font-size: 14px;">兼容 OpenAI API 、Anthropic API格式的自定义 API</span></span></p><p><span leaf=""><span textstyle="" style="font-weight: bold;">安全说明</span></span></p><p><span leaf=""><span textstyle="" style="font-size: 14px;">API Key 使用 AES-GCM 加密算法进行加密存储，加密密钥为空时由机器码派生，只有在当前机器上才能解密查看 API Key 内容</span></span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="font-size: 14px;">，其他情况下由用户自定义的启动密码作为加密密钥，从而实现不同机器的配置迁移。</span></span></p><p style="line-height: 1.5em;"><strong data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []"><span data-pm-slice="0 0 []"><span leaf=""><span textstyle="" style="font-weight: bold;">项目地址：</span></span></span></strong></strong></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="bash"><code><span leaf="">apichecker: ai api checker or simple clm client · GitHub:</span></code><br/><code><span leaf=""><a href="https://github.com/winezer0/apichecker" target="_blank">https://github.com/winezer0/apichecker</a></span></code><br/></pre></p><p style="line-height: 1.5em;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 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;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 3 []&#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;line-height: 1.5em;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="font-size: 14px;">注：当前仅测试了Qwen等类openai接口的实现。</span></span></p></div><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100% 100%;text-align: left;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=2d404a2d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjklAO9ezM6ymrNndsrPn9lZ3FyFiaibib5n6nicPsotVIIILEARU4QSNMTA%2F640%3Fwx_fmt%3Dpng&#34;);margin-bottom: 0px;"><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 4%;background-size: 100%;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=767f4cec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjSZevnnVaheZ2lF9BFRIxBhhT2I64n8ZWKyRZcP7OUBUFlpyzLbwHibQ%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="258" style="vertical-align: middle;width: 100%;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007001" src="https://wechat2rss.xlab.app/img-proxy/?k=38982032&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">NOVASEC</span></p></div></div></div></div></div></div></div></div></div></div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);" data-remoteid="c1752114746949"><div style="margin-bottom: unset;"><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;" nodeleaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007002" data-ratio="1" data-s="300,640" style="vertical-align: middle;width: 100%;" data-type="jpeg" data-w="430" src="https://wechat2rss.xlab.app/img-proxy/?k=b1271a8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">WINEZER0</span></p></div></div></div></div></div></div></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=741de486&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490843%26idx%3D1%26sn%3Deb31e6205373f15d59315f52d1e1b9ec">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Wed, 08 Apr 2026 20:01:00 +0800</pubDate>
    </item>
    <item>
      <title>【工具】EditHttpMsg For Burp UI Demo</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490838&amp;idx=1&amp;sn=5bc96c6f3d85f67d7d071116f63b5ea4</link>
      <description>EditHttpMsg For Burp UI Demo</description>
      <content:encoded><![CDATA[<p>原创 <span>酒零</span> <span>2026-03-30 20:01</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=6ebd2ba6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FfL1TQ0l0Qw12oePaXl0uYjbbnMDSv7LvU4jEOROw87qTj3e43Z54LeHHBMwdwuLeLgKy8twZ0tujwNJjSEYuN12dt4O5TRSn6JqXE5sbYyg%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>EditHttpMsg For Burp UI Demo</p>
  <p style="margin-bottom: 0px;"><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6198757763975156" data-s="300,640" data-type="png" data-w="805" style="color: rgb(51, 51, 51);font-size: 14px;letter-spacing: 1.5px;text-align: center;" data-imgfileid="100006977" src="https://wechat2rss.xlab.app/img-proxy/?k=8c8b80b1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjuJtkhP7vxlCDuQbSnofqkMWgjtQCZqKTrdm330DH5kk8NgibIR3cNQQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p style="margin-bottom: 0px;text-align: left;letter-spacing: 1.5px;line-height: 1.75em;"><strong style="font-size: 20px;letter-spacing: 1.5px;"><span style="font-family: 宋体;"><span leaf="">0x00 前言</span></span></strong></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><p style="line-height: 1.5em;letter-spacing: 1.5px;"><strong><span leaf="">免责声明：继续阅读文章视为您已同意[</span></strong><strong><span leaf=""><a class="normal_text_link" target="_blank" style="font-size: 16px;font-family: 宋体;" href="http://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247489726&amp;idx=1&amp;sn=e5459d91f53caf90e76c6558dc8b4ac9&amp;chksm=fad4c5a9cda34cbf0d02c24383827a906e7d08d5694d452a0cc18988f130abab371735ee1843&amp;scene=21#wechat_redirect" textvalue="NOVASEC免责声明" data-itemshowtype="0" linktype="text" data-linktype="2">NOVASEC免责声明</a></span></strong><strong><span leaf="">].</span></strong></p></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><p style="line-height: 1.5em;"><span style="font-size: 14px;"><em><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="">注：本文属于推荐系列文章，所推荐内容并非全部由本团队开源实现。文章旨在分享各类优质项目，提升其关注度与影响力，文中观点仅代表作者个人看法。若您有更合适的替代项目，欢迎在留言区推荐分享，共同推荐优质项目资源。</span></span></strong></strong></em></span></p><p style="line-height: 1.5em;"><span leaf="">虽然现在已经有很多动态的加解密插件项目，但是部分项目下还是需要将算法修改代码写入到单个插件中，方便下次直接复用。</span></p><p style="line-height: 1.5em;"><span leaf="">最近遇到了这个需求，因此又开启了以前停止更新的EditHttpMsg项目，并添加实现了常用的UI过滤配置。</span></p><p style="text-align: center;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6214549938347719" data-s="300,640" data-type="png" data-w="811" type="block" data-imgfileid="100007185" src="https://wechat2rss.xlab.app/img-proxy/?k=67b695ee&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FfL1TQ0l0Qw3DOh95Y6uxoMgr7RbL8iaNhuUFCX2libfIZxT1kqo3qY9ExmwgxBtqSG5O9H0nY4OoRdXj8v2ahkHxP1sDRds7w7nCh6jTSW4r8%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="line-height: 1.5em;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">使用方式：</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="markdown"><code><span leaf=""><span class="code-snippet__bullet">1.</span> 下载项目代码 并使用idea加载</span></code><br/><code><span leaf=""><span class="code-snippet__bullet">2.</span> 实现 ProcessAction.java 中的 updateBodyData 函数</span></code><br/><code><span leaf=""><span class="code-snippet__bullet">3.</span> 重命名 config.java中的EXTENSION<span class="code-snippet__emphasis">_NAME信息</span></span></code><br/><code><span leaf="">4. 使用 mvn 命令或 idea maven插件进行编译打包 </span></code><br/><code><span leaf="">5. 使用 Burp 进行加载调试</span></code><br/></pre></p></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><p style="line-height: 1.5em;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;line-height: 1.5em;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">EditHttpMsgDemoWithUI </span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">项目地址：</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=""><span class="code-snippet__attr">https</span>:<span class="code-snippet__comment">//github.com/winezer0/EditHttpMsgDemoWithUI</span></span></code></pre></p><p style="line-height: 1.5em;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;line-height: 1.5em;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">提示：该项目只是一个便于实际场景中打开即用的空白架构，因此还携带了一些IDEA信息，具体的修改内容还需要用户去实现。</span></p></div><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100% 100%;text-align: left;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=2d404a2d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjklAO9ezM6ymrNndsrPn9lZ3FyFiaibib5n6nicPsotVIIILEARU4QSNMTA%2F640%3Fwx_fmt%3Dpng&#34;);margin-bottom: 0px;"><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 4%;background-size: 100%;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=767f4cec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjSZevnnVaheZ2lF9BFRIxBhhT2I64n8ZWKyRZcP7OUBUFlpyzLbwHibQ%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="258" style="vertical-align: middle;width: 100%;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007001" src="https://wechat2rss.xlab.app/img-proxy/?k=38982032&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">NOVASEC</span></p></div></div></div></div></div></div></div></div></div></div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);" data-remoteid="c1752114746949"><div style="margin-bottom: unset;"><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;" nodeleaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007002" data-ratio="1" data-s="300,640" style="vertical-align: middle;width: 100%;" data-type="jpeg" data-w="430" src="https://wechat2rss.xlab.app/img-proxy/?k=b1271a8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">WINEZER0</span></p></div></div></div></div></div></div></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=14f8756f&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490838%26idx%3D1%26sn%3D5bc96c6f3d85f67d7d071116f63b5ea4">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 30 Mar 2026 20:01:00 +0800</pubDate>
    </item>
    <item>
      <title>【工具】revsuit dns/http/mysql/rmi/ldap/ftp Log记录器更新</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490831&amp;idx=1&amp;sn=8717605c3aa831d22f361dec78a46d3a</link>
      <description>revsuit dnsLog记录器更新</description>
      <content:encoded><![CDATA[<p>原创 <span>酒零</span> <span>2026-03-26 12:40</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=25531e1a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FfL1TQ0l0Qw2ZhOZZrT8EKZ4GcsicrCNWa0unPOG0vdrVKYJGiaF1eYttib7a7HFF5HNqsk7ADf7iaYhfBY294HjW1V7FlAJeLicgcEGmlkbGqHibA%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>revsuit dnsLog记录器更新</p>
  <p style="margin-bottom: 0px;"><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6198757763975156" data-s="300,640" data-type="png" data-w="805" style="color: rgb(51, 51, 51);font-size: 14px;letter-spacing: 1.5px;text-align: center;" data-imgfileid="100006977" src="https://wechat2rss.xlab.app/img-proxy/?k=8c8b80b1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjuJtkhP7vxlCDuQbSnofqkMWgjtQCZqKTrdm330DH5kk8NgibIR3cNQQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p style="margin-bottom: 0px;text-align: left;letter-spacing: 1.5px;line-height: 1.75em;"><strong style="font-size: 20px;letter-spacing: 1.5px;"><span style="font-family: 宋体;"><span leaf="">0x00 前言</span></span></strong></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><p style="line-height: 1.5em;letter-spacing: 1.5px;"><strong><span leaf="">免责声明：继续阅读文章视为您已同意[</span></strong><strong><span leaf=""><a class="normal_text_link" target="_blank" style="font-size: 16px;font-family: 宋体;" href="http://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247489726&amp;idx=1&amp;sn=e5459d91f53caf90e76c6558dc8b4ac9&amp;chksm=fad4c5a9cda34cbf0d02c24383827a906e7d08d5694d452a0cc18988f130abab371735ee1843&amp;scene=21#wechat_redirect" textvalue="NOVASEC免责声明" data-itemshowtype="0" linktype="text" data-linktype="2">NOVASEC免责声明</a></span></strong><strong><span leaf="">].</span></strong></p></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><p style="line-height: 1.5em;"><span style="font-size: 14px;"><em><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="">注：本文属于推荐系列文章，所推荐内容并非全部由本团队开源实现。文章旨在分享各类优质项目，提升其关注度与影响力，文中观点仅代表作者个人看法。若您有更合适的替代项目，欢迎在留言区推荐分享，共同推荐优质项目资源。</span></span></strong></strong></em></span></p><p style="line-height: 1.5em;"><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="">忙碌是生活的代名词，有很多东西想写，但是想想还要润稿，就只能缓缓了。</span></span></strong></strong></p><p style="line-height: 1.5em;"><span leaf="">revsuit是一款多协议的oob log记录器，</span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;line-height: 1.5em;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">在我的VPS上一般都会部署一个revsuit用于手动dns测试。</span></p><p style="line-height: 1.5em;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;line-height: 1.5em;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">revsuit的</span><span leaf="">优点是支持多种协议，缺点就是功能比较复杂，更高阶的SSE使用我也咩有用过。 </span></p><p style="line-height: 1.5em;"><span leaf="">如果有更高阶的使用方案，欢迎大家投稿。</span></p><p style="line-height: 1.5em;"><span leaf="">最近在新的VPS上进行部署时，发现qqwry的下载链接已经失效，上一次更新也好几年了，然后手动进行些修复，并且准备接手对进行维护。</span></p><p style="line-height: 1.5em;"><span leaf="">项目地址：</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="bash"><code><span leaf=""><a href="https://github.com/winezer0/revsuit/releases" target="_blank">https://github.com/winezer0/revsuit/releases</a></span></code></pre></p><p style="line-height: 1.5em;"><span leaf="">历史文章：</span></p><p style="line-height: 1.5em;"><span leaf=""><a class="normal_text_link" target="_blank" style="" href="https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247487700&amp;idx=1&amp;sn=4af97026bfd01081929e94f225ced5eb&amp;scene=21#wechat_redirect" textvalue="DNSlog搭建-单域名单接管部署RevSuit" data-itemshowtype="0" linktype="text" data-linktype="2">DNSlog搭建-单域名单接管部署RevSuit</a></span></p><p style="line-height: 1.5em;"><span leaf=""><a class="normal_text_link" target="_blank" style="" href="https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247489680&amp;idx=1&amp;sn=e813d5f3dc38e2b379c574b91a34a149&amp;scene=21#wechat_redirect" textvalue="配置afrog的RevSuit" data-itemshowtype="0" linktype="text" data-linktype="2">配置afrog的RevSuit</a></span></p></div><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100% 100%;text-align: left;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=2d404a2d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjklAO9ezM6ymrNndsrPn9lZ3FyFiaibib5n6nicPsotVIIILEARU4QSNMTA%2F640%3Fwx_fmt%3Dpng&#34;);margin-bottom: 0px;"><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 4%;background-size: 100%;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=767f4cec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjSZevnnVaheZ2lF9BFRIxBhhT2I64n8ZWKyRZcP7OUBUFlpyzLbwHibQ%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="258" style="vertical-align: middle;width: 100%;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007001" src="https://wechat2rss.xlab.app/img-proxy/?k=38982032&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">NOVASEC</span></p></div></div></div></div></div></div></div></div></div></div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);" data-remoteid="c1752114746949"><div style="margin-bottom: unset;"><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="430" style="vertical-align: middle;width: 100%;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007002" src="https://wechat2rss.xlab.app/img-proxy/?k=b1271a8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">WINEZER0</span></p></div></div></div></div></div></div></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=0fd400ae&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490831%26idx%3D1%26sn%3D8717605c3aa831d22f361dec78a46d3a">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Thu, 26 Mar 2026 12:40:00 +0800</pubDate>
    </item>
    <item>
      <title>【工具】xcanvas：开源代码指纹框架</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490825&amp;idx=1&amp;sn=9125b6d4cb9743dda88a69cd3f91b97d</link>
      <description>【工具】xcanvas：开源代码指纹框架</description>
      <content:encoded><![CDATA[<p>原创 <span>酒零</span> <span>2026-03-01 00:00</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=0dfd2217&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FfL1TQ0l0Qw1XCiaHeStDfmicejuWUfdXlabVHhQktdVW4ZswjBCTuKpHNRcRRnX5gt9OIIE5f39KIWaeKjn6iclNcoibvic3wzKtdiaP8HOVSIFJ0%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>【工具】xcanvas：开源代码指纹框架</p>
  <p style="margin-bottom: 0px;"><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6198757763975156" data-s="300,640" data-type="png" data-w="805" style="color: rgb(51, 51, 51);font-size: 14px;letter-spacing: 1.5px;text-align: center;" data-imgfileid="100006977" src="https://wechat2rss.xlab.app/img-proxy/?k=8c8b80b1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjuJtkhP7vxlCDuQbSnofqkMWgjtQCZqKTrdm330DH5kk8NgibIR3cNQQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p style="margin-bottom: 0px;text-align: left;letter-spacing: 1.5px;line-height: 1.75em;"><strong style="font-size: 20px;letter-spacing: 1.5px;"><span style="font-family: 宋体;"><span leaf="">0x00 前言</span></span></strong></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><p style="line-height: 1.5em;letter-spacing: 1.5px;"><strong><span leaf="">免责声明：继续阅读文章视为您已同意[</span></strong><strong><span leaf=""><a class="normal_text_link" target="_blank" style="font-size: 16px;font-family: 宋体;" href="http://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247489726&amp;idx=1&amp;sn=e5459d91f53caf90e76c6558dc8b4ac9&amp;chksm=fad4c5a9cda34cbf0d02c24383827a906e7d08d5694d452a0cc18988f130abab371735ee1843&amp;scene=21#wechat_redirect" textvalue="NOVASEC免责声明" data-itemshowtype="0" linktype="text" data-linktype="2">NOVASEC免责声明</a></span></strong><strong><span leaf="">].</span></strong></p></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><p style="line-height: 1.5em;"><span style="font-size: 14px;"><em><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="">注：本文属于推荐系列文章，本文所推荐内容为内部项目，由本团队开源实现。本系列文章旨在分享各类优质项目，提升其关注度与影响力，文中观点仅代表作者个人看法。若您有更合适的替代项目，欢迎在留言区推荐分享，共同推荐优质项目资源。</span></span></strong></strong></em></span></p><h1 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 0px !important;margin-right: 0px;margin-bottom: 16px;margin-left: 0px;font-size: 2em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">xcanvas</span></h1><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">轻量级、无依赖、可嵌入的代码画像引擎，面向 DevSecOps 场景，提供标准化的项目技术栈识别能力。</span></p><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">核心价值</span></h2><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">✅ </span><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">快速构建项目画像</span></strong><span leaf="">：输出语言、框架、组件三元组</span></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">✅ </span><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">规则驱动</span></strong><span leaf="">：新增框架/组件仅需更新 YAML 配置，无需重新编译</span></p></div><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">程序逻辑</span></h2><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span leaf="">xcanvas 的运行逻辑分为以下几个主要步骤：</span></p><ol style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;padding-left: 2em;color: rgb(31, 35, 40);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">命令行参数解析</span></strong><p><span leaf="">：解析项目路径、规则目录、输出文件等参数</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">初始化框架引擎</span></strong><p><span leaf="">：加载嵌入式规则和用户自定义规则</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">代码分析</span></strong><p><span leaf="">：</span></p></li><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 0px;padding-left: 2em;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">遍历项目目录，构建文件索引</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">识别文件语言类型，统计各语言的文件数、代码行数等信息</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">对语言进行分类（前端/后端/桌面/其他）</span></p></li></ul><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">框架和组件检测</span></strong><p><span leaf="">：</span></p></li><ul style="box-sizing: border-box;margin-top: 0px;margin-bottom: 0px;padding-left: 2em;" class="list-paddingleft-1"><li style="box-sizing: border-box;"><p><span leaf="">根据检测到的语言过滤规则</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">使用文件索引加速匹配过程</span></p></li><li style="box-sizing: border-box;margin-top: 0.25em;"><p><span leaf="">遍历规则，对每个框架进行检测，提取版本信息</span></p></li></ul><li style="box-sizing: border-box;margin-top: 0.25em;"><strong style="box-sizing: border-box;font-weight: 600;"><span leaf="">生成报告</span></strong><p><span leaf="">：输出命令行报告和JSON格式结果</span></p></li></ol><p style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;"><span leaf="">运行示例</span></p><p class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"></ul><pre class="code-snippet__js" data-lang="diff"><code><span leaf="">λ xcanvas.exe  -p xcanvas</span></code><br/><code><span leaf="">Frontend LanguageInfos:</span></code><br/><code><span leaf=""><span class="code-snippet__deletion">- Markdown</span></span></code><br/><code><span leaf=""><span class="code-snippet__deletion">- TSX</span></span></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf="">Backend LanguageInfos:</span></code><br/><code><span leaf=""><span class="code-snippet__deletion">- Java</span></span></code><br/><code><span leaf=""><span class="code-snippet__deletion">- PHP</span></span></code><br/><code><span leaf=""><span class="code-snippet__deletion">- Go</span></span></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf="">Other LanguageInfos:</span></code><br/><code><span leaf=""><span class="code-snippet__deletion">- XML</span></span></code><br/><code><span leaf=""><span class="code-snippet__deletion">- YAML</span></span></code><br/><code><span leaf=""><span class="code-snippet__deletion">- JSON</span></span></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf="">All LanguageInfos:</span></code><br/><code><span leaf=""><span class="code-snippet__deletion">- XML: 2 files, 175 lines</span></span></code><br/><code><span leaf=""><span class="code-snippet__deletion">- Java: 1 files, 41 lines</span></span></code><br/><code><span leaf=""><span class="code-snippet__deletion">- PHP: 3 files, 15 lines</span></span></code><br/><code><span leaf=""><span class="code-snippet__deletion">- Markdown: 1 files, 140 lines</span></span></code><br/><code><span leaf=""><span class="code-snippet__deletion">- Go: 31 files, 2423 lines</span></span></code><br/><code><span leaf=""><span class="code-snippet__deletion">- YAML: 14 files, 2025 lines</span></span></code><br/><code><span leaf=""><span class="code-snippet__deletion">- JSON: 2 files, 18 lines</span></span></code><br/><code><span leaf=""><span class="code-snippet__deletion">- TSX: 1 files, 7 lines</span></span></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf="">Detected Frameworks:</span></code><br/><code><span leaf="">  [frontend]</span></code><br/><code><span leaf="">  - React (JavaScript)</span></code><br/><code><span leaf="">    Version: 18.0.0</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for React</span></code><br/><code><span leaf="">  - Vue.js (JavaScript)</span></code><br/><code><span leaf="">    Version: 3.3.4</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for Vue.js</span></code><br/><code><span leaf="">  - Next.js (JavaScript)</span></code><br/><code><span leaf="">    Version: 13.5.6</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for Next.js</span></code><br/><code><span leaf="">  [backend]</span></code><br/><code><span leaf="">  - Gin (Go)</span></code><br/><code><span leaf="">    Version: 1.9.0</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for Gin</span></code><br/><code><span leaf="">  - Hibernate ORM (Java)</span></code><br/><code><span leaf="">    Version: 5.6.15.Final</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for Hibernate ORM</span></code><br/><code><span leaf="">  - Express (JavaScript)</span></code><br/><code><span leaf="">    Version: 4.18.2</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for Express</span></code><br/><code><span leaf="">  - Laravel (PHP)</span></code><br/><code><span leaf="">    Version: 10.0</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for Laravel</span></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf="">Detected Components:</span></code><br/><code><span leaf="">  [frontend]</span></code><br/><code><span leaf="">  - lodash (JavaScript)</span></code><br/><code><span leaf="">    Version: 4.17.21</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for lodash</span></code><br/><code><span leaf="">  - axios (JavaScript)</span></code><br/><code><span leaf="">    Version: 1.6.2</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for axios</span></code><br/><code><span leaf="">  [backend]</span></code><br/><code><span leaf="">  - grpc-go (Go)</span></code><br/><code><span leaf="">    Version: 1.59.0</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for grpc-go</span></code><br/><code><span leaf="">  - log4j (Java)</span></code><br/><code><span leaf="">    Version: 2.23.1</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for log4j</span></code><br/><code><span leaf="">  - fastjson (Java)</span></code><br/><code><span leaf="">    Version: 1.2.83</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for fastjson</span></code><br/><code><span leaf="">  - mysql-connector-java (Java)</span></code><br/><code><span leaf="">    Version: 8.3.0</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for mysql-connector-java</span></code><br/><code><span leaf="">  - postgresql (Java)</span></code><br/><code><span leaf="">    Version: 42.7.4</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for postgresql</span></code><br/><code><span leaf="">  - commons-collections (Java)</span></code><br/><code><span leaf="">    Version: 3.2.2</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for commons-collections</span></code><br/><code><span leaf="">  - commons-beanutils (Java)</span></code><br/><code><span leaf="">    Version: 1.9.4</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for commons-beanutils</span></code><br/><code><span leaf="">  - rome (Java)</span></code><br/><code><span leaf="">    Version: 1.18.0</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for rome</span></code><br/><code><span leaf="">  - groovy (Java)</span></code><br/><code><span leaf="">    Version: 4.0.18</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for groovy</span></code><br/><code><span leaf="">  - spring (Java)</span></code><br/><code><span leaf="">    Version: 5.3.31</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for spring</span></code><br/><code><span leaf="">  - hibernate (Java)</span></code><br/><code><span leaf="">    Version: 5.6.15.Final</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for hibernate</span></code><br/><code><span leaf="">  - javassist (Java)</span></code><br/><code><span leaf="">    Version: 3.29.2-GA</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for javassist</span></code><br/><code><span leaf="">  - c3p0 (Java)</span></code><br/><code><span leaf="">    Version: 0.9.5.5</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for c3p0</span></code><br/><code><span leaf="">  - commons-io (Java)</span></code><br/><code><span leaf="">    Version: 2.15.1</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for commons-io</span></code><br/><code><span leaf="">  - commons-lang (Java)</span></code><br/><code><span leaf="">    Version: 3.14.0</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for commons-lang</span></code><br/><code><span leaf="">  - httpclient (Java)</span></code><br/><code><span leaf="">    Version: 4.5.14</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for httpclient</span></code><br/><code><span leaf="">  - jackson (Java)</span></code><br/><code><span leaf="">    Version: 2.17.1</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for jackson</span></code><br/><code><span leaf="">  - junit (Java)</span></code><br/><code><span leaf="">    Version: 4.13.2</span></code><br/><code><span leaf="">    Evidence: FrameRule matched for junit</span></code><br/><code><span leaf=""><br/></span></code><br/><code><span leaf="">Generated: Wed, 11 Feb 2026 11:05:55 CST</span></code><br/></pre></p><h2 tabindex="-1" dir="auto" style="box-sizing: border-box;margin-top: 24px;margin-bottom: 16px;font-size: 1.5em;font-weight: 600;line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);padding-bottom: 0.3em;" data-pm-slice="0 0 []"><span leaf="">项目地址</span></h2><pre style="box-sizing: border-box;font-family: &#34;Monaspace Neon&#34;, ui-monospace, SFMono-Regular, &#34;SF Mono&#34;, Menlo, Consolas, &#34;Liberation Mono&#34;, monospace;font-size: 13.6px;margin-top: 0px;margin-bottom: 0px;tab-size: 4;overflow-wrap: normal;padding: 16px;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px;line-height: 1.45;overflow: auto;word-break: normal;min-height: 52px;"><span leaf=""><a href="https://github.com/winezer0/xcanvas" target="_blank">https://github.com/winezer0/xcanvas</a></span></pre><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="2 10 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;dir&#34;:&#34;auto&#34;,&#34;style&#34;:&#34;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, \&#34;Segoe UI\&#34;, \&#34;Noto Sans\&#34;, Helvetica, Arial, sans-serif, \&#34;Apple Color Emoji\&#34;, \&#34;Segoe UI 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: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;strong&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;-webkit-tap-highlight-color: transparent;outline: 0px;font-family: \&#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;background-color: rgb(255, 255, 255);visibility: visible;&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#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-pm-slice&#34;:&#34;0 0 []&#34;,&#34;style&#34;:&#34;-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" style="-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;line-height: 1.5em;&#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;-webkit-tap-highlight-color: transparent;outline: 0px;font-family: \&#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;background-color: rgb(255, 255, 255);visibility: visible;&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#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-pm-slice&#34;:&#34;0 0 []&#34;,&#34;style&#34;:&#34;-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;&#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-pm-slice&#34;:&#34;0 0 []&#34;,&#34;style&#34;:&#34;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">本项目 </span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;pre&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;box-sizing: border-box; font-family: \&#34;Monaspace Neon\&#34;, ui-monospace, SFMono-Regular, \&#34;SF Mono\&#34;, Menlo, Consolas, \&#34;Liberation Mono\&#34;, monospace; font-size: 13.6px; margin-top: 0px; margin-bottom: 0px; tab-size: 4; overflow-wrap: normal; padding: 16px; color: rgb(31, 35, 40); background-color: rgb(246, 248, 250); border-radius: 6px; line-height: 1.45; overflow: auto; word-break: normal; min-height: 52px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">xcanvas </span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;line-height: 1.5em;&#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;-webkit-tap-highlight-color: transparent;outline: 0px;font-family: \&#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;background-color: rgb(255, 255, 255);visibility: visible;&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#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-pm-slice&#34;:&#34;0 0 []&#34;,&#34;style&#34;:&#34;-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;&#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-pm-slice&#34;:&#34;0 0 []&#34;,&#34;style&#34;:&#34;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">是 XSASTGO 的 项目信息基础依赖部分，主要用于分析代码的组件和框架信息，并提供给相关审计工具进行使用。</span></span></strong></strong></p><p dir="auto" style="box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, &#34;Noto Sans&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI 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: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="2 10 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;dir&#34;:&#34;auto&#34;,&#34;style&#34;:&#34;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, \&#34;Segoe UI\&#34;, \&#34;Noto Sans\&#34;, Helvetica, Arial, sans-serif, \&#34;Apple Color Emoji\&#34;, \&#34;Segoe UI 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: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;strong&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;-webkit-tap-highlight-color: transparent;outline: 0px;font-family: \&#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;background-color: rgb(255, 255, 255);visibility: visible;&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#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-pm-slice&#34;:&#34;0 0 []&#34;,&#34;style&#34;:&#34;-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" style="-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;line-height: 1.5em;&#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;-webkit-tap-highlight-color: transparent;outline: 0px;font-family: \&#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;background-color: rgb(255, 255, 255);visibility: visible;&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#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-pm-slice&#34;:&#34;0 0 []&#34;,&#34;style&#34;:&#34;-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;&#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-pm-slice&#34;:&#34;0 0 []&#34;,&#34;style&#34;:&#34;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">如果您对</span><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;dir&#34;:&#34;auto&#34;,&#34;style&#34;:&#34;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, \&#34;Segoe UI\&#34;, \&#34;Noto Sans\&#34;, Helvetica, Arial, sans-serif, \&#34;Apple Color Emoji\&#34;, \&#34;Segoe UI 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: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;},&#34;node&#34;,{&#34;tagName&#34;:&#34;strong&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;-webkit-tap-highlight-color: transparent;outline: 0px;font-family: \&#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;background-color: rgb(255, 255, 255);visibility: visible;&#34;,&#34;data-pm-slice&#34;:&#34;0 0 []&#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-pm-slice&#34;:&#34;0 0 []&#34;,&#34;style&#34;:&#34;-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;&#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-pm-slice&#34;:&#34;0 0 []&#34;,&#34;style&#34;:&#34;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">XSASTGO感兴趣可以访问</span><span style="font-size: 14px;"><em><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf=""><a class="normal_text_link" target="_blank" style="" href="https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490782&amp;idx=1&amp;sn=843526022d9b889fceb97ba69a1d11ff&amp;scene=21#wechat_redirect" textvalue="XSASTGO 代码审计工具更新" data-itemshowtype="0" linktype="text" data-linktype="2">XSASTGO 代码审计工具更新</a></span></span></strong></strong></em></span></span></strong></strong></span></strong></strong></p><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100% 100%;text-align: left;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=2d404a2d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjklAO9ezM6ymrNndsrPn9lZ3FyFiaibib5n6nicPsotVIIILEARU4QSNMTA%2F640%3Fwx_fmt%3Dpng&#34;);margin-bottom: 0px;"><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 4%;background-size: 100%;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=767f4cec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjSZevnnVaheZ2lF9BFRIxBhhT2I64n8ZWKyRZcP7OUBUFlpyzLbwHibQ%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="258" style="vertical-align: middle;width: 100%;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007001" src="https://wechat2rss.xlab.app/img-proxy/?k=38982032&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">NOVASEC</span></p></div></div></div></div></div></div></div></div></div></div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);" data-remoteid="c1752114746949"><div style="margin-bottom: unset;"><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="430" style="vertical-align: middle;width: 100%;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007002" src="https://wechat2rss.xlab.app/img-proxy/?k=b1271a8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">WINEZER0</span></p></div></div></div></div></div></div></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=00db9324&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490825%26idx%3D1%26sn%3D9125b6d4cb9743dda88a69cd3f91b97d">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>【工具】PrivacyCheckGo：完善规则引擎</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490827&amp;idx=1&amp;sn=d3ac9dce30f13f5391c8b1587a14f63b</link>
      <description>PrivacyCheckGo：完善正则引擎</description>
      <content:encoded><![CDATA[<p>原创 <span>酒零</span> <span>2026-02-27 00:00</span> <span style="display: inline-block;">湖南</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=c52d4e11&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FfL1TQ0l0Qw0OyvImTNB7YlYY4o8wfgia4xiaSkAX44eWlP5Isny56FR6rDNMliaHXMe2bNCrykKWTVo1jkqKMOvmU1C8VYNoibQxc7rprnHcxmc%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>PrivacyCheckGo：完善正则引擎</p>
  <p style="margin-bottom: 0px;"><span leaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100006977" data-ratio="0.6198757763975156" data-s="300,640" style="color: rgb(51, 51, 51);font-size: 14px;letter-spacing: 1.5px;text-align: center;" data-type="png" data-w="805" src="https://wechat2rss.xlab.app/img-proxy/?k=8c8b80b1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjuJtkhP7vxlCDuQbSnofqkMWgjtQCZqKTrdm330DH5kk8NgibIR3cNQQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p style="margin-bottom: 0px;text-align: left;letter-spacing: 1.5px;line-height: 1.75em;"><strong style="font-size: 20px;letter-spacing: 1.5px;"><span style="font-family: 宋体;"><span leaf="">0x00 前言</span></span></strong></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><p style="line-height: 1.5em;letter-spacing: 1.5px;"><strong><span leaf="">免责声明：继续阅读文章视为您已同意[</span></strong><strong><span leaf=""><a class="normal_text_link" target="_blank" style="font-size: 16px;font-family: 宋体;" href="http://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247489726&amp;idx=1&amp;sn=e5459d91f53caf90e76c6558dc8b4ac9&amp;chksm=fad4c5a9cda34cbf0d02c24383827a906e7d08d5694d452a0cc18988f130abab371735ee1843&amp;scene=21#wechat_redirect" textvalue="NOVASEC免责声明" data-itemshowtype="0" linktype="text" data-linktype="2">NOVASEC免责声明</a></span></strong><strong><span leaf="">].</span></strong></p></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><p style="line-height: 1.5em;"><span style="font-size: 14px;"><em><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="">注：本文属于</span><span leaf="" style="color: rgb(51, 51, 51);text-align: left;letter-spacing: 1.5px;line-height: 1.5em;font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;">推荐系列文章，所推荐内容均为外部优质项目，并非由本团队开源实现。文章旨在分享各类优质项目，提升其关注度与影响力，文中观点仅代表作者个人看法。若您有更合适的替代项</span><span leaf="">目，欢迎在留言区推荐分享，共同推荐优质项目资源。</span></span></strong></strong></em></span></p><p><span leaf="" style="color: rgb(51, 51, 51);text-align: left;letter-spacing: 1.5px;line-height: 1.5em;font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span textstyle="" style="font-size: 16px;font-style: normal;">PrivacyCheckGo是之前开源的一个敏感信息检测工具，目标是快速检查出文件中的敏感信息，并希望能够完全兼容HAE规则格式。</span></span></p><p><span leaf="" style="color: rgb(51, 51, 51);text-align: left;letter-spacing: 1.5px;line-height: 1.5em;font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">历史文章<a class="normal_text_link" target="_blank" style="" href="https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490753&amp;idx=1&amp;sn=fafc0a0132a63e84e3e47c80b423dfac&amp;scene=21#wechat_redirect" textvalue="【工具】PrivacyCheckGo：轻量级敏感信息检测工具" data-itemshowtype="0" linktype="text" data-linktype="2">【工具】PrivacyCheckGo：轻量级敏感信息检测工具</a></span></p><p><span leaf="" style="color: rgb(51, 51, 51);text-align: left;letter-spacing: 1.5px;line-height: 1.5em;font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="font-size: 16px;font-style: normal;">由于Go中对Java的一些正则规则不支持，导致部分规则会验证不通过，仔细搜寻发现也没有完美的方案解决规则兼容性的问题。</span></span></p></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><p style="text-align: center;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.17370892018779344" data-s="300,640" data-type="png" data-w="852" type="block" data-imgfileid="100007154" src="https://wechat2rss.xlab.app/img-proxy/?k=67dafb82&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FfL1TQ0l0Qw04x13ltyEhmtYa92jr2lkXoGmksazRk0XeWBZRXZ55cFwickgp5R9HQBxU3QAfjNFoWy0ueaj5XAsEazl53icxeZuE08erHn3UE%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></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="nginx"><code><span leaf=""><span class="code-snippet__attribute">error</span> regexp: invalid or unsupported Perl syntax: (?!</span></code></pre></p><p><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" style="color: rgb(51, 51, 51);text-align: left;letter-spacing: 1.5px;line-height: 1.5em;font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span textstyle="" style="font-size: 16px;font-style: normal;">Regexp2引擎 是一个功能丰富的 Go 常规 Exp 引擎。它不像内置包那样有恒定时间保证，但允许回溯，并且兼容 Perl5 和 .NET</span></span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]" style="color: rgb(51, 51, 51);text-align: left;letter-spacing: 1.5px;line-height: 1.5em;font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span textstyle="" style="font-size: 16px;font-style: normal;">。</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=""><span class="code-snippet__attr">https</span>:<span class="code-snippet__comment">//github.com/dlclark/regexp2</span></span></code><br/><code><span leaf="">基于.<span class="code-snippet__property">NET</span>引擎的纯<span class="code-snippet__title">Go</span>正则表达式的完整引擎</span></code><br/></pre></p><p><span leaf="" style="color: rgb(51, 51, 51);text-align: left;letter-spacing: 1.5px;line-height: 1.5em;font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span textstyle="" style="font-size: 16px;font-style: normal;">最后的解决方案：使用Go内置RE引擎和Go第三方</span></span><span leaf="" style="color: rgb(51, 51, 51);text-align: left;letter-spacing: 1.5px;line-height: 1.5em;font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span textstyle="" style="font-size: 16px;font-style: normal;">regexp2</span></span><span leaf="" style="color: rgb(51, 51, 51);text-align: left;letter-spacing: 1.5px;line-height: 1.5em;font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span textstyle="" style="font-size: 16px;font-style: normal;">引擎实现多引擎功能，从而能够支持全部的GO语言正则规则和大部分的.Net Java语言正则规则。再添加规则测试样例代码和测试报告机制，让用户能够快速发现错误的规则，并进行修复。</span></span></p><p><span leaf="" style="color: rgb(51, 51, 51);text-align: left;letter-spacing: 1.5px;line-height: 1.5em;font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span textstyle="" style="font-size: 16px;font-weight: bold;font-style: normal;">更新记录：</span></span></p><p style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><span leaf="" style="color: rgb(51, 51, 51);text-align: left;letter-spacing: 1.5px;line-height: 1.5em;font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;p&#34;,&#34;attributes&#34;:{&#34;style&#34;:&#34;margin-bottom: 0px; color: rgb(51, 51, 51); line-height: 1.5em; text-align: left; letter-spacing: 1.5px;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="font-size: 16px;font-style: normal;">规则引擎增强：为所有规则添加 engine 字段，支持指定正则引擎</span></span></p></div><p style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><span leaf="" style="color: rgb(51, 51, 51);text-align: left;letter-spacing: 1.5px;line-height: 1.5em;font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span textstyle="" style="font-size: 16px;font-style: normal;">规则测试模式：新增 --test 参数，支持运行规则测试并生成测试报告</span></span></p><p style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><span leaf="" style="color: rgb(51, 51, 51);text-align: left;letter-spacing: 1.5px;line-height: 1.5em;font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span textstyle="" style="font-size: 16px;font-style: normal;">SampleCode 支持：为规则添加 sample_code 字段，支持规则自测试</span></span></p><p style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><span leaf="" style="color: rgb(51, 51, 51);text-align: left;letter-spacing: 1.5px;line-height: 1.5em;font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span textstyle="" style="font-size: 16px;font-weight: bold;font-style: normal;">项目地址:</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=""><span class="code-snippet__attr">https</span>:<span class="code-snippet__comment">//github.com/winezer0/PrivacyCheckGo</span></span></code></pre></p><p><span leaf="" style="color: rgb(51, 51, 51);text-align: left;letter-spacing: 1.5px;line-height: 1.5em;font-style: italic;font-family: &#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;background-color: rgb(255, 255, 255);font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]"><span textstyle="" style="font-size: 16px;font-weight: bold;font-style: italic;">如果您有其他更好的解决方案，欢迎您联系我</span></span></p><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100% 100%;text-align: left;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=2d404a2d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjklAO9ezM6ymrNndsrPn9lZ3FyFiaibib5n6nicPsotVIIILEARU4QSNMTA%2F640%3Fwx_fmt%3Dpng&#34;);margin-bottom: 0px;"><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 4%;background-size: 100%;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=767f4cec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjSZevnnVaheZ2lF9BFRIxBhhT2I64n8ZWKyRZcP7OUBUFlpyzLbwHibQ%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="258" style="vertical-align: middle;width: 100%;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007001" src="https://wechat2rss.xlab.app/img-proxy/?k=38982032&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">NOVASEC</span></p></div></div></div></div></div></div></div></div></div></div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);" data-remoteid="c1752114746949"><div style="margin-bottom: unset;"><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="430" style="vertical-align: middle;width: 100%;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007002" src="https://wechat2rss.xlab.app/img-proxy/?k=b1271a8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">WINEZER0</span></p></div></div></div></div></div></div></div></div></div></div></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>


<p><a href="%27%27">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=a62483bc&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490827%26idx%3D1%26sn%3Dd3ac9dce30f13f5391c8b1587a14f63b">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 27 Feb 2026 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>NOVASEC给大家拜年了!!!</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490823&amp;idx=1&amp;sn=dd4d1de6d33ff4b2265d500a17de3f78</link>
      <description>NOVASEC给大家拜年了!!!</description>
      <content:encoded><![CDATA[<p>原创 <span>NOVASEC</span> <span>2026-02-18 00:01</span> <span style="display: inline-block;">广东</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=a616d374&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FfL1TQ0l0Qw2D37d1wcWAWicAic5oUNnR5yCIrXpfoTyAicGiaHf6phgMLuw2hDaAxaw9kYfq3a8Qn1lJczLUibQYUpbY0S5pdIT3NUUZ1AXapicr8%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>NOVASEC给大家拜年了!!!</p>
  <p style="text-align: center;" nodeleaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100007174" data-ratio="1.3333333333333333" data-s="300,640" type="block" data-type="png" data-w="1773" src="https://wechat2rss.xlab.app/img-proxy/?k=b62a7bc1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FfL1TQ0l0Qw1lt84zXmvGPfMXmvXmIxwBCZ9qdT5OYRUnPPV4UWwlMnq8jXq8PqY4U1AbyQWNzALLw0icZtfEAPE5tTicnpyiaUwyHwLJSdVrzU%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>


<p><a href="%27%27">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=6c10a7d2&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490823%26idx%3D1%26sn%3Ddd4d1de6d33ff4b2265d500a17de3f78">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Wed, 18 Feb 2026 00:01:00 +0800</pubDate>
    </item>
    <item>
      <title>NOVASEC团队祝大家2026新春快乐!!!</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490820&amp;idx=1&amp;sn=40cdf66d8e9070e8f88d104577bae6ec</link>
      <description>祝大家2026新春快乐!!!</description>
      <content:encoded><![CDATA[<p>原创 <span>NOVASEC</span> <span>2026-02-17 00:00</span> <span style="display: inline-block;">广东</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=b9421127&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FfL1TQ0l0Qw0nnQ1ellNQX0HZm3ZymfrLicUfPRybNfsoOeCgHvgKnwUHPQK7Smj43o6r6wzuG3vZmXygWypqmia5Fd5vCNwz9DpEib0SbAzYibU%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>祝大家2026新春快乐!!!</p>
  <p style="text-align: center;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1.3129629629629629" data-s="300,640" data-type="png" data-w="1080" type="block" data-imgfileid="100007162" src="https://wechat2rss.xlab.app/img-proxy/?k=af282844&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FfL1TQ0l0Qw34H7iaG3Uu0OKJSZxvZRib9iaGnCyRwjd23AHr0O2hBvFjpzuq4800Xvsg4Te9C5j16V77krJcpPIaswkHZlCiboqGsQrvEs7rAKA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>


<p><a href="%27%27">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=a6e4140b&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490820%26idx%3D1%26sn%3D40cdf66d8e9070e8f88d104577bae6ec">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Tue, 17 Feb 2026 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>NOVASEC团队祝大家2026除夕快乐!!!</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490819&amp;idx=1&amp;sn=19d42fb197cfd719f66cb47a852fca17</link>
      <description>NOVASEC团队祝大家2026除夕快乐!!!</description>
      <content:encoded><![CDATA[<p>原创 <span>酒零</span> <span>2026-02-16 00:00</span> <span style="display: inline-block;">广东</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=a8eee7e9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FfL1TQ0l0Qw2HhpYG44h4ZQ84teJia9qwKicyWwwuA7AWh6SEurrHibYe1kHtwiad7ia9016TKQvOpdlPln9R4PRwMXBP1bQ0v1aJDpqnodRuqydM%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>NOVASEC团队祝大家2026除夕快乐!!!</p>
  <p style="text-align: center;" nodeleaf=""><img class="rich_pages wxw-img" data-aistatus="1" data-imgfileid="100007157" data-ratio="1.3333333333333333" data-s="300,640" type="block" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=8f5eaf8b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FfL1TQ0l0Qw05p5hVBeEo35oDafqAsQhWsMW7dtV9m8n0LCe4TMOBgGCjFVwmwbMhaibnC0uOibicIFetAGWR1q3d0MzzCdv5t03OxP44J67ibibA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>


<p><a href="%27%27">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=01658f6e&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490819%26idx%3D1%26sn%3D19d42fb197cfd719f66cb47a852fca17">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 16 Feb 2026 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>【开源】XSAST-Python：AI代码审计工具</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490796&amp;idx=1&amp;sn=e4d4012ea559547857e52b3bd0455886</link>
      <description>XSAST-Python 开源地址</description>
      <content:encoded><![CDATA[<p>原创 <span>酒零</span> <span>2026-02-11 20:01</span> <span style="display: inline-block;">广东</span></p>






  
  <p><img src="https://wechat2rss.xlab.app/img-proxy/?k=2a484ab0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FfL1TQ0l0Qw3tnc1CjHSXqGC8JobLFmHJibGnt4gj8jphtKoprlyzaB3Qu0GFJfDiaFauHvmDoztxskQyDibDHs7cSMnFhyNJgLGh2f1Ckp4pib4%2F0%3Fwx_fmt%3Djpeg"/></p>
  <p>XSAST-Python 开源地址</p>
  <p style="margin-bottom: 0px;"><span leaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="0.6198757763975156" data-s="300,640" data-type="png" data-w="805" style="color: rgb(51, 51, 51);font-size: 14px;letter-spacing: 1.5px;text-align: center;" data-imgfileid="100006977" src="https://wechat2rss.xlab.app/img-proxy/?k=8c8b80b1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjuJtkhP7vxlCDuQbSnofqkMWgjtQCZqKTrdm330DH5kk8NgibIR3cNQQ%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></span></p><p style="margin-bottom: 0px;text-align: left;letter-spacing: 1.5px;line-height: 1.75em;"><strong style="font-size: 20px;letter-spacing: 1.5px;"><span style="font-family: 宋体;"><span leaf="">0x00 前言</span></span></strong></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;"><p style="line-height: 1.5em;letter-spacing: 1.5px;"><strong><span leaf="">免责声明：继续阅读文章视为您已同意[</span></strong><strong><span leaf=""><a class="normal_text_link" target="_blank" style="font-size: 16px;font-family: 宋体;" href="http://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247489726&amp;idx=1&amp;sn=e5459d91f53caf90e76c6558dc8b4ac9&amp;chksm=fad4c5a9cda34cbf0d02c24383827a906e7d08d5694d452a0cc18988f130abab371735ee1843&amp;scene=21#wechat_redirect" textvalue="NOVASEC免责声明" data-itemshowtype="0" linktype="text" data-linktype="2">NOVASEC免责声明</a></span></strong><strong><span leaf="">].</span></strong></p></div><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 6 []"><p style="line-height: 1.5em;"><span style="font-size: 14px;"><em><strong style="-webkit-tap-highlight-color: transparent;outline: 0px;font-family: &#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;background-color: rgb(255, 255, 255);visibility: visible;" data-pm-slice="0 0 []"><strong data-pm-slice="0 0 []" style="-webkit-tap-highlight-color: transparent;outline: 0px;visibility: visible;"><span data-pm-slice="0 0 []" style="font-size: 14px;-webkit-tap-highlight-color: transparent;outline: 0px;font-weight: 400;visibility: visible;display: inline !important;"><span leaf="">注：本文属于推荐系列文章，所推荐内容均为外部优质项目，并非由本团队开源实现。文章旨在分享各类优质项目，提升其关注度与影响力，文中观点仅代表作者个人看法。若您有更合适的替代项目，欢迎在留言区推荐分享，共同推荐优质项目资源。</span></span></strong></strong></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;color: rgb(51, 51, 51);font-family: &#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;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 1.5px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.5em;visibility: visible;" data-pm-slice="0 0 []"><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;visibility: visible;">X-SAST</span><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#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;line-height: 1.5em;letter-spacing: 1.5px;&#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;visibility: visible;"> 是当前公开的第一款基于规则的多语言GUI代码审计工具。</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;color: rgb(51, 51, 51);font-family: &#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;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 1.5px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.5em;visibility: visible;" data-pm-slice="0 0 []"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#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;line-height: 1.5em;letter-spacing: 1.5px;&#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;visibility: visible;">具体功能信息可以查看历史文章: </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;color: rgb(51, 51, 51);font-family: &#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;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 1.5px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.5em;visibility: visible;"><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;visibility: visible;"><a class="normal_text_link" target="_blank" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;color: rgb(87, 107, 149);text-decoration: none;-webkit-user-drag: none;cursor: default;max-width: 100%;visibility: visible;box-sizing: border-box !important;overflow-wrap: break-word !important;" href="https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&amp;mid=2247490643&amp;idx=1&amp;sn=566ea3c57a2de9d817768f179a6312af&amp;scene=21#wechat_redirect" textvalue="X-SAST 轻量、快速、多语言、代码审计工具" data-itemshowtype="0" linktype="text" data-linktype="2">X-SAST 轻量、快速、多语言、代码审计工具</a></span></p><div data-autoskip="1" style="margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;" data-pm-slice="3 3 []"><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;color: rgb(51, 51, 51);font-family: &#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;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 1.5px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.5em;visibility: visible;"><span leaf="">鉴于当前XSASTGO已完善发布。</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;color: rgb(51, 51, 51);font-family: &#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;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 1.5px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.5em;visibility: visible;"><span leaf="">因此按照约定将 X-SAST 全部开源</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;color: rgb(51, 51, 51);font-family: &#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;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 1.5px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.5em;visibility: visible;"><span leaf="" data-pm-slice="1 1 [&#34;para&#34;,{&#34;tagName&#34;:&#34;section&#34;,&#34;attributes&#34;:{&#34;data-autoskip&#34;:&#34;1&#34;,&#34;style&#34;:&#34;margin-bottom: 0px;color: rgb(51, 51, 51);line-height: 1.5em;text-align: left;letter-spacing: 1.5px;&#34;,&#34;data-pm-slice&#34;:&#34;3 6 []&#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;-webkit-tap-highlight-color: 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;color: rgb(51, 51, 51);font-family: \&#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;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 1.5px;orphans: 2;text-align: left;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.5em;visibility: visible;&#34;},&#34;namespaceURI&#34;:&#34;http://www.w3.org/1999/xhtml&#34;}]">X-SAST</span><span leaf="">能够满足日常渗透测试场景下的快速代码审计。</span></p></div><p style="line-height: 1.5em;"><span leaf=""><span textstyle="" style="font-weight: bold;">开源地址</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=""><span class="code-snippet__attr">https</span>:<span class="code-snippet__comment">//github.com/winezer0/XSAST-Python</span></span></code></pre></p></div><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100% 100%;text-align: left;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=2d404a2d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjklAO9ezM6ymrNndsrPn9lZ3FyFiaibib5n6nicPsotVIIILEARU4QSNMTA%2F640%3Fwx_fmt%3Dpng&#34;);margin-bottom: 0px;"><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 4%;background-size: 100%;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=767f4cec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjSZevnnVaheZ2lF9BFRIxBhhT2I64n8ZWKyRZcP7OUBUFlpyzLbwHibQ%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);"><div><div style="margin-bottom: unset;"><div><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="258" style="vertical-align: middle;width: 100%;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007001" src="https://wechat2rss.xlab.app/img-proxy/?k=38982032&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukTBkZDVyuJ2K8UM07dDyQxKM0XEyUgJ0pgl3BlrFLntreOnoe3uTwaw%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">NOVASEC</span></p></div></div></div></div></div></div></div></div></div></div><div style="margin-bottom: unset;"><div style="background-repeat: no-repeat;background-position: 0% 0%;background-size: 100%;padding-top: 30px;background-image: url(&#34;https://wechat2rss.xlab.app/img-proxy/?k=fc162d27&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FtoroKEibicmZABNHic6I2k8vayq06GiaN0PjCWzBhuo76pX35rLuoMceGXUt9JMTmQibPWGwBNrUpX6QqrricW9LMueg%2F640%3Fwx_fmt%3Dpng&#34;);" data-remoteid="c1752114746949"><div style="margin-bottom: unset;"><div style="justify-content: flex-start;display: flex;flex-flow: row;"><div style="display: inline-block;width: 100%;vertical-align: top;align-self: flex-start;flex: 0 0 auto;"><div style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><div style="display: inline-block;width: 42%;vertical-align: top;flex: 0 0 auto;height: auto;border-style: solid;border-width: 0px 2px;border-color: rgb(62, 62, 62) rgb(169, 207, 245);align-self: flex-start;"><div style="display: flex;flex-flow: row;justify-content: center;"><div style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;align-self: center;height: auto;"><div style="margin-bottom: 10px;line-height: 0;"><p style="vertical-align: middle;display: inline-block;line-height: 0;" nodeleaf=""><img data-aistatus="1" class="rich_pages wxw-img" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="430" style="vertical-align: middle;width: 100%;" data-croporisrc="https://mmbiz.qpic.cn/mmbiz_jpg/toroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ/0?wx_fmt=jpeg" data-cropselx2="192" data-cropsely2="192" data-imgfileid="100007002" src="https://wechat2rss.xlab.app/img-proxy/?k=b1271a8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FtoroKEibicmZD7m4f7uBkNfCG8BjypNEukN0Ht6Ha0XsryrmS5PAmaVeyzb3JzsH5ibx6DmpHq9e8agwMkccrwNSQ%2F640%3Fwx_fmt%3Djpeg"/></p></div></div></div></div></div><div><div style="margin-top: 10px;margin-bottom: 10px;"><div style="text-align: center;color: rgb(255, 255, 255);letter-spacing: 1px;line-height: 26px;font-size: 15px;"><p><span leaf="">WINEZER0</span></p></div></div></div></div></div></div></div></div></div></div></div></div><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>


<p><a href="%27%27">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=965fb716&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzODU3ODA0MA%3D%3D%26mid%3D2247490796%26idx%3D1%26sn%3De4d4012ea559547857e52b3bd0455886">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Wed, 11 Feb 2026 20:01:00 +0800</pubDate>
    </item>
  </channel>
</rss>