<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>宁宁就要0721！</title><description>透明质酸钠的Blog</description><link>https://blog.00910721.xyz/</link><templateTheme>Firefly</templateTheme><templateThemeVersion>6.15.5</templateThemeVersion><templateThemeUrl>https://github.com/CuteLeaf/Firefly</templateThemeUrl><lastBuildDate>2026年8月3日 16:35:37</lastBuildDate><item><title>我们的xp相同吗？</title><link>https://blog.00910721.xyz/posts/xp-test/</link><guid isPermaLink="true">https://blog.00910721.xyz/posts/xp-test/</guid><description>正苦于找不到相同xp的人，来试试吧是不是同一xp。</description><pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate><content:encoded>本文已加密保护，请访问网站查看。</content:encoded></item><item><title>CoCo五周年活动（CCDC26）解密攻略</title><link>https://blog.00910721.xyz/posts/codemao/ccdc/26/readme/</link><guid isPermaLink="true">https://blog.00910721.xyz/posts/codemao/ccdc/26/readme/</guid><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;本文章为lizzzhh/CCDC2026仓库README文件的副本，想要了解更多关于本文的内容，请到以下仓库&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;a href=&quot;https://github.com/lizzzhh/CCDC2026&quot; target=&quot;_blank&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;lizzzhh&lt;/div&gt;&lt;/div&gt;&lt;div&gt;/&lt;/div&gt;&lt;div&gt;CCDC2026&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Waiting for api.github.com...&lt;/div&gt;&lt;div&gt;&lt;div&gt;00K&lt;/div&gt;&lt;div&gt;0K&lt;/div&gt;&lt;div&gt;0K&lt;/div&gt;&lt;span&gt;Waiting...&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;
&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;了解更多关于CoCo和CCDC的信息，请前往&lt;a href=&quot;https://codemao-guide.yuque.com/bfiekm/sbo5kh/ccdc&quot; target=&quot;_blank&quot;&gt;CoCo手册-&amp;gt;CCDC文档&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;section&gt;&lt;h1&gt;CCDC 2026 - WA整理&lt;a href=&quot;#ccdc-2026---wa整理&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;做题时间：2026/7/22 13:00 ~ 2026/7/23 07:33&lt;/p&gt;&lt;p&gt;本次CCDC没有严格的关卡设定，本文大致根据【探索者笔记】进行分割&lt;/p&gt;&lt;p&gt;已经将所有材料一起打包在本仓库中。&lt;/p&gt;&lt;p&gt;本目录下是当时解题的工作目录&lt;/p&gt;&lt;p&gt;&lt;code&gt;source&lt;/code&gt;目录是存档的请求&lt;/p&gt;&lt;section&gt;&lt;h2&gt;0100 ？&lt;a href=&quot;#0100-&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;blockquote&gt;&lt;p&gt;风云突变，风暴袭来。你未曾料到会遭如此变故。远处，模糊的轮廓，似是一个海岛。可它并不愿直接向你开放。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;首先，本活动在语雀&lt;code&gt;https://codemao-guide.yuque.com/bfiekm/sbo5kh/qnfoc6w4a0m76ek9&lt;/code&gt;报名。文本如下&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;🎬 CCDC 26（CoCo 五周年）&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;CCDC 26 活动火热进行中！本次活动中，你将扮演一名远行的航海者，探索未知的奥秘。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;你一时兴起想要远航，备好了帆船开始乘风破浪。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;【开始航行】&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;https://lab.cocotais.cn/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;【航道开放时间】&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;2026-07-22 13:00:00 至 2026-07-28 23:59:59&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;【探险宝藏】&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;成功解密者，瓜分54.11元奖金&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;（倒过来是 1145 哈哈）&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;【注意事项】&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;一、本次活动参与前需要报名，请填写https://cocotais.feishu.cn/share/base/form/shrcnqdYaMQR2P7JQBXZw1qzDk3。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;二、本次活动期间，不同单位间严禁传递答案或解密过程。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;三、如多个个人共同参赛，请以团队身份报名参赛。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;根据文本，我们来到 &lt;code&gt;https://lab.cocotais.cn/&lt;/code&gt;&lt;/p&gt;&lt;p&gt;此时，直接点击&lt;code&gt;【我要登陆】&lt;/code&gt;会跳转到一个编程猫社区作品，但会因为编程猫社区的安全更新而跳转走。我们需要直接查询API来获取作品信息。&lt;/p&gt;&lt;p&gt;在网页源代码中找到&lt;code&gt;workId&lt;/code&gt;为&lt;code&gt;323405197&lt;/code&gt;，通过常用的编程猫API拼接得到以下URL&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;https://api-creation.codemao.cn/coconut/web/work/323405197/load?channel=1&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;访问后，可以得到作品BCMC文件的URL为&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;https://creation.bcmcdn.com/716/appcraft/JSON_kusSXzx9bW_1784693503773.json&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;访问这个URL，我们得到了编译后的作品文件&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;0101 在作品文件中提取信息&lt;a href=&quot;#0101-在作品文件中提取信息&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;blockquote&gt;&lt;p&gt;你登上了海岛。四周荒芜，阴云遮天。一觉醒来，天已转晴，可你迷失了回家的方向。探索中，一个留声机吸引了你的目光。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;源文件已存储在source目录下&lt;/p&gt;&lt;p&gt;以下是一些从文件中提取的线索&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Cocotais Lab.svg url：&lt;a href=&quot;https://creation.bcmcdn.com/716/appcraft/IMAGE_XIsrPyJL-_1784638277532.svg&quot; target=&quot;_blank&quot;&gt;https://creation.bcmcdn.com/716/appcraft/IMAGE_XIsrPyJL-_1784638277532.svg&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Storyteller [ORIGINAL].mp3 url：&lt;a href=&quot;https://creation.bcmcdn.com/716/appcraft/SOUND_9t9RDYQoc_1784634662133.mp3&quot; target=&quot;_blank&quot;&gt;https://creation.bcmcdn.com/716/appcraft/SOUND_9t9RDYQoc_1784634662133.mp3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;我们查看Cocotais Lab.svg，并在这个SVG源文件的注释中找到&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&amp;lt;!-- bilibili opus --&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&amp;lt;!-- 1080885759100059699 --&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;根据提示，拼接url得到：&lt;code&gt;https://www.bilibili.com/opus/1080885759100059699&lt;/code&gt;&lt;/p&gt;&lt;p&gt;在其评论区，找到了评论&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;凝视中，你在杂散的意识里恍惚看到了什么。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;code&gt;3761254A8CD9BFE0&lt;/code&gt;
&lt;code&gt;cdn?c??o???s.?n 492a0e8ae8056a16ff425797ba4273b7.png&lt;/code&gt;&lt;/p&gt;&lt;p&gt;顺着以上线索的指引，和lab.cocotais.cn的提示，我们将&lt;code&gt;cdn?c??o???s.?n 492a0e8ae8056a16ff425797ba4273b7.png&lt;/code&gt;补全成以下url&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;https://cdn.cocotais.cn/492a0e8ae8056a16ff425797ba4273b7.png&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;下载得到以下图片&lt;/p&gt;&lt;p&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;800&quot; src=&quot;/_astro/492a0e8ae8056a16ff425797ba4273b7.KrrZu3mg_Z2sIjdE.webp&quot; /&gt;&lt;/p&gt;&lt;p&gt;我们可以隐约的看出这是一个DM码，对他重新拼接，可以得到:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;拼接结果&quot; loading=&quot;lazy&quot; width=&quot;606&quot; height=&quot;606&quot; src=&quot;/_astro/PixPin_2026-07-22_14-01-14.COJ7sfJ__Zwxuwr.webp&quot; /&gt;&lt;figcaption&gt;拼接结果&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;（拼接使用了split.py进行拼图，这个脚本本来只是用来裁剪的其实）&lt;/p&gt;&lt;p&gt;（正常的做出此题，应该使用&lt;code&gt;3761254A8CD9BFE0&lt;/code&gt;的顺序进行拼图，但是其实手动拼也能拼出来）&lt;/p&gt;&lt;p&gt;扫码得到以下url&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;https://cocotais.cn/prophecy&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;0102 找不同&lt;a href=&quot;#0102-找不同&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;blockquote&gt;&lt;p&gt;人影浮现。「抉择就在眼前，结局早已注定。」&lt;/p&gt;&lt;p&gt;【倾听】倾听与众不同的，§ꮏөгұꮏєłłєг的故事。&lt;/p&gt;&lt;p&gt;【讲述】你没有选择。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;点击第二行，下载到一个音频文件&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;https://cdn.cocotais.cn/§ꮏөгұꮏєłłєг [ⱮΘĐƗ₣ƗΣĐ].mp3&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;使用vbindiff工具，比较&lt;code&gt;§ꮏөгұꮏєłłєг [ⱮΘĐƗ₣ƗΣĐ].mp3&lt;/code&gt;和&lt;code&gt;Storyteller [ORIGINAL].mp3&lt;/code&gt;的不同。最终，从文件的差异部分，可以拼接成以下url&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;https://lab.cocotais.cn/2026/storytel.ler&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;下载得到&lt;code&gt;storytel.ler&lt;/code&gt;&lt;/p&gt;&lt;p&gt;（其实这个url后面还有用，暂且不表）&lt;/p&gt;&lt;p&gt;&lt;em&gt;在这里，你是否忘记了什么&lt;/em&gt;&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;0201 storytel.ler&lt;a href=&quot;#0201-storyteller&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;对&lt;code&gt;storytel.ler&lt;/code&gt;进行binwalk分析，结果如下&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;❯ binwalk &apos;/mnt/c/Data/CCDC2026/storytel.ler&apos;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;DECIMAL       HEXADECIMAL     DESCRIPTION&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;--------------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;0             0x0             PNG image, 400 x 400, 8-bit/color RGBA, non-interlaced&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;5425          0x1531          Zip archive data, at least v2.0 to extract, name: storytel.ler-unzipped/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;5477          0x1565          Zip archive data, encrypted at least v2.0 to extract, compressed size: 2486796, uncompressed size: 2486784, name: storytel.ler-unzipped/IDEA FILTER.exe&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;2492340       0x2607B4        Zip archive data, encrypted at least v2.0 to extract, compressed size: 513283, uncompressed size: 513271, name: storytel.ler-unzipped/RECREATION.png&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;3006030       0x2DDE4E        End of Zip archive, footer length: 22&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;首先，修改后缀为PNG，得到一个二维码，扫码得到线索
&lt;code&gt;REVERSE&lt;/code&gt;&lt;/p&gt;&lt;section&gt;&lt;h3&gt;注意，以下做题过程是错误的，正确路径应该会更简单&lt;a href=&quot;#注意以下做题过程是错误的正确路径应该会更简单&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;binwalk -e&lt;/code&gt;提取zip文件&lt;/p&gt;&lt;p&gt;注意到文件使用了不安全的&lt;code&gt;ZipCrypto&lt;/code&gt;算法，加上文件中包含一个文件头确定的exe文件。
遂使用&lt;code&gt;bkcrack&lt;/code&gt;进行明文攻击&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;bkcrack -C ..\storytel.e.zip -c &lt;/span&gt;&lt;span&gt;&quot;storytel.ler-unzipped/IDEA FILTER.exe&quot;&lt;/span&gt;&lt;span&gt; -x &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt; 4d5a90000300000004000000ffff0000&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;很快就可以得到内部密钥，并且对zip进行解密&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;X:\CCDC2026\bkcrack-1.8.1-win64&amp;gt;bkcrack -C ..\storytel.e.zip -c &lt;/span&gt;&lt;span&gt;&quot;storytel.ler-unzipped/IDEA FILTER.exe&quot;&lt;/span&gt;&lt;span&gt; -x &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt; 4d5a90000300000004000000ffff0000&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;bkcrack 1.8.1 - 2025-10-25&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;[15:04:04] Z reduction using &lt;/span&gt;&lt;span&gt;9&lt;/span&gt;&lt;span&gt; bytes of known plaintext&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;100.0 % (9 / 9)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;[15:04:04] Attack on &lt;/span&gt;&lt;span&gt;749350&lt;/span&gt;&lt;span&gt; Z values &lt;/span&gt;&lt;span&gt;at&lt;/span&gt;&lt;span&gt; index &lt;/span&gt;&lt;span&gt;6&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Keys: da34e2e8 ad3021e2 75147a58&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;48.2 % (361150 / 749350)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Found a solution. Stopping.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;You may resume the attack with the option: --continue-attack &lt;/span&gt;&lt;span&gt;361150&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;[15:07:48] Keys&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;da34e2e8 ad3021e2 75147a58&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;X:\CCDC2026\bkcrack-1.8.1-win64&amp;gt;bkcrack -C ..\storytel.e.zip  -D ..\storytel.d.zip --keys da34e2e8 ad3021e2 75147a58&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;解压&lt;code&gt;storytel.d.zip&lt;/code&gt;得到两个文件&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;IDEA FILTER.exe&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;RECREATION.png&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;正确做法&lt;a href=&quot;#正确做法&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;还记得&lt;code&gt;https://lab.cocotais.cn/2026/storytel.ler&lt;/code&gt;吗？之前访问的时候，他的headers中有一句&lt;code&gt;Prophecy-Set-Header: encounter=anonymous&lt;/code&gt;。&lt;/p&gt;&lt;p&gt;向&lt;code&gt;https://cocotais.cn/prophecy&lt;/code&gt;发送请求，并且在headers中，将&lt;code&gt;encounter&lt;/code&gt;设置成&lt;code&gt;anonymous&lt;/code&gt;。&lt;/p&gt;&lt;p&gt;在html中即可获得密码&lt;code&gt;ehsvnty92tqb8&lt;/code&gt;和&lt;code&gt;2435712&lt;/code&gt;（空格的数量）&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;0202 IDEA FILTER.exe&lt;a href=&quot;#0202-idea-filterexe&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section&gt;&lt;h3&gt;错误做法（也很正确）&lt;a href=&quot;#错误做法也很正确&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;以下做法依然怀疑存在错误的流程。。没事，反正结果是好的&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;我们一不小心掏出了一个IDA&lt;/p&gt;&lt;p&gt;使用IDA64反编译此文件，发现这是个go语言编写的native程序，我们找到main_main函数，开始分析。我们重点分析以下语句：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;ida&quot; loading=&quot;lazy&quot; width=&quot;1789&quot; height=&quot;1027&quot; src=&quot;/_astro/ida.Bs-UK_-Y_Z7uI3O.webp&quot; /&gt;&lt;figcaption&gt;ida&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;v1 &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;(_QWORD &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;)(os_Args &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;24&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; ( v1 &lt;/span&gt;&lt;span&gt;!=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;7&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;||&lt;/span&gt;&lt;span&gt; (((&lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; __int64)&lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;)(&lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;(_QWORD &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;)(os_Args &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;16&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;3&lt;/span&gt;&lt;span&gt;LL&lt;/span&gt;&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;32&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;|&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;**&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;**&lt;/span&gt;&lt;span&gt;)(os_Args &lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;16&lt;/span&gt;&lt;span&gt;)) &lt;/span&gt;&lt;span&gt;!=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;0x&lt;/span&gt;&lt;span&gt;3231373535333432&lt;/span&gt;&lt;span&gt;LL&lt;/span&gt;&lt;/span&gt;&lt;span&gt; )&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; ( v1 &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;23&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; __int8)&lt;/span&gt;&lt;span&gt;runtime_memequal&lt;/span&gt;&lt;span&gt;() )&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;fmt_Fprintln&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;os_Exit&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;goto&lt;/span&gt;&lt;span&gt; LABEL_14;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;我们可以借助LLM等工具帮助我们分析，以下是分析结果&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;os_Args 是 os.Args 底层字符串数组的指针。在 64 位下，每个 string 占 16 字节（8 字节数据指针 + 8 字节长度）。&lt;/p&gt;&lt;p&gt;os_Args + 0：os.Args[0].ptr&lt;/p&gt;&lt;p&gt;os_Args + 8：os.Args[0].len&lt;/p&gt;&lt;p&gt;os_Args + 16：os.Args[1].ptr&lt;/p&gt;&lt;p&gt;os_Args + 24：os.Args[1].len&lt;/p&gt;&lt;p&gt;因此 v1 = len(os.Args[1])，获取第 1 个命令行参数的长度。&lt;/p&gt;&lt;p&gt;检查 len(os.Args[1]) == 7，且通过拼接字符串前 4 字节与偏移 3 处 4 字节的方式，得到一个 64 位无符号整数，与 0x3231373535333432 比较。&lt;/p&gt;&lt;p&gt;拼接逻辑：&lt;/p&gt;&lt;p&gt;**(unsigned int **)(os_Args + 16) 读取 os.Args[1] 数据的前 4 字节作为低 32 位。&lt;/p&gt;&lt;p&gt;_(unsigned int _)(ptr + 3) 读取偏移 3 处的 4 字节作为高 32 位。&lt;/p&gt;&lt;p&gt;该常数按小端字节序对应字符串 “2435712”。因此条件为：os.Args[1] 恰好等于 “2435712”。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;因此，我们向参数1传入&lt;code&gt;2435712&lt;/code&gt;&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;X:\&lt;/span&gt;&lt;span&gt;CCDC2026&lt;/span&gt;&lt;span&gt;\storytel.&lt;/span&gt;&lt;span&gt;ler&lt;/span&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt;unzipped&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&quot;IDEA FILTER.exe&quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;2435712&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;惊醒。视线清晰，你发现天已转晴。一片纸出现在你身边&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;程序在目录创建了key.txt，内容如下&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;秘密与路途被摆上天平，摇晃之间价码已被定下。讲述人已离去，前路未知而富有吸引力。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;这是给勇敢者的奖励：&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;https://c3n98.cocotais.cn/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;（纸的背面隐秘处写了一串密文）&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;5539E6426D369936C55E43D88E8C01BC3E1E1B68EB81B510558EB2FBFDC2A34DC4A5A94EBBCF5BD90EC88073BB7AAB512456DE346FBAAC7B5F0E48B2B5067A1F24F991C77FF0030343C48567A52FD6B9&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;正确做法&lt;a href=&quot;#正确做法-1&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;略。上一步空格的数量。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;0203 RECREATION.png 与 ？？？&lt;a href=&quot;#0203-recreationpng-与-&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;你不觉得这个手应该指着点什么东西吗（）&quot; loading=&quot;lazy&quot; width=&quot;506&quot; height=&quot;87&quot; src=&quot;/_astro/%E4%BD%A0%E4%B8%8D%E8%A7%89%E5%BE%97%E8%BF%99%E4%B8%AA%E6%89%8B%E5%BA%94%E8%AF%A5%E6%8C%87%E7%9D%80%E7%82%B9%E4%BB%80%E4%B9%88%E4%B8%9C%E8%A5%BF%E5%90%97%EF%BC%88%EF%BC%89.BFfLQ2QL_fGs7y.webp&quot; /&gt;&lt;figcaption&gt;你不觉得这个手应该指着点什么东西吗（）&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;典型的高度隐藏问题，修改png文件头，把高度改的更高，就可以得到&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;解密的图片&quot; loading=&quot;lazy&quot; width=&quot;409&quot; height=&quot;760&quot; src=&quot;/_astro/recreation%E8%A7%A3%E5%AF%86%E5%90%8E.CROCEEJz_188N1i.webp&quot; /&gt;&lt;figcaption&gt;解密的图片&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;从图片中读出解密的配置&lt;/p&gt;&lt;p&gt;使用Rabbit算法解密，Key为16个1&lt;/p&gt;&lt;p&gt;解密&lt;code&gt;key.txt&lt;/code&gt;中的密文，即可得到以下文本&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;0106040D465755500646445809015453014C583B60617501050309127D6167656265127A716B&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;0204 c3n98.cocotais.cn&lt;a href=&quot;#0204-c3n98cocotaiscn&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;blockquote&gt;&lt;p&gt;你已不知身处何地。只见栅栏层层叠叠。你按照纸上的指引探险，误入了不安全的角落。思索着，你耳畔传来一阵声音： 命运所指的开头，需要由你自行谱写。工具放在了你眼前最明显的位置，不知你能否利用好这个突兀的机会，寻找遭遇过的秘密。疑问不解是正常的，但你已具备了一以贯之的解决的条件，剩下的便是试错了。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;直接访问&lt;code&gt;c3n98.cocotais.cn&lt;/code&gt;，首先我们会注意到证书错误，我们发现证书是自签名的，可以从中提取出如下信息：&lt;/p&gt;&lt;p&gt;生效日期: Jul 21 11:45&amp;lt;14&amp;gt; 2025 GMT
失效日期: Jul 21 19:08&amp;lt;10&amp;gt; 2025 GMT&lt;/p&gt;&lt;p&gt;RSA2048公钥&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;-----BEGIN PUBLIC KEY-----&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAskKu+i8zgNyDOC8OEBlk&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;zjHkn4k+duibtF11DL+WNEF6WQwcG7c+5J9wINjpbM5dTQjKBP4XTwhQJi9oRs8I&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;UQCMFKm0hbDxOJrIFepo7zVFmMti94hJHXgfZ6Luj1ZDuuG+b3xriYKwbYkDu0gG&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;JpzNtVXBRTQZHQ3odYiYJzVKt60jbZKKNeIM/NYt+scI8E3mvvkQXwvVHNMxxCKQ&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;/99kyC1Hj6LVPRX0ccPl4L4aYZRtVIfMWhRpBrQD9Mjj8S1+hkQOwv5CHNK4FGQU&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;RLv7j/MzdyZg7PbBlS94icV6lmqWoJ0uVw2kK0Qea2ibR9PAsqlw0hyetYHkTKWD&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;pwIDAQAB&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;-----END PUBLIC KEY-----&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;并且，我们从Headers中找到了不寻常的东西
&lt;code&gt;decrypt-method-2：xor&lt;/code&gt;
这提示我们，上一步没有完成的解密，可能需要使用异或算法。&lt;/p&gt;&lt;p&gt;我们对上一步没有解密完全的密文使用异或算法解密，密钥为&lt;code&gt;2435712&lt;/code&gt; （就是之前exe中的密码），解得&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;3278qfgb2uqo83fg2yo&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;RSA2048 OUTPUT HEX&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;这提示我们使用RSA2048对&lt;code&gt;3278qfgb2uqo83fg2yo&lt;/code&gt;进行加密&lt;/p&gt;&lt;p&gt;我们使用&lt;code&gt;c3n98.cocotais.cn&lt;/code&gt;的TLS证书中的RSA公钥，对其进行加密（模式为RSAES-PKCS1-V1_5。。这个是出题的问题）
得到&lt;span&gt;&lt;em&gt;flag1&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;611bc26eeacc8135311760fa4b9209b41b07e50788684b453e30510e9044176861d2bbb3d7a6d201edbf08966dce74d92c0b517899a46115f80a014df7bb928444eb4d15d8a7e0cf5eabf46cffa6e139f7a768b7974f985d8940881cc4c43b8e9b41a0dce220064dbe2cb247f361405fee03f75a02d235db54ad1fcbb1ba668c1fd7f53270e6d2b99abfdd8c183d6e8d28af2551f2b38be0c002ec8ae3b40306c28fb6089321b9d05ec26883f02bf12eacee1467cebefe980c8e278c2260ad6a6a01e9751ddf2847061e1b4fcc913c58f4df89b446afda32012a1257d42bf78059f505381ec77f0b03037e7896776be3e8eac3a8114727dbeecee596638460a5&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;p&gt;前辈们说，无论发生了什么改变，有些东西是不会变的。&lt;/p&gt;&lt;p&gt;有什么出现了呢…又有什么可以不变呢…?&lt;/p&gt;&lt;p&gt;逆向思维是我们常常忽略的。反其道而行之，或许会有好的结果。&lt;/p&gt;&lt;p&gt;问题是，利用之后的结果何处存放呢…&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;还记得&lt;code&gt;https://lab.cocotais.cn/2026/storytel.ler&lt;/code&gt;吗？之前访问的时候，他的headers中有一句&lt;code&gt;Prophecy-Set-Header: encounter=anonymous&lt;/code&gt;。我在做题的时候，都没有注意到这一点，因此使用了错误的方法破解Zip加密。&lt;/p&gt;&lt;p&gt;其实，这里让我们设置的Header并没有变。我们需要向&lt;code&gt;https://cocotais.cn/prophecy&lt;/code&gt;发送请求，并且在headers中，将&lt;code&gt;encounter&lt;/code&gt;设置成&lt;a href=&quot;#flag1&quot;&gt;flag1&lt;/a&gt; ！&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;0301 前路何向？所指何方？&lt;a href=&quot;#0301-前路何向所指何方&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;上一步的请求，我们得到了一个页面。从他的源代码中，可以直接得到以下信息&lt;/p&gt;&lt;p&gt;“&lt;a href=&quot;https://github.com/cocotais-lab/studious-doodle&quot; target=&quot;_blank&quot;&gt;https://github.com/cocotais-lab/studious-doodle&lt;/a&gt;”
“2b42cb33ebd414de7520b8802f2154feaf7c84b2”&lt;/p&gt;&lt;p&gt;这把我们引向了一个github commit&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;https://github.com/cocotais-lab/studious-doodle/commit/2b42cb33ebd414de7520b8802f2154feaf7c84b2&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;p&gt;迷雾消散。你意识到讲述者从未离开，TA一直相伴在你身边。人影浮现，TA正对着你，你却看不清TA的面庞。
一阵低语传来：你得到的够多了。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;填写其中指向的飞书表格&lt;code&gt;https://cocotais.feishu.cn/share/base/form/shrcnGZPVwxYL08RocF1FooLYFc&lt;/code&gt;&lt;/p&gt;&lt;p&gt;我们可以收到一封邮件。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;0302 豁然开朗。一扇紧闭着的门出现。「抉择就在眼前，结局早已注定。」&lt;a href=&quot;#0302-豁然开朗一扇紧闭着的门出现抉择就在眼前结局早已注定&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;注意，这个地方非常的坑，因为大部分邮件查看工具可能会吞掉你的空格，所以，必须要下载邮件源文件进行查看。以下是得到的消息&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;INFORMATION BELOW ARE ENCRYPTED&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;GROUP: 748309147&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;STORY: A&apos;ilnecis monIneuennocgessImfnlyo h eevn ieo ifrue  a e orraosadyu lnydmn.  a trigdfst,csy s  ri o&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;查询群号查无此群，根据之前&lt;code&gt;REVERSE&lt;/code&gt;的指示，反向成&lt;code&gt;741903847&lt;/code&gt;找到群聊。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;qun&quot; loading=&quot;lazy&quot; width=&quot;288&quot; height=&quot;195&quot; src=&quot;/_astro/a709923964a5974a58d84e59ad7772a9.B_kmejQj_1MTPKg.webp&quot; /&gt;&lt;figcaption&gt;qun&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;注意群聊中存在一个新线索。&lt;/p&gt;&lt;p&gt;关注STORY，加上&lt;code&gt;你已不知身处何地。只见栅栏层层叠叠&lt;/code&gt;的指示，我们大致能猜测出是栅栏加密。
直接爆破即可，得到解密的明文。&lt;span&gt;&lt;em&gt;（flag2）&lt;/em&gt;&lt;/span&gt;（脚本zhalan.py）&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;As I&apos;m finally on the receiving side of misfortune, I can see your reasons and your clingy demons.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;根据QQ群信息中的线索，查看github仓库的custom-properties，得到&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Encounter y3cbqqoybq2&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;依旧，向&lt;code&gt;https://cocotais.cn/prophecy&lt;/code&gt;发送请求，并且在headers中，将&lt;code&gt;encounter&lt;/code&gt;设置成&lt;code&gt;y3cbqqoybq2&lt;/code&gt;。
得到的页面中，多了以下代码&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;window.location.href = &quot;https://c3n98.cocotais.cn/?story=UNKNOWN&amp;amp;timestamp=&quot; + Date.now()&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;0303 未知的时间，未知的故事。&lt;a href=&quot;#0303-未知的时间未知的故事&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;直接打开上述url是不行的，因为不知道timestamp。
story参数就是&lt;a href=&quot;#flag2&quot;&gt;flag2&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;关于timestamp，解谜中就在&lt;code&gt;c3n98.cocotais.cn&lt;/code&gt;的TLS证书中出现过。我们在这个时间段里面随便选择一个时间，就可以得到可用的时间戳了。&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;https://c3n98.cocotais.cn/?story=As I&apos;m finally on the receiving side of misfortune, I can see your reasons and your clingy demons.&amp;amp;timestamp=1753069524000&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;最终得到以上url。&lt;/p&gt;&lt;p&gt;访问后，我们发现其Headers中多了一项&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;x-yuque-note:754819df-b72d-43ce-b8db-25d7bee81def&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;直接拼接出语雀笔记的url&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;https://www.yuque.com/r/note/754819df-b72d-43ce-b8db-25d7bee81def&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;得到以下信息&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;civilight_eterna.png@cdn&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;your_name@new_host:tenfold_height&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;ENCRYPTED new_host BELOW&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;HAPPYCOCOANNIVERSARYOHH&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;WSAPQJGQBEQBBHGUMNUMHJU&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;0304 Civilight Eterna&lt;a href=&quot;#0304-civilight-eterna&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;blockquote&gt;&lt;p&gt;“��的�■”…?&lt;/p&gt;&lt;p&gt;用�的维■■亚����&lt;/p&gt;&lt;p&gt;是你！讲述者，你看这张��的■��&lt;/p&gt;&lt;p&gt;（记录似乎被人为损坏了）&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;上方信息的第一行，我们根据之前的经验，拼出url，&lt;code&gt;https://cdn.cocotais.cn/civilight_eterna.png&lt;/code&gt;。&lt;/p&gt;&lt;p&gt;tenfold_height指的是10倍的图片高度。也就是32500。&lt;/p&gt;&lt;p&gt;your_name根据【探索者笔记】中的提示已经很明显了，就是storyteller&lt;/p&gt;&lt;p&gt;至于加密的信息，根据Civilight Eterna可以联想到&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;从名字含义（“永恒之光”）联想：维吉尼亚密码 (Vigenère Cipher) 在16世纪被提出时，曾因其强大的加密能力被认为是“不可破解的密码”(le chiffre indéchiffrable)，在当时也被看作一种牢不可破的“永恒”加密法。&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;后注：&lt;code&gt;Civilight Eterna&lt;/code&gt; 应译为 &lt;code&gt;文明的存续&lt;/code&gt;（对应探索者笔记中的 &lt;code&gt;“��的�■”&lt;/code&gt;），仅是对游戏《明日方舟》角色的捏他（neta）。维吉尼亚密码可直接自探索者笔记中 &lt;code&gt;维■■亚&lt;/code&gt; 联想到。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;使用维吉尼亚密码对&lt;code&gt;WSAPQJGQBEQBBHGUMNUMHJU&lt;/code&gt;解密，密钥为&lt;code&gt;HAPPYCOCOANNIVERSARYOHH&lt;/code&gt;，得到&lt;code&gt;PSLASHSONEDOTMCDUNDOTCN&lt;/code&gt;&lt;/p&gt;&lt;p&gt;即PSLASHSONE.MCDUN.CN。但此处，lyx失误了，
&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;lyx的失误.png&quot; loading=&quot;lazy&quot; width=&quot;479&quot; height=&quot;277&quot; src=&quot;/_astro/lyx%E7%9A%84%E5%A4%B1%E8%AF%AF.MjFVLznL_1vLeAU.webp&quot; /&gt;&lt;figcaption&gt;lyx的失误.png&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;…很好，我们拼出了完整的ssh参数！&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;ssh&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-p&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;32500&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-l&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;storyteller&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;p-s1.mcdun.cn&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;但是，还需要密码。&lt;/p&gt;&lt;p&gt;再次检查&lt;code&gt;civilight_eterna.png&lt;/code&gt;，我们发现图片Exif信息中存在&lt;code&gt;license：password=theresa&lt;/code&gt;。&lt;/p&gt;&lt;p&gt;这次，我们可以登录了。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;0305 门打开了。传出了应答声：静候求索者的到来&lt;a href=&quot;#0305-门打开了传出了应答声静候求索者的到来&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;❯&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;ssh&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-p&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;32500&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-l&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;storyteller&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;p-s1.mcdun.cn&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;storyteller@p-s1.mcdun.cn&lt;/span&gt;&lt;span&gt;&apos;s password:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Received disconnect from 198.18.0.7 port 32500:11: prophecy encounter:kazdel&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Disconnected from 198.18.0.7 port 32500&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;我们终于得到了最终的encounter。&lt;/p&gt;&lt;p&gt;和之前一样，传入prophecy。&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&amp;lt;p&amp;gt;门打开了。传出了应答声：静候求索者的到来&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;静候求索者的到来&lt;/p&gt;&lt;p&gt;即为TA的应答，发送QQ入群申请即可。&lt;/p&gt;&lt;p&gt;至此，你已经完成了CCDC 2026。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;</content:encoded></item><item><title>对于CoCo webpack打包的一些研究</title><link>https://blog.00910721.xyz/posts/codemao/%E5%AF%B9%E4%BA%8Ecoco-webpack%E7%9A%84%E4%B8%80%E4%BA%9B%E7%A0%94%E7%A9%B6/</link><guid isPermaLink="true">https://blog.00910721.xyz/posts/codemao/%E5%AF%B9%E4%BA%8Ecoco-webpack%E7%9A%84%E4%B8%80%E4%BA%9B%E7%A0%94%E7%A9%B6/</guid><pubDate>Sun, 13 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h1&gt;简述&lt;a href=&quot;#简述&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;本文通过注入webpack loader的方式，对coco的一些特殊loader进行分析，以供给第三方改造项目。&lt;/p&gt;&lt;p&gt;本文基于coco版本：v1.21.7&lt;/p&gt;&lt;p&gt;main.js hash: 8a4a5649&lt;/p&gt;&lt;p&gt;0.js hash: c6105fac&lt;/p&gt;&lt;section&gt;&lt;h2&gt;1、webpack loader的注入&lt;a href=&quot;#1webpack-loader的注入&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;在控制台运行以下代码&lt;/p&gt;&lt;p&gt;当然，也可以以油猴脚本方式插入&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;hookedCode&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;document&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;getElementById&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;root&quot;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;nextSibling&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;innerText&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;replace&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;function u(t)&quot;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&quot;var u=(...arg)=&amp;gt;(console.log(&apos;loader&apos;,...arg),window.loader(...arg));window.loader=function(t)&quot;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;replace&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&quot;u.e=function(e)&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;&quot;;u.e=function(e)&quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;eval&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;hookedCode&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;原理是修改loader所在的代码，把loader(u)函数赋值到全局&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;2、loader特殊值查找教程&lt;a href=&quot;#2loader特殊值查找教程&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;如我们想找获取coco中变量等配置的获取方法&lt;/p&gt;&lt;p&gt;通过字符串查找，我们很容易找到以下位置的代码&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;/*https://creation.codemao.cn/coconut/web/1.22.0-0/static/js/main.8a4a5649.chunk.js:2,585776*/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;o&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;10&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;6&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;s&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;25&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;c&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;7&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;l&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;31&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;u&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;38&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;d&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;9&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;p&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;26&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;f&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;5&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;h&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;98&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;m&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;374&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;15&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;/*...省略...*/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;16&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;            &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;s&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;c&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;m&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;g&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;b&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;y&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span&gt;C&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;T&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;S&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;I&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;A&lt;/span&gt;&lt;span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;j&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span&gt;N&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;R&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;17&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;            &lt;/span&gt;&lt;span&gt;/*...省略...*/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;18&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;                        &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;u&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;d&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;getState&lt;/span&gt;&lt;span&gt;(),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;19&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;project&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;20&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;title&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;21&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;s&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;globalVariableList&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;22&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;c&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;globalArrayList&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;23&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;m&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;globalWidgetIds&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;24&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;g&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;globalObjectList&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;25&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;version&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;26&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;b&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;projectSource&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;27&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;y&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;===&lt;/span&gt;&lt;span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;common&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;userInfo&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;||&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;===&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;28&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;                        &lt;/span&gt;&lt;span&gt;C&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;w&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;project&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;screens&lt;/span&gt;&lt;span&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;29&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;                        &lt;/span&gt;&lt;span&gt;T&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;project&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;screens&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;map&lt;/span&gt;&lt;span&gt;((&lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;30&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;                            &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;e&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;31&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;32&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;)).&lt;/span&gt;&lt;span&gt;toJSON&lt;/span&gt;&lt;span&gt;(),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;33&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;                        &lt;/span&gt;&lt;span&gt;/*...省略...*/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span&gt;展开&lt;/span&gt;&lt;span&gt;收起&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;通过上面的代码，我们可以发现&lt;code&gt;globalVariableList&lt;/code&gt;等数据可以通过&lt;code&gt;r&lt;/code&gt;这个变量获取，而&lt;code&gt;r&lt;/code&gt;这个变量是&lt;code&gt;u.d.getState()&lt;/code&gt;&lt;/p&gt;&lt;p&gt;从它上面的代码，我们可以看到，&lt;code&gt;u&lt;/code&gt;这个变量通过&lt;code&gt;n(38)&lt;/code&gt;获取，此处的n就是loader函数&lt;/p&gt;&lt;p&gt;于是，&lt;code&gt;globalVariableList&lt;/code&gt;等价于&lt;code&gt;loader(38).d.getState().project.globalVariableList&lt;/code&gt;&lt;/p&gt;&lt;p&gt;事实亦如此，通过控制台验证可以得到&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;Alternative Text&quot; /&gt;&lt;figcaption&gt;Alternative Text&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;3、一些特殊的loader值&lt;a href=&quot;#3一些特殊的loader值&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section&gt;&lt;h3&gt;&lt;code&gt;loader(0)&lt;/code&gt;&lt;a href=&quot;#loader0&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;这个是coco的入口，是个React render函数&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;&lt;code&gt;loader(38).d&lt;/code&gt;&lt;a href=&quot;#loader38d&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;通过这个可以获取到coco内部的Redux store&lt;/p&gt;&lt;p&gt;&lt;code&gt;project&lt;/code&gt;中可以获取大量完整的项目信息&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;&lt;code&gt;loader(35).Db(控件type)&lt;/code&gt;&lt;a href=&quot;#loader35db控件type&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;返回控件的经过coco处理的type（内有控件实体，但是没有原始的type）&lt;/p&gt;&lt;p&gt;如&lt;code&gt;loader(35).Db(&quot;TEXT_WIDGET&quot;)&lt;/code&gt;这样使用&lt;/p&gt;&lt;p&gt;对于来自商城拓展控件，只有添加到舞台后才能使用&lt;/p&gt;&lt;p&gt;对于自定义控件，可以直接获取&lt;/p&gt;&lt;p&gt;其获取到的结构如图&lt;/p&gt;&lt;p&gt;&lt;img alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;&lt;code&gt;loader(35).K()&lt;/code&gt;&lt;a href=&quot;#loader35k&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;返回所有控件的经过coco处理的type&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;&lt;code&gt;loader(42)&lt;/code&gt;&lt;a href=&quot;#loader42&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;section&gt;&lt;h4&gt;&lt;code&gt;g&lt;/code&gt;&lt;a href=&quot;#g&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;当前屏幕下（也可能是作品）的所有控件的Map&lt;/p&gt;&lt;p&gt;格式为 控件id：控件data&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h4&gt;&lt;code&gt;f&lt;/code&gt;&lt;a href=&quot;#f&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;渲染控件的函数，需要传入渲染的参数（详细看代码）&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;&lt;code&gt;loader(98)&lt;/code&gt;&lt;a href=&quot;#loader98&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;一个关于自定义、拓展控件的Map&lt;/p&gt;&lt;section&gt;&lt;h4&gt;&lt;code&gt;d&lt;/code&gt;&lt;a href=&quot;#d&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;返回当前作品中所有的拓展（商城）控件的id、type和cdnUrl&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h4&gt;&lt;code&gt;e&lt;/code&gt;&lt;a href=&quot;#e&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;返回当前作品中所有的自定义（商城）控件的type和code&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;&lt;code&gt;f&lt;/code&gt;&lt;a href=&quot;#f-1&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;传入type，根据type查询详细信息，可以找寻到控件的原始types&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;4、一些注意点&lt;a href=&quot;#4一些注意点&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;上文中给的那段例子的代码很有用，可以根据他找到很多loader值&lt;/li&gt;
&lt;li&gt;如果coco更新的话，loader值可能失效&lt;/li&gt;
&lt;li&gt;失效的话没关系，根据以前的关键词重新找就是了，也可以保存以前的 &lt;code&gt;document.getElementById(&quot;root&quot;).nextSibling.innerText&lt;/code&gt; 替换掉新的&lt;/li&gt;
&lt;li&gt;多试验，这个文档过于简略了&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;&lt;/section&gt;</content:encoded></item></channel></rss>