<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Lkaros的小世界呀]]></title><description><![CDATA[哈喽~欢迎光临]]></description><link>https://lkaros.xin</link><image><url>https://lkaros.xin/favicon.ico</url><title>Lkaros的小世界呀</title><link>https://lkaros.xin</link></image><generator>Shiro (https://github.com/Innei/Shiro)</generator><lastBuildDate>Mon, 14 Sep 2026 13:41:31 GMT</lastBuildDate><atom:link href="https://lkaros.xin/feed" rel="self" type="application/rss+xml"/><pubDate>Mon, 14 Sep 2026 13:41:31 GMT</pubDate><language><![CDATA[zh-CN]]></language><item><title><![CDATA[主流 AI 图片与视频生成模型版本时间线（更新至 2026-08-28）]]></title><description><![CDATA[<div><blockquote>该渲染由 Shiro API 生成，可能存在排版问题，最佳体验请前往：<a href="https://lkaros.xin/posts/default/ai-image-video">https://lkaros.xin/posts/default/ai-image-video</a></blockquote><div><blockquote><p><strong>更新时间：2026-08-28（Asia/Shanghai）</strong><br/><strong>范围：</strong> 主流基础生成模型及有代表性的开源/专业产品线。日期优先采用官方“正式发布或公开可用”时间；仅有 Preview、Early Access、API 上线或已经下线的，会单独标注。<br/><strong>信源顺序：</strong> 官方发布页/文档 → 官方模型卡或 GitHub → 官方 X。没有可靠日期时不采用第三方传闻。</p></blockquote>
<hr/><h2 id="1-">1. 最新版本速查</h2><h3 id="11-">1.1 图片模型</h3><table><thead><tr><th>厂商</th><th>产品线</th><th style="text-align:right">截至 2026-08-28 的最新版本</th><th style="text-align:right">发布时间</th><th>当前状态</th></tr></thead><tbody><tr><td>OpenAI</td><td>GPT-Image</td><td style="text-align:right"><strong>GPT-Image-2 / ChatGPT Images 2.0</strong></td><td style="text-align:right">2026-04-21</td><td>正式可用，当前默认 API 图片模型</td></tr><tr><td>字节跳动</td><td>Seedream</td><td style="text-align:right"><strong>Seedream 5.0 Pro</strong></td><td style="text-align:right">2026-07-08</td><td>正式可用</td></tr><tr><td>阿里巴巴</td><td>Qwen-Image</td><td style="text-align:right"><strong>Qwen-Image 3.0 Pro</strong></td><td style="text-align:right">2026-07-20 区域上线；2026-08-06 全球上线</td><td>正式可用；另有 3.0 Standard</td></tr><tr><td>阿里巴巴</td><td>Wan Image</td><td style="text-align:right"><strong>Wan 2.7 Image Pro</strong></td><td style="text-align:right">2026-04-01</td><td>正式可用</td></tr><tr><td>Google</td><td>Gemini Image / Nano Banana</td><td style="text-align:right"><strong>Nano Banana 2</strong>；最新低成本变体为 <strong>Nano Banana 2 Lite</strong></td><td style="text-align:right">2026-02-26；Lite 2026-06-30</td><td>正式可用</td></tr><tr><td>Google</td><td>Imagen</td><td style="text-align:right"><strong>Imagen 4</strong></td><td style="text-align:right">2025-05-20</td><td>正式可用；与 Nano Banana 是并行产品线</td></tr><tr><td>Midjourney</td><td>Image</td><td style="text-align:right"><strong>V8.2</strong></td><td style="text-align:right">2026-07-24</td><td>当前默认版本</td></tr><tr><td>Black Forest Labs</td><td>FLUX Image</td><td style="text-align:right"><strong>FLUX.2 Max</strong>（质量）/ <strong>FLUX.2 Klein</strong>（速度、本地）</td><td style="text-align:right">2025-12-16 / 2026-01-15</td><td>正式可用；FLUX 3 Image 仍属 Early Access 路线</td></tr><tr><td>xAI</td><td>Grok Imagine</td><td style="text-align:right"><strong>Imagine Image 2.0</strong></td><td style="text-align:right">2026-08-07</td><td>正式可用，API ID：<code>grok-imagine-image-2.0</code></td></tr><tr><td>Meta</td><td>Muse Image</td><td style="text-align:right"><strong>Muse Image</strong></td><td style="text-align:right">2026-07-07</td><td>已在 Meta AI 等产品上线</td></tr><tr><td>快手</td><td>Kling Image</td><td style="text-align:right"><strong>Kling Image 3.0 / 3.0 Omni</strong></td><td style="text-align:right">2026-02-05</td><td>正式可用</td></tr><tr><td>Adobe</td><td>Firefly Image</td><td style="text-align:right"><strong>Firefly Image Model 5</strong></td><td style="text-align:right">2025-10-28 Public Beta；2026-03-19 GA</td><td>正式可用</td></tr><tr><td>Luma</td><td>UNI</td><td style="text-align:right"><strong>UNI-1.1</strong></td><td style="text-align:right">2026-05-05</td><td>正式可用</td></tr><tr><td>Runway</td><td>Gen Image</td><td style="text-align:right"><strong>Gen-4 Image Turbo</strong></td><td style="text-align:right">2025-08-19</td><td>Runway 自研图片主线；标准版 2025-05-16</td></tr><tr><td>腾讯</td><td>HunyuanImage</td><td style="text-align:right"><strong>HunyuanImage 3.0 Instruct / Distil</strong></td><td style="text-align:right">2026-01-26</td><td>开放权重；基础 3.0 于 2025-09-28 开源</td></tr><tr><td>Ideogram</td><td>Ideogram</td><td style="text-align:right"><strong>Ideogram 4.0</strong></td><td style="text-align:right">2026-06-03</td><td>开放权重，可商用许可</td></tr><tr><td>Recraft</td><td>Recraft</td><td style="text-align:right"><strong>Recraft V4.1</strong></td><td style="text-align:right">2026-05-14</td><td>正式可用，含 Pro/Utility 等变体</td></tr><tr><td>Krea</td><td>Krea Image</td><td style="text-align:right"><strong>Krea 2 Large / Medium / Turbo</strong></td><td style="text-align:right">2026-05-12；Turbo 2026-06-03</td><td>正式可用，部分开放权重</td></tr><tr><td>Stability AI</td><td>Stable Diffusion</td><td style="text-align:right"><strong>Stable Diffusion 3.5</strong></td><td style="text-align:right">2024-10-22 起</td><td>仍是编号主线，2026 年未发布 SD4</td></tr></tbody></table><h3 id="12-">1.2 视频模型</h3><table><thead><tr><th>厂商</th><th>产品线</th><th style="text-align:right">截至 2026-08-28 的最新版本</th><th style="text-align:right">发布时间</th><th>当前状态</th></tr></thead><tbody><tr><td>Google</td><td>Gemini Omni</td><td style="text-align:right"><strong>Gemini Omni 1.1 Flash</strong></td><td style="text-align:right"><strong>2026-08-27</strong></td><td>最新发布；生成、续写、对话式编辑、4K upscale</td></tr><tr><td>Google</td><td>Veo</td><td style="text-align:right"><strong>Veo 3.1</strong>；低成本版 <strong>Veo 3.1 Lite</strong></td><td style="text-align:right">2025-10-15；Lite 2026-03-31</td><td>正式可用；截至当前没有官方 Veo 4</td></tr><tr><td>字节跳动</td><td>Seedance</td><td style="text-align:right"><strong>Seedance 2.5</strong></td><td style="text-align:right">2026-07-31</td><td>正式可用，最长单次 30 秒音视频</td></tr><tr><td>阿里巴巴</td><td>Wan Video</td><td style="text-align:right"><strong>Wan 3.0 Video / Video Prime</strong></td><td style="text-align:right">2026-08-06；Prime 2026-08-20</td><td>正式可用；Prime 是优速版</td></tr><tr><td>快手</td><td>Kling</td><td style="text-align:right"><strong>Kling 3.0 / 3.0 Omni / 3.0 Turbo</strong></td><td style="text-align:right">3.0：2026-02-05；Turbo：2026 Q2</td><td>正式可用，已推出原生 4K 输出</td></tr><tr><td>Black Forest Labs</td><td>FLUX Video</td><td style="text-align:right"><strong>FLUX 3 Video</strong></td><td style="text-align:right">2026-08-04</td><td>GA；2026-08-20 增加独立 2K/4K Upscale</td></tr><tr><td>MiniMax</td><td>MiniMax Video</td><td style="text-align:right"><strong>MiniMax H3</strong></td><td style="text-align:right">2026-07-31；2026-08-03 开源</td><td>正式可用并开放权重；部分平台称 Hailuo 3/03</td></tr><tr><td>Runway</td><td>Gen Video</td><td style="text-align:right"><strong>Gen-4.5</strong></td><td style="text-align:right">2025-12-01；API 2026-02-10</td><td>正式可用；Aleph 2.0 是编辑支线</td></tr><tr><td>Luma</td><td>Ray</td><td style="text-align:right"><strong>Ray 3.2</strong></td><td style="text-align:right">2026-06-09</td><td>正式可用</td></tr><tr><td>xAI</td><td>Grok Imagine</td><td style="text-align:right"><strong>Imagine Video 1.5 with References</strong></td><td style="text-align:right">1.5 GA：2026-06-16；参考模式：2026-07-31</td><td>正式可用，最高原生 1080p</td></tr><tr><td>Midjourney</td><td>Video</td><td style="text-align:right"><strong>Video V1</strong></td><td style="text-align:right">2025-06-18</td><td>当前仍是 V1，以图生视频为主</td></tr><tr><td>PixVerse</td><td>Video</td><td style="text-align:right"><strong>PixVerse V6</strong>；影视支线 <strong>C1</strong></td><td style="text-align:right">V6：2026-03-30；C1：2026-04-07</td><td>正式可用</td></tr><tr><td>Vidu</td><td>ViduQ</td><td style="text-align:right"><strong>ViduQ3 系列</strong></td><td style="text-align:right">2026-02-11 起；参考音视频扩展 2026-04-13</td><td>正式可用，含 Pro/Mix/Drama/Ad/Turbo</td></tr><tr><td>Pika</td><td>Video</td><td style="text-align:right"><strong>Pika 2.5</strong></td><td style="text-align:right">官方网页未标首发日；约 2026-01-26 已全量出现</td><td>当前主力版本</td></tr><tr><td>Adobe</td><td>Firefly Video</td><td style="text-align:right"><strong>Firefly Video Model</strong></td><td style="text-align:right">2024-10 Preview；2025-02-12 Public Beta</td><td>Adobe 未采用公开数字版本号，持续迭代</td></tr><tr><td>腾讯</td><td>HunyuanVideo</td><td style="text-align:right"><strong>HunyuanVideo 1.5</strong></td><td style="text-align:right">2025-11-20/21</td><td>开放代码和权重</td></tr><tr><td>Meta</td><td>Muse Video</td><td style="text-align:right"><strong>Muse Video Preview</strong></td><td style="text-align:right">2026-07-07</td><td>尚未全面公开，官方表述为 coming soon</td></tr><tr><td>OpenAI</td><td>Sora</td><td style="text-align:right"><strong>Sora 2</strong></td><td style="text-align:right">2025-09-30</td><td>历史最新版；Sora 产品于 2026-04-26 停止提供，API 标为 Legacy</td></tr><tr><td>Stability AI</td><td>Stable Video</td><td style="text-align:right"><strong>SV4D 2.0</strong></td><td style="text-align:right">2025-05-20</td><td>面向多视角/4D，不是当前一线通用文生视频产品</td></tr></tbody></table><hr/><h2 id="2-">2. 图片模型版本时间线</h2><h3 id="openaidalle--gpt-image">OpenAI：DALL·E → GPT-Image</h3><pre class="language-text lang-text"><code class="language-text lang-text">DALL·E 3                    2023-10-19
GPT-4o 原生图片生成          2025-03-25
gpt-image-1 API             2025-04-23
GPT-Image-1.5               2025-12-16
GPT-Image-2 / Images 2.0    2026-04-21  ← 当前版本</code></pre><ul><li><code>gpt-image-2</code> 的固定快照为 <code>gpt-image-2-2026-04-21</code>。</li><li>DALL·E 3 和 GPT-Image-1.5 已不是当前主线。</li><li>来源：<a href="https://openai.com/index/introducing-chatgpt-images-2-0/">ChatGPT Images 2.0</a> · <a href="https://developers.openai.com/api/docs/models/gpt-image-2">GPT-Image-2 模型文档</a> · <a href="https://openai.com/index/image-generation-api/">GPT-Image-1 API</a> · <a href="https://openai.com/index/new-chatgpt-images-is-here/">GPT-Image-1.5</a></li></ul><h3 id="seedream">字节跳动：Seedream</h3><pre class="language-text lang-text"><code class="language-text lang-text">Seedream 2.0       2024-12 初
Seedream 3.0       2025-04
SeedEdit 3.0       2025-06-06  （编辑专线）
Seedream 4.0       2025-09-09
Seedream 4.5       2025 年末，官方未给出明确首发日
Seedream 5.0 Lite  2026-02-13
Seedream 5.0 Pro   2026-07-08  ← 当前旗舰</code></pre><ul><li>来源：<a href="https://seed.bytedance.com/en/blog/doubao-text-to-image-technical-report-released-full-disclosure-of-data-processing-pre-training-and-rlhf-workflow">Seedream 2.0</a> · <a href="https://seed.bytedance.com/en/blog/seedream-3-0-text-to-image-model-technical-report-released">Seedream 3.0</a> · <a href="https://seed.bytedance.com/en/blog/seedream-4-0-officially-released-beyond-drawing-into-imagination">Seedream 4.0</a> · <a href="https://seed.bytedance.com/en/seedream4_5">Seedream 4.5</a> · <a href="https://seed.bytedance.com/en/blog/deeper-thinking-more-accurate-generation-introducing-seedream-5-0-lite">5.0 Lite</a> · <a href="https://seed.bytedance.com/en/blog/beyond-generation-it-understands-design-introducing-seedream-5-0-pro">5.0 Pro</a></li></ul><h3 id="qwen-image">阿里巴巴：Qwen-Image</h3><pre class="language-text lang-text"><code class="language-text lang-text">Qwen-Image              2025-08-04 开源；08-14 Model Studio 国际上线
Qwen-Image-Edit         2025-08-18
Qwen-Image Plus / Edit  2025-09 起持续更新
Qwen-Image Max          2025-12-30
Qwen-Image 2.0          2026-02-10 发布；03-03 Model Studio 国际上线
Qwen-Image 2.0 Pro      2026-03-03；04-23 更新；06-25 快照
Qwen-Image 3.0 Pro      2026-07-20 区域 / 2026-08-06 全球
Qwen-Image 3.0 Standard 2026-08-04</code></pre><ul><li>3.0 Pro 偏复杂版式、密集文字和高质量生产；3.0 Standard 偏日常批量生成。</li><li>来源：<a href="https://github.com/QwenLM/Qwen-Image">Qwen-Image GitHub</a> · <a href="https://www.alibabacloud.com/help/en/model-studio/qwen-image-generation-and-editing-api-reference">Qwen-Image 3.0 API</a> · <a href="https://www.alibabacloud.com/help/en/model-studio/newly-released-models">阿里模型生命周期</a></li></ul><h3 id="wan-image">阿里巴巴：Wan Image</h3><pre class="language-text lang-text"><code class="language-text lang-text">Wan 2.1 Image            2025-05-22（Model Studio 国际）
Wan 2.2 Image            2025-07-28
Wan 2.5 Image Preview    2025-09-19 中国 / 09-24 国际
Wan 2.6 Image            2025-12-15
Wan 2.7 Image / Pro      2026-04-01  ← 当前版本</code></pre><ul><li>Wan 2.7 Image Pro 最高支持 4096×4096 文生图，并统一生成与编辑能力。</li><li>来源：<a href="https://github.com/Wan-Video/Wan2.1">Wan 2.1</a> · <a href="https://www.alibabacloud.com/help/en/model-studio/image-model">图片模型文档</a> · <a href="https://www.alibabacloud.com/help/en/model-studio/newly-released-models">发布记录</a></li></ul><h3 id="googleimagen--nano-banana">Google：Imagen 与 Nano Banana</h3><pre class="language-text lang-text"><code class="language-text lang-text">Imagen 3 / Veo 同期发布             2024-05-14
Imagen 4                            2025-05-20

Nano Banana / Gemini 2.5 Flash Image 2025-08
Nano Banana Pro / Gemini 3 Pro Image  2025-11-20
Nano Banana 2 / Gemini 3.1 Flash Image 2026-02-26
Nano Banana 2 Lite                    2026-06-30</code></pre><ul><li>Imagen 和 Nano Banana 是并行产品线，不应把 Imagen 4 直接称作 Nano Banana 的上一代。</li><li>来源：<a href="https://blog.google/innovation-and-ai/products/google-generative-ai-veo-imagen-3/">Imagen 3</a> · <a href="https://blog.google/innovation-and-ai/technology/ai/io-2025-keynote/">Imagen 4</a> · <a href="https://blog.google/innovation-and-ai/technology/ai/nano-banana-2/">Nano Banana 2</a> · <a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-omni-flash-nano-banana-2-lite/">Nano Banana 2 Lite</a> · <a href="https://deepmind.google/models/model-cards/">Google 模型卡目录</a></li></ul><h3 id="midjourney">Midjourney</h3><pre class="language-text lang-text"><code class="language-text lang-text">V6        2023-12-20
V6.1      2024-07-30
V7        2025-04-03
Niji 7    2026-01-09
V8 Alpha  2026-03-17
V8.1      2026-04-14
V8.2      2026-07-24  ← 当前默认</code></pre><ul><li>来源：<a href="https://docs.midjourney.com/hc/en-us/articles/32199405667853-Version">Midjourney Version 文档</a> · <a href="https://updates.midjourney.com/version-8-2/">V8.2 公告</a></li></ul><h3 id="black-forest-labsflux">Black Forest Labs：FLUX</h3><pre class="language-text lang-text"><code class="language-text lang-text">FLUX.1 Pro / Dev / Schnell  2024-08-01
FLUX 1.1 Pro                2024-10
FLUX.1 Kontext              2025-05-29
FLUX.2 Pro / Flex / Dev     2025-11-25
FLUX.2 Max                  2025-12-16  ← 质量旗舰
FLUX.2 Klein                2026-01-15  ← 速度/本地旗舰
FLUX 3 Image                2026-07-23 Early Access，尚非全面 GA</code></pre><ul><li>来源：<a href="https://bfl.ai/blog/24-08-01-bfl">FLUX.1</a> · <a href="https://docs.bfl.ai/release-notes">FLUX.2 Release Notes</a> · <a href="https://bfl.ai/blog/flux2-klein-towards-interactive-visual-intelligence">FLUX.2 Klein</a> · <a href="https://bfl.ai/blog/flux-3">FLUX 3</a></li></ul><h3 id="">其他重要图片模型</h3><table><thead><tr><th>产品线</th><th>主要时间线</th><th>当前结论</th><th>官方来源</th></tr></thead><tbody><tr><td>Adobe Firefly</td><td>Image 4/4 Ultra（2025-04-24）→ Image 5 Beta（2025-10-28）→ Image 5 GA（2026-03-19）</td><td>Image Model 5</td><td><a href="https://blog.adobe.com/en/publish/2026/03/19/adobe-firefly-expands-video-image-creation-with-new-ai-capabilities-custom-models">Adobe</a></td></tr><tr><td>xAI Imagine</td><td>Aurora（2024-12-09）→ Imagine API（2026-01-28）→ Image 2.0（2026-08-07）</td><td>Image 2.0</td><td><a href="https://x.ai/news/grok-imagine-image-2">xAI</a></td></tr><tr><td>Meta Muse</td><td>Muse Image（2026-07-07）</td><td>已上线，带搜索/代码工具和自我修正能力</td><td><a href="https://ai.meta.com/blog/introducing-muse-image-muse-video-msl/">Meta</a></td></tr><tr><td>Kling Image</td><td>Image 3.0 / Omni（2026-02-05）</td><td>Kling 3.0 系列</td><td><a href="https://ir.kuaishou.com/news-releases/news-release-details/kling-ai-launches-30-model-ushering-era-where-everyone-can-be">快手</a></td></tr><tr><td>Runway Image</td><td>Gen-4 Image（2025-05-16）→ Turbo（2025-08-19）</td><td>Gen-4 Image Turbo</td><td><a href="https://docs.dev.runwayml.com/api-details/api_changelog/">Runway API Changelog</a></td></tr><tr><td>Luma UNI</td><td>UNI-1（2026-04）→ UNI-1.1 API（2026-05-05）</td><td>UNI-1.1</td><td><a href="https://lumalabs.ai/news/uni-1-1-api">Luma</a></td></tr><tr><td>HunyuanImage</td><td>3.0 开源（2025-09-28）→ 3.0 Instruct/Distil（2026-01-26）</td><td>3.0 Instruct/Distil</td><td><a href="https://github.com/Tencent-Hunyuan/HunyuanImage-3.0">GitHub</a></td></tr><tr><td>Ideogram</td><td>3.0（2025）→ 4.0（2026-06-03）</td><td>4.0，开放权重</td><td><a href="https://ideogram.ai/news/ideogram-4.0/">Ideogram</a></td></tr><tr><td>Recraft</td><td>V4（2026-02-17）→ V4.1（2026-05-14）</td><td>V4.1</td><td><a href="https://www.recraft.ai/blog/recraft-v4-1-more-beautiful-by-nature">Recraft</a></td></tr><tr><td>Krea</td><td>Krea 2（2026-05-12）→ Krea 2 Turbo（2026-06-03）</td><td>Large/Medium 质量，Turbo 速度</td><td><a href="https://www.krea.ai/blog/krea-2-image-model">Krea 2</a></td></tr><tr><td>Stability AI</td><td>SD3 Preview（2024-02）→ SD3 Medium（2024-06-12）→ SD3.5 Large/Turbo（2024-10-22）</td><td>仍是 SD3.5</td><td><a href="https://stability.ai/news/introducing-stable-diffusion-3-5">Stability AI</a></td></tr></tbody></table><hr/><h2 id="3-">3. 视频模型版本时间线</h2><h3 id="googleveo--gemini-omni">Google：Veo 与 Gemini Omni</h3><pre class="language-text lang-text"><code class="language-text lang-text">Veo                       2024-05-14
Veo 2                     2024-12-16
Veo 3                     2025-05-20
Veo 3.1                   2025-10-15
Veo 3.1 功能更新          2026-01-13
Veo 3.1 Lite              2026-03-31（模型卡 04-08）

Gemini Omni Flash         2026-06-30 API Public Preview
Gemini Omni 1.1 Flash     2026-08-27  ← Google 最新视频发布</code></pre><ul><li><strong>Veo 3.1</strong> 仍是 Google 的专业电影生成模型系列。</li><li><strong>Gemini Omni 1.1 Flash</strong> 是新一代“从任意模态创建/编辑视频”的统一模型，支持视频续写、首尾帧、视频参考、360p 草稿以及 1080p/4K upscale。</li><li>截至 2026-08-28，Google 未正式发布 Veo 4。</li><li>来源：<a href="https://deepmind.google/models/veo/">Veo</a> · <a href="https://blog.google/innovation-and-ai/technology/ai/veo-3-1-lite/">Veo 3.1 Lite</a> · <a href="https://blog.google/innovation-and-ai/technology/developers-tools/build-with-gemini-omni-1-1-flash/">Gemini Omni 1.1 Flash</a> · <a href="https://deepmind.google/models/model-cards/gemini-omni-flash/">Omni 模型卡</a></li></ul><h3 id="seedance">字节跳动：Seedance</h3><pre class="language-text lang-text"><code class="language-text lang-text">Seedance 1.0       2025-06-11
Seedance 1.5 Pro   2025-12-16
Seedance 2.0       2026-02-12
Seedance 2.5       2026-07-31  ← 当前版本</code></pre><ul><li>2.5 支持最长 30 秒单次音视频生成、多轮延长、文本/图片/视频/音频参考以及编辑。</li><li>来源：<a href="https://seed.bytedance.com/blog/tech-report-of-seedance-1-0-is-now-publicly-available">Seedance 1.0</a> · <a href="https://seed.bytedance.com/en/blog/sound-and-vision-all-in-one-take-the-official-release-of-seedance-1-5-pro">1.5 Pro</a> · <a href="https://seed.bytedance.com/en/blog/seedance-2-0-%E6%AD%A3%E5%BC%8F%E5%8F%91%E5%B8%83">2.0</a> · <a href="https://seed.bytedance.com/en/blog/one-take-creation-flexible-referencing-introducing-seedance-2-5">2.5</a></li></ul><h3 id="wan-video">阿里巴巴：Wan Video</h3><pre class="language-text lang-text"><code class="language-text lang-text">Wan 2.1 开源             2025-02-25
Wan 2.2 开源             2025-07-28
Wan 2.5 Preview          2025-09-19 中国 / 09-23 国际
Wan 2.6                  2025-12-03
Wan 2.6 R2V              2025-12-16
Wan 2.7                  2026-04-03
Wan 3.0 Video            2026-08-06
Wan 3.0 Video Prime      2026-08-20  ← 优速版</code></pre><ul><li>Wan 3.0 为 All-in-One 模型，统一文生视频、首帧/首尾帧、全模态参考、视频编辑与延长。</li><li>最大单次 30 秒、30fps、480p/720p/1080p，并可原生生成对白、BGM 和音效。</li><li>来源：<a href="https://github.com/Wan-Video/Wan2.1">Wan 2.1 GitHub</a> · <a href="https://modelstudio.alibabacloud.com/intl/blog/wan3-ai-video-generation-model/">Wan 3.0 发布</a> · <a href="https://www.alibabacloud.com/help/en/model-studio/wan3-video-generation-guide">Wan 3.0 文档</a> · <a href="https://www.alibabacloud.com/help/en/model-studio/newly-released-models">模型生命周期</a></li></ul><h3 id="kling">快手：Kling</h3><pre class="language-text lang-text"><code class="language-text lang-text">Kling 1.0          2024-06-06
Kling 1.5 / 1.6    2024 年末
Kling 2.0          2025-04-15
Kling 2.1          2025-05-29
Kling 2.5          2025-09
Kling 2.6          2025-12-01
Kling O1           2025-12-03
Kling 3.0 / Omni   2026-02-05
Kling 3.0 Turbo    2026 Q2      ← 当前速度版</code></pre><ul><li>2026 Q2，Kling 3.0 系列又上线了原生 4K 视频输出；3.0 Turbo 提升生成效率并降低成本。</li><li>来源：<a href="https://ir.kuaishou.com/news-releases/news-release-details/kuaishou-unveils-comprehensive-ai-models-reshaping-content-and/">Kling 1.0</a> · <a href="https://ir.kuaishou.com/news-releases/news-release-details/kling-ai-launches-30-model-ushering-era-where-everyone-can-be">Kling 3.0</a> · <a href="https://ir.kuaishou.com/news-releases/news-release-details/kuaishou-technology-announces-second-quarter-and-interim-2026">2026 Q2 报告</a></li></ul><h3 id="runway">Runway</h3><pre class="language-text lang-text"><code class="language-text lang-text">Gen-1             2023-02
Gen-2             2023-02 研究发布；2023-06 产品开放
Gen-3 Alpha       2024-06
Gen-4             2025-03-31
Aleph             2025-07-25/08-01（视频编辑支线）
Gen-4.5           2025-12-01；2026-02-10 API
Aleph 2.0         2026（视频编辑支线）</code></pre><ul><li>当前高质量 T2V/I2V 是 <strong>Gen-4.5</strong>；Gen-4 Turbo 偏速度。</li><li>Gen-3 Alpha 于 2026-07-08 下线，Gen-3 Alpha Turbo 于 2026-07-30 下线。</li><li>2026-08-20，Gen-4.5 增加 HDR10、HLG、ProRes、EXR 等专业输出格式，但这属于输出能力升级，不是 Gen-5。</li><li>来源：<a href="https://runwayml.com/research/gen-2">Gen-2</a> · <a href="https://runwayml.com/research/introducing-runway-gen-4">Gen-4</a> · <a href="https://runwayml.com/research/introducing-runway-gen-4.5">Gen-4.5</a> · <a href="https://docs.dev.runwayml.com/api-details/api_changelog/">API Changelog</a></li></ul><h3 id="minimaxhailuo--h3">MiniMax：Hailuo → H3</h3><pre class="language-text lang-text"><code class="language-text lang-text">Video-01 / Hailuo 01    2024-08-31
Hailuo 02               2025-06-18
Hailuo 2.3              2025-10-28
MiniMax H3              2026-07-31
MiniMax H3 开放权重      2026-08-03  ← 当前版本</code></pre><ul><li>MiniMax 官方名称是 <strong>MiniMax H3</strong>。部分平台将它展示为 Hailuo 3.0 或 Hailuo 03，不宜当作另一个独立基础模型。</li><li>H3 支持文本、图片、视频、音频参考，原生立体声音频，4–15 秒输出，最高通过 H3-Regenerate-2K 获得 2K。</li><li>来源：<a href="https://www.minimax.io/news/Video-01">Video-01</a> · <a href="https://www.minimax.io/news/minimax-hailuo-02">Hailuo 02</a> · <a href="https://www.minimax.io/news/minimax-hailuo-23">Hailuo 2.3</a> · <a href="https://www.minimax.io/blog/minimax-h3">H3 发布</a> · <a href="https://www.minimax.io/news/minimax-h3-open-source">H3 开源</a></li></ul><h3 id="lumadream-machine--ray">Luma：Dream Machine / Ray</h3><pre class="language-text lang-text"><code class="language-text lang-text">Dream Machine / Ray 1  2024-06
Ray 2                  2025-01-15
Ray 3                  2025-09-18
Ray 3 Modify           2025-12-18
Ray 3.14               2026-01-26
Ray 3.2                2026-06-09  ← 当前版本</code></pre><ul><li>来源：<a href="https://lumalabs.ai/changelog/introducing-ray2">Ray 2</a> · <a href="https://lumalabs.ai/news/ray3_14">Ray 3.14</a> · <a href="https://lumalabs.ai/news">Luma News</a></li></ul><h3 id="black-forest-labsflux-3-video">Black Forest Labs：FLUX 3 Video</h3><pre class="language-text lang-text"><code class="language-text lang-text">FLUX 3 Early Access      2026-07-23
FLUX 3 Video GA          2026-08-04
FLUX Video Upscale 4K    2026-08-20</code></pre><ul><li>FLUX 3 Video 可由文本或图片生成最长 20 秒视频，提供原生音频、关键帧、续写和多镜头能力。</li><li>FLUX 3 Image、更多参考模态和 FLUX 3 Dev 仍在分阶段发布路线中。</li><li>来源：<a href="https://bfl.ai/blog/flux-3">FLUX 3</a> · <a href="https://bfl.ai/blog/flux-3-video">FLUX 3 Video</a> · <a href="https://bfl.ai/blog">BFL Blog</a></li></ul><h3 id="xaigrok-imagine">xAI：Grok Imagine</h3><pre class="language-text lang-text"><code class="language-text lang-text">Grok Imagine API                 2026-01-28
Video 1.5 Preview               2026-06-03
Video 1.5 GA                    2026-06-16
Video 1.5 with References       2026-07-31  ← 当前版本</code></pre><ul><li>7 月更新后同时支持文生视频、图生视频和参考生视频，加入文字、图片和预设声音参考，并支持原生 1080p。</li><li>来源：<a href="https://x.ai/news/grok-imagine-video-1-5">Video 1.5</a> · <a href="https://docs.x.ai/developers/release-notes">xAI Release Notes</a> · <a href="https://x.ai/news">xAI News</a></li></ul><h3 id="">其他重要视频模型</h3><table><thead><tr><th>产品线</th><th>主要时间线</th><th>当前结论</th><th>官方来源</th></tr></thead><tbody><tr><td>OpenAI Sora</td><td>Sora Preview（2024-02）→ Sora Turbo（2024-12-09）→ Sora 2（2025-09-30）→ 产品停止（2026-04-26）</td><td>Sora 2 是历史最新版，API 为 Legacy</td><td><a href="https://openai.com/index/creating-with-sora-safely/">OpenAI</a> · <a href="https://developers.openai.com/api/docs/models/sora-2">Sora 2 API</a></td></tr><tr><td>Midjourney Video</td><td>Video V1（2025-06-18）</td><td>仍为 V1；5 秒起，可延长</td><td><a href="https://updates.midjourney.com/introducing-our-v1-video-model/">Midjourney</a></td></tr><tr><td>Adobe Firefly Video</td><td>Preview（2024-10）→ Public Beta（2025-02-12）→ 持续更新</td><td>无公开数字版本号</td><td><a href="https://blog.adobe.com/en/publish/2025/02/12/meet-firefly-video-model-ai-powered-creation-with-unparalleled-creative-control">Adobe</a></td></tr><tr><td>Meta</td><td>Movie Gen Research（2024-10-04）→ Muse Video Preview（2026-07-07）</td><td>Muse Video 尚未全面公开</td><td><a href="https://ai.meta.com/blog/introducing-muse-image-muse-video-msl/">Meta</a></td></tr><tr><td>HunyuanVideo</td><td>初代（2024-12-03）→ 1.5（2025-11-20/21）</td><td>1.5 开放权重</td><td><a href="https://github.com/Tencent-Hunyuan/HunyuanVideo-1.5">GitHub</a></td></tr><tr><td>PixVerse</td><td>V5.x（2025）→ R1（2026-01-12）→ V6（2026-03-30）→ C1（2026-04-07）</td><td>通用主线 V6，C1 偏影视生产，R1 偏实时世界模型</td><td><a href="https://pixverse.ai/en/blog/pixverse-launches-v6-advancing-ai-video-generation">V6</a> · <a href="https://docs.platform.pixverse.ai/changelogs-906383m0">Changelog</a></td></tr><tr><td>Vidu</td><td>Vidu 2.0/Q1/Q2 → ViduQ3（2026-02-11 起）→ Q3 多参考音视频（2026-04-13）</td><td>ViduQ3 系列</td><td><a href="https://platform.vidu.com/docs/model-map">Vidu Model Map</a> · <a href="https://platform.vidu.com/docs/update">更新记录</a></td></tr><tr><td>Pika</td><td>1.0（2023）→ 1.5（2024）→ 2.0/2.1/2.2（2024–2025）→ 2.5（约 2026-01-26）</td><td>当前页面和 API 均使用 Pika 2.5</td><td><a href="https://pika.art/">Pika</a> · <a href="https://dev.pika.art/models/pika/pika-2.5/image-to-video">API</a></td></tr><tr><td>Stability AI</td><td>Stable Video Diffusion（2023-11）→ SV4D（2024-07）→ SV4D 2.0（2025-05-20）</td><td>当前重点是多视角和 4D，不是通用有声 T2V</td><td><a href="https://stability.ai/news-updates/stable-video-4d-20-new-upgrades-for-high-fidelity-novel-views-and-4d-generation-from-a-single-video">Stability AI</a></td></tr></tbody></table></div><p style="text-align:right"><a href="https://lkaros.xin/posts/default/ai-image-video#comments">看完了？说点什么呢</a></p></div>]]></description><link>https://lkaros.xin/posts/default/ai-image-video</link><guid isPermaLink="true">https://lkaros.xin/posts/default/ai-image-video</guid><dc:creator><![CDATA[Lkaros]]></dc:creator><pubDate>Fri, 28 Aug 2026 13:41:13 GMT</pubDate></item><item><title><![CDATA[博客更新日志｜2026.08]]></title><description><![CDATA[<div><blockquote>该渲染由 Shiro API 生成，可能存在排版问题，最佳体验请前往：<a href="https://lkaros.xin/notes/5">https://lkaros.xin/notes/5</a></blockquote><div><p>博客又装修了一次 ✨</p><p>这次主要围绕视觉统一、阅读体验和性能做了一轮更新：</p><h3 id="">首页与导航</h3><ul><li>重做首页欢迎区域，加入渐变氛围、快捷入口与方向标签</li><li>新增「值得一读」精选文章卡片</li><li>精简「最近发生的事」，隐藏重复点赞和测试评论</li><li>优化页脚层级与深色模式表现</li></ul><h3 id="">文章阅读</h3><ul><li>文章列表改为双栏渐变卡片</li><li>新增 CTF、逆向、AI、工具分类筛选</li><li>文章标题区加入分类、字数、预计阅读时间和章节统计</li><li>重做代码块顶部工具栏，加入语言标识和复制反馈</li><li>增加文章顶部阅读进度条</li></ul><h3 id="">音乐播放器</h3><ul><li>新增悬浮音乐播放器</li><li>当前收录《离开我的依赖》和《落空》</li><li>支持歌词、音量、切歌、单曲循环与列表循环</li></ul><h3 id="">性能优化</h3><ul><li>针对御网杯 WriteUp 的大量图片和代码块进行优化</li><li>代码块改为滚动到附近时再初始化</li><li>减少首屏 DOM 与绘制压力，长文章滚动更加顺畅</li></ul><p>如果页面仍然显示旧样式，可以尝试 <code>Ctrl + F5</code> 强制刷新。</p><p>感谢每一次访问，博客会继续慢慢完善。🌙</p></div><p style="text-align:right"><a href="https://lkaros.xin/notes/5#comments">看完了？说点什么呢</a></p></div>]]></description><link>https://lkaros.xin/notes/5</link><guid isPermaLink="true">https://lkaros.xin/notes/5</guid><dc:creator><![CDATA[Lkaros]]></dc:creator><pubDate>Mon, 17 Aug 2026 14:57:59 GMT</pubDate></item><item><title><![CDATA[主流 AI 模型版本发布时间线（更新至 2026-09-04）]]></title><description><![CDATA[<div><blockquote>该渲染由 Shiro API 生成，可能存在排版问题，最佳体验请前往：<a href="https://lkaros.xin/posts/default/ai">https://lkaros.xin/posts/default/ai</a></blockquote><div><blockquote><p><strong>核验时间：</strong> 2026-09-04 12:42（北京时间）</p><p><strong>本次复核新增 / 更正：</strong></p><ul><li>OpenAI：2026-09-03 正式发布 <a href="https://developers.openai.com/api/docs/models/gpt-6-astra">GPT-6 Astra</a>，模型 ID 为 <code>gpt-6-astra</code>，支持 1,050,000 Token 上下文和 128,000 Token 最大输出；当前先向 Trusted Access 企业限量滚动开放，API 及 Plus / Pro / Business / Enterprise 将在随后数日扩大可用范围。</li><li>Google：2026-09-02 发布 <a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/3-8-flash-and-3-8-flash-cyber/">Gemini 3.8 Flash / Gemini 3.8 Flash Cyber</a>。3.8 Flash 已面向开发者、企业和订阅用户提供；Cyber 采用同一底层智能但更宽松的网络安全缓解策略，仅通过 Fairwind Program 向可信防守方开放。</li><li>阿里云 / Qwen：2026-09-02 上线 <a href="https://help.aliyun.com/en/model-studio/newly-released-models"><code>qwen3.8-max-0902</code></a>（别名 <code>qwen3.8-max-2026-09-02</code>），它是 Qwen3.8-Max 的升级快照，增强工程级编码、长程自主开发、多工具协作与原生视觉理解，并保留 1M 上下文、思考模式和工具生态。</li><li>蚂蚁 InclusionAI：补充 2026-09-03 开放的 <a href="https://huggingface.co/inclusionAI/Ling-3.0-flash-Fin">Ling-3.0-flash-Fin</a>，这是 Ling 家族首个金融增强模型，124B 总参数、5.1B 激活、256K 上下文，采用 MIT 许可。</li><li>Meta：补回 2026-07-09 发布的 <a href="https://ai.meta.com/blog/introducing-muse-spark-meta-model-api/">Muse Spark 1.1</a>。它是 Meta 当前闭源通用/Agent 模型，支持 1M 上下文、多模态推理、工具与计算机使用；开放权重主线仍为 Llama 4 Scout / Maverick。</li><li>Microsoft：2026-09-03 发布 <a href="https://microsoft.ai/news/mai-transcribe-2-is-the-fastest-most-accurate-and-cheapest-speech-recognition-model-in-the-world/">MAI-Transcribe-2</a>，支持 60 种语言、说话人分离、逐词时间戳、关键词偏置和可配置转写风格；已在 Microsoft Foundry 与 MAI Playground 提供。</li><li>HUMAIN：新增沙特 HUMAIN 的 <a href="https://node.humain.com/">HUMAIN M3</a>；该模型于 2026-09-03 开放限量研究预览，基于 MiniMax-M3，428B 总参数、23B 激活，并使用超过 1T 阿拉伯语 Token 继续训练。</li><li>DeepSeek：再次核对后，文本生产主线仍为 <strong>DeepSeek-V4-Flash-0731 / DeepSeek-V4-Pro-0813</strong>；实验多模态分支为 <strong>DeepSeek-V4-Flash-Vision-Exp</strong>，三项均已保留，未漏项。</li><li>其余重点主线复核：Claude Fable 5.1 / Mythos 5.1、GLM-5.3、Kimi K3、Doubao Seed 2.1、Grok 4.6 等结论不变；截至本次核验未发现官方 Grok 4.7。</li></ul><h2 id="">一、最新版本速览</h2></blockquote>
<table><thead><tr><th>模型家族</th><th>截止核验时间的最新版本</th><th style="text-align:right">发布时间</th><th>当前状态</th><th>需要注意</th></tr></thead><tbody><tr><td>OpenAI GPT</td><td><strong>GPT-6 Astra</strong>；并行高性价比分支 <strong>GPT-5.6 Terra / Luna</strong></td><td style="text-align:right"><strong>2026-09-03</strong></td><td>Astra 限量滚动上线；GPT-5.6 正式可用</td><td><code>gpt-6-astra</code> 为当前公开旗舰，1.05M 上下文、128K 最大输出；先向 Trusted Access 企业开放，API 与 Plus / Pro / Business / Enterprise 正在分批扩展</td></tr><tr><td>OpenAI Cyber</td><td><strong>GPT-6 Astra / GPT-5.6-Cyber / Daybreak Blue / Daybreak Red</strong></td><td style="text-align:right">GPT-5.6-Cyber 与新分层：2026-08-10；Astra：<strong>2026-09-03</strong></td><td>Astra 分阶段上线；专项能力仅限可信访问</td><td>Astra 是 OpenAI 首个达到 Critical 网络安全能力阈值的通用旗舰；Daybreak Blue / Red 与 GPT-5.6-Cyber 继续承担分层网络安全访问</td></tr><tr><td>Anthropic Claude</td><td><strong>Claude Fable 5.1 / Mythos 5.1</strong></td><td style="text-align:right"><strong>2026-09-01</strong></td><td>Fable 5.1 全面可用；Mythos 5.1 为 Trusted Access</td><td>同一底层模型、不同安全策略；Fable 为当前最强普遍可用档，Mythos 面向通过审核的网络安全与生命科学组织；Opus 5 仍是 Opus 档最新版本</td></tr><tr><td>Google Gemini</td><td>通用/Agent <strong>Gemini 3.8 Flash</strong>；网络安全 <strong>Gemini 3.8 Flash Cyber</strong>；视频生成 <strong>Gemini Omni 1.1 Flash</strong></td><td style="text-align:right"><strong>2026-09-02 / 08-27</strong></td><td>3.8 Flash 与 Omni 已提供；Cyber 为可信访问</td><td>3.8 Flash 是当前最强 Flash 通用主线；Cyber 面向 Fairwind Program 可信防守方；最新 Pro 仍是 Gemini 3.1 Pro</td></tr><tr><td>Z.ai GLM</td><td>旗舰 <strong>GLM-5.3</strong>；高效分支 <strong>GLM-5.3-Flash</strong></td><td style="text-align:right"><strong>2026-08-14 / 08-26</strong></td><td>API / Coding Plan 可用，<strong>两者权重均已开放</strong></td><td>GLM-5.3 为 753B 参数开放旗舰；Flash 为 320B 总参数、18B 激活的原生多模态模型；两者许可不同，部署前应分别核对模型许可</td></tr><tr><td>Moonshot Kimi</td><td><strong>Kimi K3</strong></td><td style="text-align:right"><strong>2026-07-16</strong>；权重 07-27</td><td>正式可用、开放权重</td><td>当前通用旗舰；K2.7-Code 属于较早发布的代码专项分支</td></tr><tr><td>DeepSeek</td><td><strong>DeepSeek-V4-Flash-0731</strong> / <strong>DeepSeek-V4-Pro-0813</strong> / <strong>DeepSeek-V4-Flash-Vision-Exp</strong></td><td style="text-align:right"><strong>2026-07-31 / 08-13 / 08-21</strong></td><td>Flash、Pro 为正式文本生产分支；Vision-Exp 为实验性多模态 API + 开放权重模型</td><td>Flash 偏速度与成本，Pro 偏能力；Vision-Exp 为 305B、MIT 许可，增加视觉理解并保持与正式 Flash 相当的纯文本能力</td></tr><tr><td>字节跳动豆包</td><td><strong>Doubao Seed 2.1 Pro / Turbo</strong></td><td style="text-align:right"><strong>2026-06-23</strong></td><td>正式可用</td><td>当前最新固定代际；<code>Doubao-Seed-Evolving</code> 是持续滚动更新端点，不是新的固定版本号</td></tr><tr><td>Alibaba Qwen</td><td>旗舰 <strong>Qwen3.8-Max-0902</strong>；高效分支 <strong>Qwen3.8-Flash / Flash-Next</strong>；开放大模型 <strong>2.4T-A95B / 27B</strong></td><td style="text-align:right"><strong>2026-09-02 / 08-26 / 08-14</strong></td><td>Max 快照与 Flash 正式可用；Flash-Next、2.4T、27B 已开放权重</td><td><code>qwen3.8-max-0902</code> 是当前 Max 升级快照，强化工程级编码、长程 Agent、多工具协作和视觉理解；Flash-Next 仍是面向 Qwen4 的实验架构预览</td></tr><tr><td>SpaceXAI Grok</td><td><strong>Grok 4.6</strong></td><td style="text-align:right"><strong>2026-08-12</strong></td><td>API、Grok Build、Cursor、GitHub Copilot、Amazon Bedrock、Gemini Enterprise、Microsoft Foundry 等已可用</td><td>500K 上下文；截至本次核验未发现 Grok 4.7 已发布，08-19 至 08-26 的变化均为渠道扩展</td></tr><tr><td>Meta Muse / Llama</td><td>闭源通用/Agent <strong>Muse Spark 1.1</strong>；开放主线 <strong>Llama 4 Scout / Maverick</strong></td><td style="text-align:right"><strong>2026-07-09 / 2025-04-05</strong></td><td>Muse Spark 1.1 已在 Meta AI 并通过 Meta Model API 公测；Llama 4 开放权重</td><td>Muse Spark 1.1 支持 1M 上下文、多模态推理、工具与计算机使用；开放权重主线仍为 Llama 4，未发现官方 Llama 5</td></tr><tr><td>Mistral AI</td><td><strong>Mistral Medium 3.5</strong>；开放旗舰 <strong>Mistral Small 4</strong></td><td style="text-align:right"><strong>2026-05-22 / 03-16</strong></td><td>API 正式可用；Small 4 开源</td><td>Medium 3.5 是最新通用商业模型；Small 4 是最新开放通用模型</td></tr><tr><td>Cohere Command</td><td>通用 <strong>Command A+</strong>；文档专项 <strong>Parse (<code>parse-v5.0</code>)</strong></td><td style="text-align:right"><strong>2026-05-20 / 08-27</strong></td><td>Command A+ 开放；Parse API / 私有化可用</td><td>Command A+ 仍是最新通用主线；Parse 是将复杂文档转为结构化 Markdown 的高吞吐视觉解析模型，不是 Command A++</td></tr><tr><td>Amazon Nova</td><td><strong>Nova 2 Lite / Nova 2 Sonic</strong>；最高能力档 <strong>Nova Premier</strong></td><td style="text-align:right"><strong>2025-12-02 / 04-30</strong></td><td>Amazon Bedrock 正式可用</td><td>Nova 2 是最新代际；Premier 仍是公开目录中的最高能力通用模型</td></tr><tr><td>Microsoft MAI / Phi</td><td>最新专项 <strong>MAI-Transcribe-2</strong>；推理主线 <strong>MAI-Thinking-1</strong>；开放小模型 <strong>Phi-4-Reasoning-Vision-15B</strong></td><td style="text-align:right"><strong>2026-09-03 / 06 / 03-04</strong></td><td>Transcribe-2 与 MAI 主线在 Foundry 提供；Phi 开放权重</td><td>MAI-Transcribe-2 是最新语音识别发布，不等于新的通用文本旗舰；Phi 仍是 Microsoft 开放小模型主线</td></tr><tr><td>NVIDIA Nemotron</td><td><strong>Nemotron 3.5 Lightning 30B-A3B</strong>；旗舰 <strong>Nemotron 3 Ultra</strong></td><td style="text-align:right"><strong>2026-08-11 / 06-04</strong></td><td>开放权重、可部署</td><td>Lightning 是最新家族发布，30B 总参数、3B 激活，偏高吞吐 Agent 执行；Ultra 仍是长程规划与复杂推理旗舰</td></tr><tr><td>Google Gemma</td><td><strong>Gemma 4</strong>；最新尺寸 <strong>Gemma 4 12B</strong></td><td style="text-align:right"><strong>2026-04-02 / 06-03</strong></td><td>Apache-2.0 开放</td><td>Google 的开放模型主线；与闭源 Gemini 分开统计</td></tr><tr><td>Thinking Machines</td><td><strong>Inkling-Small</strong>；大旗舰 <strong>Inkling</strong></td><td style="text-align:right"><strong>2026-07-30 / 07-15</strong></td><td>开放权重、Tinker 可用</td><td>Small 更新较晚且更高效；Inkling 规模更大、知识覆盖更强</td></tr><tr><td>Perplexity Sonar</td><td><strong>Sonar Deep Research</strong></td><td style="text-align:right"><strong>2025-02-14</strong></td><td>Sonar API 可用</td><td>检索增强研究模型；Sonar、Sonar Pro、Reasoning Pro 仍并行提供</td></tr><tr><td>Baidu ERNIE</td><td><strong>ERNIE 5.1</strong></td><td style="text-align:right"><strong>2026-05-09</strong></td><td>正式发布</td><td>在 5.0 底座上以更小规模强化 Agent 后训练与执行能力</td></tr><tr><td>Tencent Hunyuan / Hy</td><td><strong>Hy4 Preview</strong></td><td style="text-align:right"><strong>2026-08-28</strong></td><td>Preview、已开放权重并提供产品/API 接入</td><td>770B 总参数、49B 激活、超过 1M 上下文；面向编码、办公和科学研究，Hy3 已成为上一代</td></tr><tr><td>Huawei Pangu</td><td>商业旗舰 <strong>Pangu 5.5</strong>；开放主线 <strong>openPangu 2.0-Pro</strong></td><td style="text-align:right"><strong>2025-06-20 / 2026-07-31</strong></td><td>商业服务 / 开放权重</td><td>openPangu 2.0-Pro 为 505B 参数，权重、基础推理代码与技术报告已公开；它不等同于 Pangu 6</td></tr><tr><td>MiniMax</td><td><strong>MiniMax M3</strong></td><td style="text-align:right"><strong>2026-06-01</strong></td><td>正式可用、开放权重</td><td>原生多模态、1M 上下文，面向编码与 Agent；H3 是后续视频生成专项模型</td></tr><tr><td>HUMAIN</td><td><strong>HUMAIN M3 (<code>humain-m3</code>)</strong></td><td style="text-align:right"><strong>2026-09-03</strong></td><td>HUMAIN Node 限量研究预览；开放权重计划中</td><td>基于 MiniMax-M3 的阿拉伯语前沿多模态模型，428B 总参数、23B 激活，使用超过 1T 阿拉伯语 Token 继续训练，支持文本、图像、视频、工具和计算机使用</td></tr><tr><td>StepFun 阶跃星辰</td><td><strong>Step 3.7 Flash</strong></td><td style="text-align:right"><strong>2026-05-29</strong></td><td>API 与开放权重均可用</td><td>198B 稀疏 MoE 视觉语言模型，约 11B 激活、256K 上下文</td></tr><tr><td>Xiaomi MiMo</td><td><strong>MiMo-V2.5-Pro / MiMo-V2.5</strong></td><td style="text-align:right"><strong>2026-04-22</strong></td><td>API 与开放权重可用</td><td>Pro 为 1T 级能力档；标准版兼顾视觉、速度与成本</td></tr><tr><td>Meituan LongCat</td><td><strong>LongCat-2.0</strong></td><td style="text-align:right"><strong>2026-06-29</strong></td><td>正式发布、开放权重</td><td>1.6T 总参数、约 48B 激活、1M 上下文，偏 Agent 与编码</td></tr><tr><td>iFlytek Spark</td><td><strong>Spark X2</strong></td><td style="text-align:right"><strong>2026-02-09</strong></td><td>正式 API 可用</td><td>支持动态思考、64K 输入、128K 输出与 Function Call</td></tr><tr><td>SenseTime SenseNova</td><td>多模态旗舰 <strong>SenseNova U1 Pro</strong>；Agent 预览 <strong>6.8 Flash Lite Preview</strong>；开放生成分支 <strong>U1.5 Lite</strong></td><td style="text-align:right"><strong>2026-07-18 / 08-11 / 08-21</strong></td><td>U1 Pro 已发布；6.8 为 Preview；U1.5 Lite 已开源</td><td>U1 Pro 面向长程交付、原生 8K 与 Agentic 生成闭环；U1.5 Lite 偏高效 4K 生成编辑，三者定位不同</td></tr><tr><td>Shanghai AI Lab Intern</td><td><strong>Intern-S2-Preview-397B</strong></td><td style="text-align:right"><strong>2026-07</strong></td><td>Preview、开放权重</td><td>科学多模态与长程 Agent 主线；传统 InternLM 通用语言线最新公开版为 InternLM3</td></tr><tr><td>01.AI Yi</td><td><strong>Yi-Lightning</strong></td><td style="text-align:right"><strong>2024-10</strong></td><td>公共 API 将于 2026-09-03 停止；企业方案继续</td><td>截至核验未发现更新的公开 Yi 基础模型；公司已转向 WorldWise、TrueNorth 等企业级平台与解决方案</td></tr><tr><td>Baichuan</td><td>医疗旗舰 <strong>Baichuan-M4</strong>；通用旗舰 <strong>Baichuan4-Turbo / Air</strong></td><td style="text-align:right"><strong>2026-06 / 2024-10-31</strong></td><td>医疗专项 / 通用 API</td><td>M4 是医疗 Agent，不等于通用 Baichuan 5；通用线仍停留在 Baichuan4 系列</td></tr><tr><td>Ant Group InclusionAI</td><td>金融增强 <strong>Ling-3.0-flash-Fin</strong>；高效生成 <strong>Ling-3.0-flash / Ling-3.0-tiny</strong>；旗舰 <strong>Ling-2.6-1T / Ring-2.6-1T</strong></td><td style="text-align:right"><strong>2026-09-03 / 07-24 / 08-07；旗舰 2026-04/05</strong></td><td>Fin / flash / tiny 已开放权重；旗舰按型号提供</td><td>Fin 基于 3.0-flash 继续训练，124B 总参数、5.1B 激活、256K 上下文，面向金融检索、跨文档推理、估值和表格工作流</td></tr><tr><td>IBM Granite</td><td><strong>Granite 4.2</strong>；语音分支 <strong>Granite Speech 5.0 Turbo CTC</strong></td><td style="text-align:right"><strong>2026-08-25</strong></td><td>Apache-2.0 开放、多平台可用</td><td>4.2 提供 3B/8B/30B 稠密模型，加入原生逐步推理并强化 Agent、工具调用与代码；语音 5.0 为 470M 边缘 ASR 模型</td></tr><tr><td>AI21 Labs Jamba</td><td><strong>Jamba2</strong></td><td style="text-align:right"><strong>2026-01-08</strong></td><td>Apache-2.0 开放、AI21 Studio 可用</td><td>3B 与 Mini 两档；Jamba Large 1.7 仍是更大能力档</td></tr><tr><td>Ai2 OLMo</td><td><strong>OLMo 3.1</strong></td><td style="text-align:right"><strong>2025-12-12</strong></td><td>全流程开放</td><td>32B Think/Instruct 是当前最新主线，数据、代码、权重和训练流程均开放</td></tr><tr><td>Liquid AI LFM</td><td>通用 <strong>LFM2.5-2.6B</strong>；视觉 <strong>LFM2.5-VL-3B</strong></td><td style="text-align:right"><strong>2026-08-04 / 08-12</strong></td><td>开放权重</td><td>通用版面向端侧 Agent；VL-3B 是当前最强 Liquid 视觉语言模型；08-19/20 的 Q4_0 与 DSpark 是量化/推理加速变体</td></tr></tbody></table><hr/><h2 id="">二、各家主要版本时间线</h2><h3 id="1-openai-gpt">1. OpenAI GPT</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2018-06-11</td><td>GPT-1</td><td>GPT 系列起点</td></tr><tr><td style="text-align:right">2019-02-14</td><td>GPT-2</td><td>扩大无监督预训练规模</td></tr><tr><td style="text-align:right">2020-05-28</td><td>GPT-3</td><td>175B 参数，推动通用大模型 API 化</td></tr><tr><td style="text-align:right">2022-11-30</td><td>GPT-3.5 / ChatGPT</td><td>对话产品正式爆发</td></tr><tr><td style="text-align:right">2023-03-14</td><td>GPT-4</td><td>更强推理与多模态能力</td></tr><tr><td style="text-align:right">2023-11-06</td><td>GPT-4 Turbo</td><td>更长上下文、更低成本</td></tr><tr><td style="text-align:right">2024-05-13</td><td>GPT-4o</td><td>原生全模态主线</td></tr><tr><td style="text-align:right">2024-09-12</td><td>o1-preview</td><td>推理模型主线启动</td></tr><tr><td style="text-align:right">2025-02-27</td><td>GPT-4.5</td><td>GPT-4 代际最后一个大型通用版本</td></tr><tr><td style="text-align:right">2025-04-14</td><td>GPT-4.1</td><td>API 编程、指令遵循和长上下文强化</td></tr><tr><td style="text-align:right">2025-04-16</td><td>o3 / o4-mini</td><td>新一代推理模型</td></tr><tr><td style="text-align:right">2025-08-07</td><td>GPT-5</td><td>GPT 与推理能力逐步合流</td></tr><tr><td style="text-align:right">2025-11-12</td><td>GPT-5.1</td><td>GPT-5 主线更新</td></tr><tr><td style="text-align:right">2025-12-11</td><td>GPT-5.2</td><td>专业工作和可配置推理增强</td></tr><tr><td style="text-align:right">2026-02-05</td><td>GPT-5.3-Codex</td><td>代码 Agent 专项版本，并非通用 GPT-5.3 主线</td></tr><tr><td style="text-align:right">2026-03-05</td><td>GPT-5.4</td><td>通用主线更新</td></tr><tr><td style="text-align:right">2026-04-23</td><td>GPT-5.5</td><td>通用旗舰更新</td></tr><tr><td style="text-align:right">2026-05-07</td><td>GPT-5.5-Cyber Preview</td><td>Trusted Access for Cyber 下的网络安全宽松版预览，重点是降低合法安全任务的误拒绝，并非单纯追求比 GPT-5.5 更高的通用能力</td></tr><tr><td style="text-align:right">2026-06-22</td><td>OpenAI Daybreak</td><td>将前沿网络安全模型、Codex Security、可信工作流和合作伙伴计划整合为网络防御体系</td></tr><tr><td style="text-align:right">2026-06-26</td><td>GPT-5.6 Preview</td><td>Sol、Terra、Luna 限量预览</td></tr><tr><td style="text-align:right"><strong>2026-07-09</strong></td><td><strong>GPT-5.6 GA</strong></td><td><strong>当前正式代际；Sol 为旗舰，Terra 平衡能力/成本，Luna 偏高吞吐低成本</strong></td></tr><tr><td style="text-align:right"><strong>2026-08-10</strong></td><td><strong>GPT-5.6-Cyber / Daybreak Blue / Daybreak Red</strong></td><td><strong>GPT-5.6-Cyber 基于 GPT-5.6 Sol 专项训练并通过 Daybreak Red 提供；Daybreak Blue 面向多数防守方提供降低系统级误拦截的 GPT-5.6 Sol</strong></td></tr><tr><td style="text-align:right">2026-09-01</td><td>Astra 发布前能力与防护评估</td><td>OpenAI 确认 Astra 达到 Preparedness Framework“Critical”网络安全能力阈值，并在发布前加强滥用防护、监控与部署安全</td></tr><tr><td style="text-align:right"><strong>2026-09-03</strong></td><td><strong>GPT-6 Astra</strong></td><td><strong>当前公开旗舰；模型 ID <code>gpt-6-astra</code>，1.05M 上下文、128K 最大输出，先向 Trusted Access 企业限量滚动开放，API 及付费 ChatGPT 方案随后分批扩展</strong></td></tr></tbody></table><h4 id="openai-cyber--daybreak-">OpenAI Cyber 分支与 Daybreak 分层</h4><table><thead><tr><th>名称</th><th>类型</th><th>底层模型/定位</th><th>适用范围</th></tr></thead><tbody><tr><td><strong>GPT-5.5-Cyber</strong></td><td>网络安全专项预览模型</td><td>以 GPT-5.5 为基础，主要提升网络安全任务的允许率、减少合法双用途研究误拒绝</td><td>早期 Trusted Access / 现归入 Daybreak Red 体系</td></tr><tr><td><strong>Daybreak Blue</strong></td><td><strong>访问层级，不是独立模型代际</strong></td><td>提供 GPT-5.6 Sol，并移除或调整部分系统级网络安全护栏；模型本身仍保留对高度双用途任务的边界</td><td>漏洞发现、安全代码审查、恶意软件分析、事件响应、补丁验证；官方建议多数防守方从此层开始</td></tr><tr><td><strong>Daybreak Red</strong></td><td><strong>高级授权访问层级，不是单个模型名</strong></td><td>提供专门训练的网络安全模型，包括 GPT-5.5-Cyber、GPT-5.6-Cyber</td><td>经授权的高级漏洞研究、漏洞利用验证、渗透测试、安全测试与红队工作</td></tr><tr><td><strong>GPT-5.6-Cyber</strong></td><td>当前最新网络安全专项模型</td><td>基于 GPT-5.6 Sol 训练，强化零日漏洞发现、漏洞利用链开发等专项能力，并进一步减少合规任务的拒绝</td><td>仅通过 Daybreak Red 向审核通过的个人和组织提供</td></tr><tr><td><strong>GPT-6 Astra</strong></td><td>当前通用旗舰，兼具 Critical 级网络安全能力</td><td>不是以 Cyber 命名的专项版本；一般访问保留严格防护，Daybreak / Trusted Access 以分阶段方式提供更高阶授权能力</td><td>2026-09-03 起先向 Trusted Access 企业限量滚动开放</td></tr></tbody></table><h3 id="2-anthropic-claude">2. Anthropic Claude</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2023-03-14</td><td>Claude 1</td><td>首代公开产品</td></tr><tr><td style="text-align:right">2023-07-11</td><td>Claude 2</td><td>长上下文和推理提升</td></tr><tr><td style="text-align:right">2023-11-21</td><td>Claude 2.1</td><td>200K 上下文</td></tr><tr><td style="text-align:right">2024-03-04</td><td>Claude 3</td><td>Opus / Sonnet / Haiku 分档</td></tr><tr><td style="text-align:right">2024-06-20</td><td>Claude 3.5 Sonnet</td><td>编程与性价比显著提升</td></tr><tr><td style="text-align:right">2024-10-22</td><td>新 Claude 3.5 Sonnet</td><td>后来常被社区称为 3.6</td></tr><tr><td style="text-align:right">2025-02-24</td><td>Claude 3.7 Sonnet</td><td>混合推理模式</td></tr><tr><td style="text-align:right">2025-05-22</td><td>Claude 4</td><td>Opus 4 / Sonnet 4</td></tr><tr><td style="text-align:right">2025-08-05</td><td>Claude Opus 4.1</td><td>Opus 小版本升级</td></tr><tr><td style="text-align:right">2025-09-29</td><td>Claude Sonnet 4.5</td><td>Sonnet Agent/编程增强</td></tr><tr><td style="text-align:right">2025-10-15</td><td>Claude Haiku 4.5</td><td>轻量档更新</td></tr><tr><td style="text-align:right">2025-11-24</td><td>Claude Opus 4.5</td><td>Opus 旗舰升级</td></tr><tr><td style="text-align:right">2026-02-05</td><td>Claude Opus 4.6</td><td>长程 Agent 与编码提升</td></tr><tr><td style="text-align:right">2026-02-17</td><td>Claude Sonnet 4.6</td><td>Sonnet 主线升级</td></tr><tr><td style="text-align:right">2026-04-16</td><td>Claude Opus 4.7</td><td>Opus 更新</td></tr><tr><td style="text-align:right">2026-05-28</td><td>Claude Opus 4.8</td><td>Opus 更新</td></tr><tr><td style="text-align:right">2026-06-09</td><td>Claude Fable 5 / Mythos 5</td><td>Fable 为前沿智能档，Mythos 偏高能力安全/网络安全研究</td></tr><tr><td style="text-align:right">2026-06-30</td><td>Claude Sonnet 5</td><td>新一代高性价比 Agent 模型</td></tr><tr><td style="text-align:right">2026-07-24</td><td>Claude Opus 5</td><td>Opus 档最新版本；面向长程 Agent、编码与专业工作</td></tr><tr><td style="text-align:right"><strong>2026-09-01</strong></td><td><strong>Claude Fable 5.1 / Mythos 5.1</strong></td><td><strong>当前最新 Claude；两者为相同底层模型、采用不同安全策略。Fable 5.1 全面可用（API：<code>claude-fable-5-1</code>），Mythos 5.1 仅向通过审核的组织开放</strong></td></tr></tbody></table><h3 id="3-google-gemini">3. Google Gemini</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2023-12-06</td><td>Gemini 1.0</td><td>Ultra / Pro / Nano</td></tr><tr><td style="text-align:right">2024-02-15</td><td>Gemini 1.5 Pro</td><td>长上下文大幅提升</td></tr><tr><td style="text-align:right">2024-05-14</td><td>Gemini 1.5 Flash</td><td>低延迟、高吞吐分支</td></tr><tr><td style="text-align:right">2024-12-11</td><td>Gemini 2.0 Flash Experimental</td><td>2.0 代际预览</td></tr><tr><td style="text-align:right">2025-02-05</td><td>Gemini 2.0 Flash GA</td><td>2.0 正式可用</td></tr><tr><td style="text-align:right">2025-03-25</td><td>Gemini 2.5 Pro Preview</td><td>思考/推理能力增强</td></tr><tr><td style="text-align:right">2025-06-17</td><td>Gemini 2.5 Pro / Flash GA</td><td>2.5 正式版本</td></tr><tr><td style="text-align:right">2025-11-18</td><td>Gemini 3 Pro</td><td>3 代 Pro</td></tr><tr><td style="text-align:right">2025-12-17</td><td>Gemini 3 Flash</td><td>3 代 Flash</td></tr><tr><td style="text-align:right">2026-02-19</td><td>Gemini 3.1 Pro</td><td><strong>当前最新 Pro 档</strong></td></tr><tr><td style="text-align:right">2026-05-19</td><td>Gemini 3.5 Flash</td><td>新一代 Flash</td></tr><tr><td style="text-align:right">2026-07-21</td><td>Gemini 3.6 Flash</td><td>Flash 更新</td></tr><tr><td style="text-align:right"><strong>2026-08-13</strong></td><td><strong>Gemini 3.7 Flash</strong></td><td><strong>当前最新通用/Agent 主线；Google 称其为面向编码与 Agent 的最智能 workhorse 模型</strong></td></tr><tr><td style="text-align:right">2026-08-26</td><td>Gemini 3.5 Transcribe / Transcribe Live</td><td>专用语音转文字模型 GA；分别面向低延迟非流式与 WebSocket 实时流式转录</td></tr><tr><td style="text-align:right"><strong>2026-08-27</strong></td><td><strong>Gemini Omni 1.1 Flash</strong></td><td><strong>视频生成/编辑专项模型 GA（<code>gemini-omni-1.1-flash</code>）；支持视频续写、首尾帧插值及最高 4K 升采样输出</strong></td></tr><tr><td style="text-align:right">2026-09-01</td><td>Gemini 3.x Agentic Video Understanding</td><td>为 Gemini 3.7 Flash、3.6 Flash、3.5 Flash-Lite 增加按需提取帧、音轨和转录的 Agentic 视频理解；属于能力/API 更新</td></tr><tr><td style="text-align:right"><strong>2026-09-02</strong></td><td><strong>Gemini 3.8 Flash / Gemini 3.8 Flash Cyber</strong></td><td><strong>当前最新 Flash 代际；通用版面向长程编码、自主 Agent 与复杂多步推理并已提供，Cyber 为同底层智能的网络安全版本，仅向 Fairwind Program 可信防守方开放</strong></td></tr></tbody></table><h3 id="4-zai---glm">4. Z.ai / 智谱 GLM</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2022-08</td><td>GLM-130B</td><td>早期双语大模型</td></tr><tr><td style="text-align:right">2023-03</td><td>ChatGLM-6B</td><td>ChatGLM 开源主线启动</td></tr><tr><td style="text-align:right">2023-06-25</td><td>ChatGLM2-6B</td><td>性能和上下文升级</td></tr><tr><td style="text-align:right">2023-10-27</td><td>ChatGLM3</td><td>Agent、工具调用增强</td></tr><tr><td style="text-align:right">2024-01-16</td><td>GLM-4</td><td>新一代旗舰</td></tr><tr><td style="text-align:right">2024-08-29</td><td>GLM-4-Plus</td><td>GLM-4 旗舰升级</td></tr><tr><td style="text-align:right">2025-07-28</td><td>GLM-4.5</td><td>原生 Agent 模型</td></tr><tr><td style="text-align:right">2025-09-30</td><td>GLM-4.6</td><td>编程、Agent、200K 上下文</td></tr><tr><td style="text-align:right">2025-12-22</td><td>GLM-4.7</td><td>编码和端到端任务提升</td></tr><tr><td style="text-align:right">2026-02-12</td><td>GLM-5</td><td>面向复杂系统工程和长程 Agent</td></tr><tr><td style="text-align:right">2026-04-07</td><td>GLM-5.1</td><td>长程任务和自主执行提升</td></tr><tr><td style="text-align:right">2026-06-16</td><td>GLM-5.2</td><td>1M 上下文、长程编码增强</td></tr><tr><td style="text-align:right"><strong>2026-08-14</strong></td><td><strong>GLM-5.3</strong></td><td><strong>当前旗舰；基于 5.2 同一底模扩大后训练；API、Coding Plan 与 753B 完整权重均已可用</strong></td></tr><tr><td style="text-align:right"><strong>2026-08-26</strong></td><td><strong>GLM-5.3-Flash</strong></td><td><strong>当前最新开放权重分支；原生多模态，320B 总参数、18B 激活，混合稀疏/线性注意力，MIT 许可</strong></td></tr></tbody></table><h3 id="5-moonshot-ai--kimi">5. Moonshot AI / Kimi</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2023-10</td><td>Kimi 智能助手</td><td>主打超长上下文</td></tr><tr><td style="text-align:right">2025-01-20</td><td>Kimi k1.5</td><td>多模态推理模型</td></tr><tr><td style="text-align:right">2025-07-11</td><td>Kimi K2</td><td>K2 初始开放版本</td></tr><tr><td style="text-align:right">2025-09-05</td><td>Kimi K2 更新版</td><td>1T 总参数、32B 激活参数</td></tr><tr><td style="text-align:right">2025-11-06</td><td>Kimi K2 Thinking</td><td>思考模型分支</td></tr><tr><td style="text-align:right">2026-01-27</td><td>Kimi K2.5</td><td>Office、视觉与 Agent 能力增强</td></tr><tr><td style="text-align:right">2026-04-20</td><td>Kimi K2.6</td><td>编码、长程执行、Agent Swarm</td></tr><tr><td style="text-align:right">2026-06-12</td><td>Kimi K2.7-Code</td><td>代码专项分支</td></tr><tr><td style="text-align:right"><strong>2026-07-16</strong></td><td><strong>Kimi K3</strong></td><td><strong>当前通用旗舰：2.8T 参数、原生视觉、1M 上下文；完整权重于 7 月 27 日提供</strong></td></tr></tbody></table><h3 id="6-deepseek">6. DeepSeek</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2023-11-02</td><td>DeepSeek Coder</td><td>代码模型主线</td></tr><tr><td style="text-align:right">2023-11-29</td><td>DeepSeek LLM</td><td>通用语言模型</td></tr><tr><td style="text-align:right">2024-05-06</td><td>DeepSeek-V2</td><td>MoE 架构旗舰</td></tr><tr><td style="text-align:right">2024-06-17</td><td>DeepSeek-Coder-V2</td><td>代码能力升级</td></tr><tr><td style="text-align:right">2024-09-05</td><td>DeepSeek-V2.5</td><td>通用与代码能力融合</td></tr><tr><td style="text-align:right">2024-12-26</td><td>DeepSeek-V3</td><td>大规模 MoE 旗舰</td></tr><tr><td style="text-align:right">2025-01-20</td><td>DeepSeek-R1</td><td>开源推理模型</td></tr><tr><td style="text-align:right">2025-03-25</td><td>DeepSeek-V3-0324</td><td>V3 更新快照</td></tr><tr><td style="text-align:right">2025-05-28</td><td>DeepSeek-R1-0528</td><td>R1 更新快照</td></tr><tr><td style="text-align:right">2025-08-21</td><td>DeepSeek-V3.1</td><td>混合推理、工具使用增强</td></tr><tr><td style="text-align:right">2025-09-22</td><td>DeepSeek-V3.1-Terminus</td><td>V3.1 后续更新</td></tr><tr><td style="text-align:right">2025-09-29</td><td>DeepSeek-V3.2-Exp</td><td>实验版</td></tr><tr><td style="text-align:right">2025-12-01</td><td>DeepSeek-V3.2</td><td>正式版</td></tr><tr><td style="text-align:right">2026-04-24</td><td>DeepSeek-V4 Preview</td><td>V4-Pro 与 V4-Flash 首次公开，1M 上下文</td></tr><tr><td style="text-align:right"><strong>2026-07-31</strong></td><td><strong>DeepSeek-V4-Flash-0731</strong></td><td><strong>当前最新 Flash 生产快照</strong></td></tr><tr><td style="text-align:right"><strong>2026-08-13</strong></td><td><strong>DeepSeek-V4-Pro-0813</strong></td><td><strong>当前最新 Pro 生产快照/GA</strong></td></tr><tr><td style="text-align:right"><strong>2026-08-21</strong></td><td><strong>DeepSeek-V4-Flash-Vision-Exp</strong></td><td><strong>实验性多模态视觉理解模型，已上线 API 并开放 305B 权重（MIT）；纯文本 Agent 能力与正式 V4-Flash 相当</strong></td></tr></tbody></table><p>当前官方 API 别名与快照对应关系：</p><pre class="language-text lang-text"><code class="language-text lang-text">deepseek-v4-flash -&gt; DeepSeek-V4-Flash-0731
deepseek-v4-pro   -&gt; DeepSeek-V4-Pro-0813
deepseek-v4-flash-vision-exp -&gt; DeepSeek-V4-Flash-Vision-Exp</code></pre><h3 id="7---seed">7. 字节跳动豆包 / Seed</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2024-05-15</td><td>豆包大模型家族</td><td>Pro / Lite 等商业化模型</td></tr><tr><td style="text-align:right">2025-01-22</td><td>Doubao 1.5 Pro</td><td>推理与多模态能力提升</td></tr><tr><td style="text-align:right">2025-06-11</td><td>Doubao Seed 1.6</td><td>Seed 品牌主线</td></tr><tr><td style="text-align:right">2025-12-18</td><td>Doubao Seed 1.8</td><td>通用、Agent 和多模态更新</td></tr><tr><td style="text-align:right">2026-02-14</td><td>Doubao Seed 2.0</td><td>2.0 代际</td></tr><tr><td style="text-align:right"><strong>2026-06-23</strong></td><td><strong>Doubao Seed 2.1 Pro / Turbo</strong></td><td><strong>当前最新固定代际，重点强化生产力 Agent、端到端编码和多模态理解</strong></td></tr></tbody></table><h3 id="8-alibaba-qwen--">8. Alibaba Qwen / 通义千问</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2023-04-11</td><td>通义千问公测</td><td>Qwen 产品主线公开</td></tr><tr><td style="text-align:right">2023-08-03</td><td>Qwen-7B / Qwen-7B-Chat</td><td>首批开源权重</td></tr><tr><td style="text-align:right">2024-02-04</td><td>Qwen1.5</td><td>多尺寸开源系列</td></tr><tr><td style="text-align:right">2024-06-07</td><td>Qwen2</td><td>新一代开源模型</td></tr><tr><td style="text-align:right">2024-09-19</td><td>Qwen2.5</td><td>通用、代码、数学等多分支</td></tr><tr><td style="text-align:right">2024-11-28</td><td>QwQ Preview</td><td>推理模型分支</td></tr><tr><td style="text-align:right">2025-01-28</td><td>Qwen2.5-Max</td><td>Max 旗舰</td></tr><tr><td style="text-align:right">2025-04-29</td><td>Qwen3</td><td>混合思考与非思考模式</td></tr><tr><td style="text-align:right">2025-09-24</td><td>Qwen3-Max</td><td>3 代旗舰 Max</td></tr><tr><td style="text-align:right">2026-01-25</td><td>Qwen3-Max-Thinking</td><td>Max 推理升级</td></tr><tr><td style="text-align:right">2026-02-16</td><td>Qwen3.5</td><td>3.5 代际</td></tr><tr><td style="text-align:right">2026-04</td><td>Qwen3.6 系列</td><td>3.6 Plus、Max Preview、27B 等</td></tr><tr><td style="text-align:right">2026-05-21</td><td>Qwen3.7-Max</td><td>3.7 旗舰</td></tr><tr><td style="text-align:right">2026-06-01</td><td>Qwen3.7-Plus</td><td>3.7 平衡档</td></tr><tr><td style="text-align:right">2026-07-19</td><td>Qwen3.8-Max-Preview</td><td>3.8 旗舰预览</td></tr><tr><td style="text-align:right"><strong>2026-08-12</strong></td><td><strong>Qwen3.8-Max / Qwen3.8-2.4T-A95B</strong></td><td><strong>当前旗舰正式版；Qwen-Max 级模型首次开放权重，2.4T 总参数、95B 激活参数</strong></td></tr><tr><td style="text-align:right"><strong>2026-08-14 23:00（北京时间）</strong></td><td><strong>Qwen3.8-27B / Qwen3.8-27B-FP8</strong></td><td><strong>已按官方预告时间正式开放权重；27B 稠密原生视觉语言模型，Apache-2.0，原生 262,144 上下文并可扩展至 1M</strong></td></tr><tr><td style="text-align:right"><strong>2026-08-26</strong></td><td><strong>Qwen3.8-Flash / Qwen3.8-Flash-Next</strong></td><td><strong>Flash 为 QwenCloud 生产版；Flash-Next 为开放权重架构预览，125B 主模型 + 51B N-gram Embedding、6B 激活，原生 262K、可扩展 1M，并预览 Qwen4 架构</strong></td></tr><tr><td style="text-align:right"><strong>2026-09-02</strong></td><td><strong>Qwen3.8-Max-0902</strong></td><td><strong>当前旗舰快照（<code>qwen3.8-max-0902</code> / <code>qwen3.8-max-2026-09-02</code>）；强化工程级编码、长程自主开发、多工具协同及图表/文档视觉理解，保留 1M 上下文、思考模式与完整工具生态</strong></td></tr></tbody></table><h3 id="9-spacexai--grok">9. SpaceXAI / Grok</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2023-11-03</td><td>Grok-1</td><td>首代 Grok</td></tr><tr><td style="text-align:right">2024-03-28</td><td>Grok-1.5</td><td>推理与长上下文增强</td></tr><tr><td style="text-align:right">2024-04-12</td><td>Grok-1.5V</td><td>视觉理解分支</td></tr><tr><td style="text-align:right">2024-08-13</td><td>Grok-2 Beta</td><td>新一代模型</td></tr><tr><td style="text-align:right">2025-02-19</td><td>Grok 3 Beta</td><td>推理 Agent 时代</td></tr><tr><td style="text-align:right">2025-07-09</td><td>Grok 4 / Grok 4 Heavy</td><td>原生工具使用与实时搜索</td></tr><tr><td style="text-align:right">2025-11-17</td><td>Grok 4.1</td><td>Grok 4 主线升级</td></tr><tr><td style="text-align:right">2025-11-19</td><td>Grok 4.1 Fast</td><td>快速、工具调用分支</td></tr><tr><td style="text-align:right">2026-04-07</td><td>Grok 4.20</td><td>Grok 4 系列更新</td></tr><tr><td style="text-align:right">2026-05-05</td><td>Grok 4.3</td><td>API 静默上线；5 月中旬成为旧模型迁移目标</td></tr><tr><td style="text-align:right">2026-07-16</td><td>Grok 4.5</td><td>编码、Agent 和知识工作旗舰</td></tr><tr><td style="text-align:right"><strong>2026-08-12</strong></td><td><strong>Grok 4.6</strong></td><td><strong>当前最新；重点增强长程 Agent、交互式与视觉工作，已在 API、Grok Build、Cursor 及多家合作平台提供</strong></td></tr><tr><td style="text-align:right">2026-08-14</td><td>Grok 4.6 上线 GitHub Copilot</td><td>渠道扩展；模型版本仍为 4.6，并非 Grok 4.7</td></tr><tr><td style="text-align:right">2026-08-19</td><td>Grok 4.6 上线 Amazon Bedrock</td><td>正式 GA，渠道扩展</td></tr><tr><td style="text-align:right">2026-08-21</td><td>Grok 4.6 上线 Gemini Enterprise Agent Platform</td><td>通过 Model Garden 提供，渠道扩展</td></tr><tr><td style="text-align:right"><strong>2026-08-26</strong></td><td><strong>Grok 4.6 上线 Microsoft Foundry</strong></td><td><strong>最新渠道扩展；模型版本仍为 4.6</strong></td></tr></tbody></table><h3 id="10-meta-muse--llama">10. Meta Muse / Llama</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2023-02-24</td><td>LLaMA</td><td>Meta 开放大语言模型主线起点</td></tr><tr><td style="text-align:right">2023-07-18</td><td>Llama 2</td><td>开放权重并扩展商用生态</td></tr><tr><td style="text-align:right">2024-04-18</td><td>Llama 3</td><td>8B / 70B 新一代模型</td></tr><tr><td style="text-align:right">2024-07-23</td><td>Llama 3.1</td><td>推出 405B，并支持 128K 上下文</td></tr><tr><td style="text-align:right">2024-09-25</td><td>Llama 3.2</td><td>增加视觉与端侧小模型</td></tr><tr><td style="text-align:right">2024-12-06</td><td>Llama 3.3 70B</td><td>70B 通用模型升级</td></tr><tr><td style="text-align:right"><strong>2025-04-05</strong></td><td><strong>Llama 4 Scout / Maverick</strong></td><td><strong>当前最新开放权重代际；原生多模态 MoE，Scout 支持更长上下文，Maverick 偏综合能力</strong></td></tr><tr><td style="text-align:right">2026-04-08</td><td>Muse Spark</td><td>Meta Superintelligence Labs 的闭源通用/Agent 模型主线起点</td></tr><tr><td style="text-align:right"><strong>2026-07-09</strong></td><td><strong>Muse Spark 1.1</strong></td><td><strong>Meta 当前闭源通用/Agent 模型；1M 上下文，支持多模态推理、工具/计算机使用与 Agent 编排，已在 Meta AI 提供并通过 Meta Model API 公测</strong></td></tr></tbody></table><h3 id="11-mistral-ai">11. Mistral AI</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2023-09-27</td><td>Mistral 7B</td><td>Mistral 开放模型主线起点</td></tr><tr><td style="text-align:right">2023-12-11</td><td>Mixtral 8x7B</td><td>稀疏 MoE 模型</td></tr><tr><td style="text-align:right">2024-04-17</td><td>Mixtral 8x22B</td><td>更大规模开放 MoE</td></tr><tr><td style="text-align:right">2024-07-24</td><td>Mistral Large 2</td><td>商业旗舰升级</td></tr><tr><td style="text-align:right">2025-05-07</td><td>Mistral Medium 3</td><td>中型高性价比通用模型</td></tr><tr><td style="text-align:right">2025-12-02</td><td>Mistral Large 3</td><td>大型开放多模态旗舰</td></tr><tr><td style="text-align:right">2026-03-16</td><td>Mistral Small 4</td><td>当前最新开放通用模型，混合指令、推理和编码能力</td></tr><tr><td style="text-align:right"><strong>2026-05-22</strong></td><td><strong>Mistral Medium 3.5</strong></td><td><strong>当前最新通用商业模型，强化 Agent、编程和多模态工作流</strong></td></tr></tbody></table><h3 id="12-cohere-command">12. Cohere Command</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2023-03</td><td>Command</td><td>面向企业生成式 AI 的早期主线</td></tr><tr><td style="text-align:right">2024-03-11</td><td>Command R</td><td>RAG、工具使用和企业检索强化</td></tr><tr><td style="text-align:right">2024-04-04</td><td>Command R+</td><td>更高能力企业旗舰</td></tr><tr><td style="text-align:right">2024-12-13</td><td>Command R7B</td><td>轻量开放模型</td></tr><tr><td style="text-align:right">2025-03-13</td><td>Command A</td><td>Agent、多语言和长上下文旗舰</td></tr><tr><td style="text-align:right"><strong>2026-05-20</strong></td><td><strong>Command A+</strong></td><td><strong>当前最新通用 Command；218B 总参数、25B 激活，Apache-2.0 开放</strong></td></tr><tr><td style="text-align:right"><strong>2026-08-27</strong></td><td><strong>Cohere Parse (<code>parse-v5.0</code>)</strong></td><td><strong>当前最新专项发布；高吞吐企业文档视觉解析模型，可输出结构化 Markdown，已在 Cohere API、Model Vault、Microsoft Foundry 与 AWS SageMaker 提供</strong></td></tr></tbody></table><h3 id="13-amazon-nova">13. Amazon Nova</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2024-12-03</td><td>Nova Micro / Lite / Pro</td><td>Amazon 自研基础模型家族首次公开</td></tr><tr><td style="text-align:right">2025-04-30</td><td>Nova Premier</td><td>当前公开目录中的最高能力通用档，支持 1M 上下文</td></tr><tr><td style="text-align:right"><strong>2025-12-02</strong></td><td><strong>Nova 2 Lite / Nova 2 Sonic</strong></td><td><strong>当前最新代际；Lite 偏通用多模态推理，Sonic 偏实时语音</strong></td></tr></tbody></table><h3 id="14-microsoft-mai--phi">14. Microsoft MAI / Phi</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2023-06</td><td>Phi-1</td><td>小语言模型研究主线起点</td></tr><tr><td style="text-align:right">2023-12-12</td><td>Phi-2</td><td>2.7B 小模型能力提升</td></tr><tr><td style="text-align:right">2024-04-23</td><td>Phi-3</td><td>Mini / Small / Medium 系列</td></tr><tr><td style="text-align:right">2024-08-21</td><td>Phi-3.5</td><td>多语言、MoE 与视觉版本</td></tr><tr><td style="text-align:right">2024-12-12</td><td>Phi-4</td><td>数学与推理能力升级</td></tr><tr><td style="text-align:right">2025-04-30</td><td>Phi-4-reasoning</td><td>推理专项分支</td></tr><tr><td style="text-align:right"><strong>2026-03-04</strong></td><td><strong>Phi-4-Reasoning-Vision-15B</strong></td><td><strong>当前最新；开放权重多模态推理模型</strong></td></tr><tr><td style="text-align:right">2026-06</td><td>MAI-Thinking-1 / MAI-Code-1 / MAI-Image-2.5 / MAI-Voice-2</td><td>Microsoft AI 第一方模型家族扩展到文本推理、代码、图像和语音；通过 Microsoft Foundry 提供</td></tr><tr><td style="text-align:right"><strong>2026-09-03</strong></td><td><strong>MAI-Transcribe-2</strong></td><td><strong>当前最新 MAI 家族发布；60 语言语音识别，支持说话人分离、逐词时间戳、关键词偏置、语码切换和可配置转写风格，已在 Foundry 与 MAI Playground 提供</strong></td></tr></tbody></table><h3 id="15-nvidia-nemotron">15. NVIDIA Nemotron</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2024-06-14</td><td>Nemotron-4 340B</td><td>合成数据与对齐模型家族</td></tr><tr><td style="text-align:right">2025-04-07</td><td>Llama 3.1 Nemotron Ultra</td><td>基于 Llama 的高推理能力开放模型</td></tr><tr><td style="text-align:right">2025-12-15</td><td>Nemotron 3 Nano</td><td>Nemotron 3 代轻量 Agent 模型</td></tr><tr><td style="text-align:right">2026-03-11</td><td>Nemotron 3 Super</td><td>中高能力 Agent 模型</td></tr><tr><td style="text-align:right">2026-04-28</td><td>Nemotron 3 Nano Omni</td><td>端到端多模态小模型</td></tr><tr><td style="text-align:right">2026-06-04</td><td>Nemotron 3 Ultra</td><td>当前能力旗舰；550B MoE，面向长程 Agent 与复杂推理</td></tr><tr><td style="text-align:right"><strong>2026-08-11</strong></td><td><strong>Nemotron 3.5 Lightning 30B-A3B</strong></td><td><strong>当前最新家族发布；30B 总参数、3B 激活，最高 1M 上下文，面向高吞吐、低延迟 Agent 执行层</strong></td></tr><tr><td style="text-align:right">2026-08-17</td><td>Nemotron 3.5 Lightning NVFP4（QAD）</td><td>官方发布量化感知蒸馏检查点；模型约由 66 GB 压缩至 22 GB，最高可提升约 4 倍吞吐</td></tr></tbody></table><h3 id="16-google-gemma">16. Google Gemma</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2024-02-21</td><td>Gemma</td><td>Google 开放模型主线起点</td></tr><tr><td style="text-align:right">2024-06-27</td><td>Gemma 2</td><td>9B / 27B 代际</td></tr><tr><td style="text-align:right">2025-03-12</td><td>Gemma 3</td><td>原生多模态和长上下文</td></tr><tr><td style="text-align:right">2025-06-26</td><td>Gemma 3n</td><td>面向端侧设备的高效率模型</td></tr><tr><td style="text-align:right"><strong>2026-04-02</strong></td><td><strong>Gemma 4</strong></td><td><strong>当前最新代际；E2B、E4B、26B-A4B、31B 多档开放模型</strong></td></tr><tr><td style="text-align:right">2026-06-03</td><td>Gemma 4 12B</td><td>Gemma 4 最新公开尺寸，补齐中型部署档</td></tr></tbody></table><h3 id="17-thinking-machines-lab--inkling">17. Thinking Machines Lab / Inkling</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2026-07-15</td><td>Inkling</td><td>首个开放权重通用模型；975B 总参数、41B 激活，原生文本/图像/音频，1M 上下文</td></tr><tr><td style="text-align:right"><strong>2026-07-30</strong></td><td><strong>Inkling-Small</strong></td><td><strong>当前最新发布；276B 总参数、12B 激活，以约四分之一规模提供接近或更强的推理与 Agent 效率</strong></td></tr></tbody></table><h3 id="18-perplexity-sonar">18. Perplexity Sonar</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2025-01-21</td><td>Sonar Pro API</td><td>高质量联网检索与引用生成</td></tr><tr><td style="text-align:right">2025-02-11</td><td>New Sonar</td><td>基于搜索场景优化的高速自研模型</td></tr><tr><td style="text-align:right"><strong>2025-02-14</strong></td><td><strong>Sonar Deep Research</strong></td><td><strong>当前 Sonar 家族最高研究档；执行多轮检索并生成综合报告</strong></td></tr></tbody></table><blockquote><p>Perplexity 的 Sonar 是“模型 + 实时搜索”路线，不能与完全离线的纯基础模型只按参数量直接比较。</p></blockquote>
<h3 id="19-baidu-ernie--">19. Baidu ERNIE / 文心</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2023-03-16</td><td>文心一言 / ERNIE Bot</td><td>面向公众发布</td></tr><tr><td style="text-align:right">2023-06-27</td><td>ERNIE 3.5</td><td>基础能力和插件能力升级</td></tr><tr><td style="text-align:right">2023-10-17</td><td>ERNIE 4.0</td><td>新一代通用旗舰</td></tr><tr><td style="text-align:right">2024-06-28</td><td>ERNIE 4.0 Turbo</td><td>速度与成本优化</td></tr><tr><td style="text-align:right">2025-03-16</td><td>ERNIE 4.5 / ERNIE X1</td><td>多模态通用线与深度推理线并行</td></tr><tr><td style="text-align:right">2025-11-13</td><td>ERNIE 5.0</td><td>原生全模态旗舰</td></tr><tr><td style="text-align:right"><strong>2026-05-09</strong></td><td><strong>ERNIE 5.1</strong></td><td><strong>当前最新；在 5.0 底座上以更小模型强化 Agent 后训练和工具执行</strong></td></tr></tbody></table><h3 id="20-tencent-hunyuan--hy">20. Tencent Hunyuan / Hy</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2023-09-07</td><td>腾讯混元</td><td>企业级通用大模型正式亮相</td></tr><tr><td style="text-align:right">2024-11-05</td><td>Hunyuan-Large</td><td>389B MoE 开放模型</td></tr><tr><td style="text-align:right">2025-02-27</td><td>Hunyuan-TurboS</td><td>高速推理分支</td></tr><tr><td style="text-align:right">2025-03-21</td><td>Hunyuan-T1</td><td>深度推理模型</td></tr><tr><td style="text-align:right">2025-06-27</td><td>Hunyuan-A13B</td><td>80B 总参数、13B 激活的高效率开放模型</td></tr><tr><td style="text-align:right">2026-07-06</td><td>Hy3</td><td>295B 总参数、21B 激活、256K 上下文，支持混合快慢思考</td></tr><tr><td style="text-align:right"><strong>2026-08-28</strong></td><td><strong>Hy4 Preview</strong></td><td><strong>当前最新；770B 总参数、49B 激活、超过 1M 上下文，面向编码、办公和科学研究；已开放权重，并通过腾讯产品、腾讯云 TokenHub、OpenRouter 等提供</strong></td></tr></tbody></table><h3 id="21-huawei-pangu--">21. Huawei Pangu / 盘古</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2021-04</td><td>Pangu-α</td><td>盘古大模型早期语言主线</td></tr><tr><td style="text-align:right">2023-07-07</td><td>Pangu 3.0</td><td>面向行业的“5+N+X”体系</td></tr><tr><td style="text-align:right">2024-06-21</td><td>Pangu 5.0</td><td>多尺寸、多模态行业模型</td></tr><tr><td style="text-align:right"><strong>2025-06-20</strong></td><td><strong>Pangu 5.5</strong></td><td><strong>当前商业旗舰代际；包含 718B MoE 深度思考语言模型</strong></td></tr><tr><td style="text-align:right">2026-06-12</td><td>openPangu 2.0</td><td>开放主线启动，与商业 Pangu 5.5 并行</td></tr><tr><td style="text-align:right"><strong>2026-07-31</strong></td><td><strong>openPangu 2.0-Pro</strong></td><td><strong>当前最新开放权重档；505B 参数，权重、基础推理代码与技术报告正式上线，不代表 Pangu 6</strong></td></tr></tbody></table><h3 id="22-minimax">22. MiniMax</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2024-04-17</td><td>abab 6.5</td><td>早期通用旗舰系列</td></tr><tr><td style="text-align:right">2025-01-15</td><td>MiniMax-Text-01</td><td>开放权重长上下文模型</td></tr><tr><td style="text-align:right">2025-06-16</td><td>MiniMax-M1</td><td>开放推理模型</td></tr><tr><td style="text-align:right">2025-10-27</td><td>MiniMax M2</td><td>Agent 与编码主线</td></tr><tr><td style="text-align:right">2025-12-23</td><td>MiniMax M2.1</td><td>多语言编程与工具使用更新</td></tr><tr><td style="text-align:right">2026-02-12</td><td>MiniMax M2.5</td><td>生产级 Agent 编程模型</td></tr><tr><td style="text-align:right">2026-03-18</td><td>MiniMax M2.7</td><td>长程任务和编码增强</td></tr><tr><td style="text-align:right"><strong>2026-06-01</strong></td><td><strong>MiniMax M3</strong></td><td><strong>当前通用旗舰；原生多模态、1M 上下文、开放权重</strong></td></tr></tbody></table><h3 id="23-stepfun--">23. StepFun / 阶跃星辰</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2024-03-23</td><td>Step-1</td><td>千亿参数语言模型</td></tr><tr><td style="text-align:right">2024-07</td><td>Step-2</td><td>万亿参数 MoE 文本模型</td></tr><tr><td style="text-align:right">2025</td><td>Step-1o</td><td>原生多模态统一模型</td></tr><tr><td style="text-align:right">2025</td><td>Step 3</td><td>视觉感知与复杂推理模型</td></tr><tr><td style="text-align:right">2026-02-02</td><td>Step 3.5 Flash</td><td>196B 总参数、11B 激活、256K 上下文的开放 Agent 模型</td></tr><tr><td style="text-align:right"><strong>2026-05-29</strong></td><td><strong>Step 3.7 Flash</strong></td><td><strong>当前最新；原生视觉语言 MoE，强化搜索、工具编排、编码与真实 Agent 工作流</strong></td></tr></tbody></table><h3 id="24-xiaomi-mimo">24. Xiaomi MiMo</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2025-04-30</td><td>MiMo-7B</td><td>小米首批开放语言与推理模型</td></tr><tr><td style="text-align:right">2025-12</td><td>MiMo-V2-Flash</td><td>高效率 MoE 编码与 Agent 模型</td></tr><tr><td style="text-align:right">2026</td><td>MiMo-V2-Omni</td><td>多模态理解分支</td></tr><tr><td style="text-align:right"><strong>2026-04-22</strong></td><td><strong>MiMo-V2.5 / MiMo-V2.5-Pro</strong></td><td><strong>当前最新通用系列；Pro 为 1T 级高能力档，标准版兼顾多模态、速度和成本</strong></td></tr></tbody></table><h3 id="25-meituan-longcat">25. Meituan LongCat</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2025-09</td><td>LongCat-Flash</td><td>美团首批开放高效率 MoE 模型</td></tr><tr><td style="text-align:right">2025-10</td><td>LongCat-Flash-Thinking</td><td>深度推理分支</td></tr><tr><td style="text-align:right">2026-01</td><td>LongCat-Image</td><td>图像生成与理解扩展</td></tr><tr><td style="text-align:right"><strong>2026-06-29</strong></td><td><strong>LongCat-2.0</strong></td><td><strong>当前通用旗舰；1.6T 总参数、约 48B 激活、1M 上下文，面向 Agent 和编码</strong></td></tr><tr><td style="text-align:right">2026-07-12</td><td>LongCat-2.0 完整开源</td><td>官方补齐权重、代码和部署资源</td></tr></tbody></table><h3 id="26-iflytek-spark--">26. iFlytek Spark / 讯飞星火</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2023-05-06</td><td>讯飞星火 V1.0</td><td>首次发布</td></tr><tr><td style="text-align:right">2023-08-15</td><td>星火 V2.0</td><td>代码与多模态增强</td></tr><tr><td style="text-align:right">2024-01-30</td><td>星火 V3.5</td><td>推理和语言能力升级</td></tr><tr><td style="text-align:right">2024-06-27</td><td>星火 V4.0</td><td>通用旗舰更新</td></tr><tr><td style="text-align:right">2025-01</td><td>Spark X1</td><td>全国产算力训练的深度推理模型</td></tr><tr><td style="text-align:right">2025-11-06</td><td>Spark X1.5</td><td>MoE 深度推理更新，支持 130 多种语言</td></tr><tr><td style="text-align:right"><strong>2026-02-09</strong></td><td><strong>Spark X2</strong></td><td><strong>当前最新推理主线；动态思考、64K 输入、128K 输出、Function Call</strong></td></tr></tbody></table><h3 id="27-sensetime-sensenova--">27. SenseTime SenseNova / 商汤日日新</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2023-04-10</td><td>SenseNova 1.0</td><td>日日新大模型体系首次发布</td></tr><tr><td style="text-align:right">2024-02</td><td>SenseNova 4.0</td><td>通用能力升级</td></tr><tr><td style="text-align:right">2024-04-23</td><td>SenseNova 5.0</td><td>600B MoE，多模态与通用能力提升</td></tr><tr><td style="text-align:right">2024-07</td><td>SenseNova 5.5 / 5o</td><td>5.5 强化语言与多模态；5o 面向流式原生多模态交互</td></tr><tr><td style="text-align:right">2025-01-14</td><td>日日新融合大模型</td><td>原生融合模态和深度推理升级</td></tr><tr><td style="text-align:right">2026-07-14</td><td>SenseNova-Vision</td><td>统一视觉理解、检测、分割、深度预测与 3D 等任务，已开放权重</td></tr><tr><td style="text-align:right"><strong>2026-07-18</strong></td><td><strong>SenseNova U1 Pro</strong></td><td><strong>交付级原生多模态旗舰；面向复杂长程任务，支持原生 8K 输出与数十轮 Agentic Generation Loop</strong></td></tr><tr><td style="text-align:right">2026-08-03</td><td>SenseNova U1.5-Lite-Preview</td><td>8B-MoT 原生统一多模态预览开源；强化 4K 图像生成、文字排版与可持续图像编辑</td></tr><tr><td style="text-align:right"><strong>2026-08-11</strong></td><td><strong>SenseNova 6.8 Flash Lite Preview</strong></td><td><strong>当前最新多模态 Agent 预览；已上线 Token Plan，支持长程任务、Sub-agent 协作与动态纠偏；正式 6.8 系列仍待发布</strong></td></tr><tr><td style="text-align:right"><strong>2026-08-21</strong></td><td><strong>SenseNova U1.5 Lite</strong></td><td><strong>由预览转正式开源；强化 3–4K 字符复杂指令遵循、原生 4K、文字与复杂布局、多参考图和精细编辑</strong></td></tr></tbody></table><h3 id="28-shanghai-ai-lab-intern--internlm">28. Shanghai AI Lab Intern / InternLM</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2023-06</td><td>InternLM</td><td>书生·浦语主线起点</td></tr><tr><td style="text-align:right">2024-01-17</td><td>InternLM2</td><td>7B / 20B 与 Agent 能力升级</td></tr><tr><td style="text-align:right">2024-07-03</td><td>InternLM2.5</td><td>推理、长上下文与多尺寸版本</td></tr><tr><td style="text-align:right">2025-01-15</td><td>InternLM3-8B-Instruct</td><td>传统 InternLM 语言主线最新公开版本</td></tr><tr><td style="text-align:right">2025-08</td><td>Intern-S1</td><td>科学多模态基础模型主线</td></tr><tr><td style="text-align:right">2026-03</td><td>Intern-S1-Pro</td><td>万亿规模科学多模态模型</td></tr><tr><td style="text-align:right"><strong>2026-07</strong></td><td><strong>Intern-S2-Preview-397B</strong></td><td><strong>当前最新公开预览；面向科学智能、通用推理和长程 Agent</strong></td></tr></tbody></table><h3 id="29-01ai-yi--">29. 01.AI Yi / 零一万物</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2023-11-05</td><td>Yi-6B / Yi-34B</td><td>双语开放模型家族</td></tr><tr><td style="text-align:right">2024-05-13</td><td>Yi-1.5</td><td>6B / 9B / 34B 更新</td></tr><tr><td style="text-align:right">2024-08</td><td>Yi-VL / Yi-Coder 更新</td><td>视觉与代码专项分支</td></tr><tr><td style="text-align:right"><strong>2024-10</strong></td><td><strong>Yi-Lightning</strong></td><td><strong>当前最新公开通用基础模型；100B MoE，偏高速度和低成本</strong></td></tr><tr><td style="text-align:right">2026-08-03</td><td>公共平台服务调整公告</td><td>停止新用户注册及充值；模型体验与 API 调用计划于 2026-09-03 24:00 停止</td></tr></tbody></table><blockquote><p>截至 2026-09-04，未核验到比 Yi-Lightning 更新的公开 Yi 基础模型；01.AI 当前重点转向 WorldWise、TrueNorth 等企业 Agent 平台与行业解决方案。</p></blockquote>
<h3 id="30-baichuan--">30. Baichuan / 百川智能</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2023-06-15</td><td>Baichuan-7B</td><td>首个开放语言模型</td></tr><tr><td style="text-align:right">2023-09-06</td><td>Baichuan 2</td><td>7B / 13B 开放模型</td></tr><tr><td style="text-align:right">2024-01-29</td><td>Baichuan 3</td><td>通用与医疗能力升级</td></tr><tr><td style="text-align:right">2024-05-22</td><td>Baichuan 4</td><td>通用、多模态与搜索 Agent</td></tr><tr><td style="text-align:right"><strong>2024-10-31</strong></td><td><strong>Baichuan4-Turbo / Baichuan4-Air</strong></td><td><strong>当前通用旗舰；Turbo 偏能力，Air 偏低成本高速 MoE</strong></td></tr><tr><td style="text-align:right">2025</td><td>Baichuan-M2 / M3</td><td>医疗推理模型主线</td></tr><tr><td style="text-align:right"><strong>2026-06</strong></td><td><strong>Baichuan-M4</strong></td><td><strong>当前最新编号模型，但属于临床级医疗 Agent，不是通用 Baichuan 5</strong></td></tr></tbody></table><h3 id="31-ibm-granite">31. IBM Granite</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2023-09</td><td>Granite 13B</td><td>IBM 企业基础模型主线</td></tr><tr><td style="text-align:right">2024-05</td><td>Granite Code</td><td>代码模型家族</td></tr><tr><td style="text-align:right">2024-10-21</td><td>Granite 3.0</td><td>Apache-2.0 企业开放模型</td></tr><tr><td style="text-align:right">2025-02</td><td>Granite 3.2</td><td>推理、视觉和工具能力扩展</td></tr><tr><td style="text-align:right">2025-10</td><td>Granite 4.0</td><td>混合 Mamba-2/Transformer 与 MoE 架构</td></tr><tr><td style="text-align:right">2026-04-29</td><td>Granite 4.1</td><td>3B/8B/30B 稠密模型，强化工具调用、指令遵循、代码和数学</td></tr><tr><td style="text-align:right"><strong>2026-08-25</strong></td><td><strong>Granite 4.2</strong></td><td><strong>当前最新语言主线；3B/8B/30B 稠密模型，加入原生逐步推理并强化 Agent、工具调用和代码，Apache-2.0</strong></td></tr><tr><td style="text-align:right">2026-08-25</td><td>Granite Speech 5.0 Turbo CTC</td><td>同期语音专项发布；470M 边缘 ASR 模型，另有 NC 版本</td></tr></tbody></table><h3 id="32-ai21-labs-jamba">32. AI21 Labs Jamba</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2024-03-28</td><td>Jamba</td><td>首个生产级 Mamba-Transformer 混合模型</td></tr><tr><td style="text-align:right">2024-08</td><td>Jamba 1.5 Mini / Large</td><td>256K 企业长上下文模型</td></tr><tr><td style="text-align:right">2025-07</td><td>Jamba 1.7</td><td>Large / Mini 更新</td></tr><tr><td style="text-align:right"><strong>2026-01-08</strong></td><td><strong>Jamba2 3B / Mini</strong></td><td><strong>当前最新代际；Apache-2.0 开放，强调企业可靠性、可控性与内存效率</strong></td></tr></tbody></table><h3 id="33-ai2-olmo">33. Ai2 OLMo</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2024-02-01</td><td>OLMo 1</td><td>数据、代码、权重和训练流程全面开放</td></tr><tr><td style="text-align:right">2024-11</td><td>OLMo 2</td><td>7B / 13B 全开放模型</td></tr><tr><td style="text-align:right">2025-03</td><td>OLMo 2 32B</td><td>大尺寸全开放升级</td></tr><tr><td style="text-align:right">2025-11-20</td><td>OLMo 3</td><td>7B / 32B Base、Think、Instruct、RL Zero 全流程发布</td></tr><tr><td style="text-align:right"><strong>2025-12-12</strong></td><td><strong>OLMo 3.1</strong></td><td><strong>当前最新；32B Think 与 32B Instruct 强化推理、工具使用和多轮对话</strong></td></tr></tbody></table><h3 id="34-liquid-ai-lfm">34. Liquid AI LFM</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2024-09</td><td>LFM-40B / 3B / 1B</td><td>Liquid Foundation Model 首代主线</td></tr><tr><td style="text-align:right">2025-01-20</td><td>LFM-7B</td><td>高效率多语言通用模型</td></tr><tr><td style="text-align:right">2025-07-10</td><td>LFM2</td><td>面向端侧部署的第二代混合架构</td></tr><tr><td style="text-align:right">2026-01-05</td><td>LFM2.5-1.2B</td><td>LFM2.5 家族起点，覆盖文本、视觉和音频</td></tr><tr><td style="text-align:right">2026-02-24</td><td>LFM2-24B-A2B</td><td>LFM2 最大能力档</td></tr><tr><td style="text-align:right">2026-05-28</td><td>LFM2.5-8B-A1B</td><td>LFM2.5 当前较强通用 MoE 档</td></tr><tr><td style="text-align:right">2026-06-25</td><td>LFM2.5-230M</td><td>超轻量端侧模型，主代际仍为 LFM2.5</td></tr><tr><td style="text-align:right"><strong>2026-08-04</strong></td><td><strong>LFM2.5-2.6B</strong></td><td><strong>当前最新通用发布；2.6B 稠密模型、约 34T 预训练 Token、128K 上下文，面向完全端侧 Agent、工具调用和多步任务</strong></td></tr><tr><td style="text-align:right"><strong>2026-08-12</strong></td><td><strong>LFM2.5-VL-3B</strong></td><td><strong>当前最新视觉语言分支；强化屏幕/UI 理解、视觉定位、函数调用和多图输入，面向端侧部署</strong></td></tr><tr><td style="text-align:right">2026-08-19 / 08-20</td><td>LFM2.5 Q4_0 / LFM2.5-DSpark</td><td>量化感知蒸馏与推理加速变体，不是新的通用代际</td></tr></tbody></table><h3 id="35-ant-group-inclusionai---lingring">35. Ant Group InclusionAI / 蚂蚁 Ling、Ring</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right">2025</td><td>Ling 1.x / Ring 1.x</td><td>蚂蚁百灵语言与推理模型主线</td></tr><tr><td style="text-align:right">2025-10</td><td>Ling 2.0 / Ring 2.0</td><td>万亿参数开放 MoE；Ling 偏通用响应，Ring 偏深度推理</td></tr><tr><td style="text-align:right">2026</td><td>Ling 2.5 / Ring 2.5</td><td>高效率 Agent 与长上下文更新</td></tr><tr><td style="text-align:right">2026-04 / 05</td><td>Ling-2.6-1T / Ring-2.6-1T</td><td>1T 级混合线性注意力 MoE 双旗舰：Ling 偏综合生成与 Agent，Ring 偏复杂推理与长程 Agent</td></tr><tr><td style="text-align:right">2026-06-22</td><td>Ling-2.6-1T-base</td><td>进一步公开基座权重，支持继续预训练、蒸馏和定制后训练</td></tr><tr><td style="text-align:right"><strong>2026-07-24</strong></td><td><strong>Ling-3.0-flash</strong></td><td><strong>当前高效生成主线；124B 总参数、5.1B 激活，原生 256K 上下文并可扩展至 1M，面向 Agent 工作流，已开放权重（MIT）</strong></td></tr><tr><td style="text-align:right"><strong>2026-08-07</strong></td><td><strong>Ling-3.0-tiny</strong></td><td><strong>当前轻量分支；7.9B 总参数、1.3B 激活，面向本地与端侧部署，已提供 API 并开放权重（MIT）</strong></td></tr><tr><td style="text-align:right"><strong>2026-09-03</strong></td><td><strong>Ling-3.0-flash-Fin</strong></td><td><strong>当前最新金融增强分支；基于 3.0-flash，124B 总参数、5.1B 激活、256K 上下文，覆盖可溯源金融检索、跨文档推理、估值与电子表格 Agent 工作流，MIT 开放权重</strong></td></tr></tbody></table><h3 id="36-humain-m3">36. HUMAIN M3</h3><table><thead><tr><th style="text-align:right">时间</th><th>版本</th><th>说明</th></tr></thead><tbody><tr><td style="text-align:right"><strong>2026-09-03</strong></td><td><strong>HUMAIN M3 (<code>humain-m3</code>)</strong></td><td><strong>沙特 HUMAIN 委托、由 MiniMax 开发的阿拉伯语前沿模型；基于 MiniMax-M3，428B 总参数、23B 激活，以超过 1T 阿拉伯语 Token 继续训练，原生支持文本、图像、视频、长程 Agent、工具与计算机使用；现为 HUMAIN Node 限量研究预览，开放权重计划中</strong></td></tr></tbody></table></div><p style="text-align:right"><a href="https://lkaros.xin/posts/default/ai#comments">看完了？说点什么呢</a></p></div>]]></description><link>https://lkaros.xin/posts/default/ai</link><guid isPermaLink="true">https://lkaros.xin/posts/default/ai</guid><dc:creator><![CDATA[Lkaros]]></dc:creator><pubDate>Fri, 14 Aug 2026 07:59:35 GMT</pubDate></item><item><title><![CDATA[关于wp里太多图片问题]]></title><description><![CDATA[<div><blockquote>该渲染由 Shiro API 生成，可能存在排版问题，最佳体验请前往：<a href="https://lkaros.xin/notes/4">https://lkaros.xin/notes/4</a></blockquote><span>在御网杯的wp中，刚点开会因为图片太多卡死，不知道为什么 擦</span><p style="text-align:right"><a href="https://lkaros.xin/notes/4#comments">看完了？说点什么呢</a></p></div>]]></description><link>https://lkaros.xin/notes/4</link><guid isPermaLink="true">https://lkaros.xin/notes/4</guid><dc:creator><![CDATA[Lkaros]]></dc:creator><pubDate>Mon, 01 Jun 2026 06:10:07 GMT</pubDate></item><item><title><![CDATA[2026御网杯WriteUp]]></title><description><![CDATA[<p>当前内容无法在 RSS 阅读器中正确渲染，请前往：<a href="https://lkaros.xin/posts/default/ywb">https://lkaros.xin/posts/default/ywb</a></p>]]></description><link>https://lkaros.xin/posts/default/ywb</link><guid isPermaLink="true">https://lkaros.xin/posts/default/ywb</guid><dc:creator><![CDATA[Lkaros]]></dc:creator><pubDate>Sun, 31 May 2026 15:44:48 GMT</pubDate></item><item><title><![CDATA[Codex SSH配置]]></title><description><![CDATA[<link rel="preload" as="image" href="https://lkaros.xin/shiro/blog/2026/05/rxmtqdo6rdihpevugv.png"/><link rel="preload" as="image" href="https://lkaros.xin/shiro/blog/2026/05/64tuxu9g2lf5lxnk6j.png"/><link rel="preload" as="image" href="https://lkaros.xin/shiro/blog/2026/05/r58s62gvchp3c09hmk.png"/><div><blockquote>该渲染由 Shiro API 生成，可能存在排版问题，最佳体验请前往：<a href="https://lkaros.xin/posts/default/1">https://lkaros.xin/posts/default/1</a></blockquote><div><h2 id="windows">Windows：</h2><p>我的虚拟机上只测试了Windows11 x64和Windows 10 x64，其他版本我没测试过应该不行，毕竟codex似乎要装在win10系统以上</p>
<h4 id="1ssh-">1.开启ssh 服务器</h4><p><img src="https://lkaros.xin/shiro/blog/2026/05/rxmtqdo6rdihpevugv.png" height="1250" width="2262"/>
<img src="https://lkaros.xin/shiro/blog/2026/05/64tuxu9g2lf5lxnk6j.png"/></p>
<h4 id="2-win10---powershell-">2.在 Win10 用 管理员 PowerShell 执行：</h4><p>开机自启与启动SSH</p><pre class="language-powershell lang-powershell"><code class="language-powershell lang-powershell">Set-Service -Name sshd -StartupType Automatic
Start-Service sshd</code></pre><p>顺便放行防火墙端口 22：</p><pre class="language-powershell lang-powershell"><code class="language-powershell lang-powershell">New-NetFirewallRule -Name sshd -DisplayName &quot;OpenSSH Server&quot; -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22</code></pre><p>检查状态：</p><pre class="language-powershell lang-powershell"><code class="language-powershell lang-powershell">Get-Service sshd</code></pre><p>看到 Running 就说明 SSH 服务已启动，并且之后会开机自启。</p><p>这时候你就可以用Codex连接你的虚拟机了，让他给你装一下codex，Linux系统安装Codex CLI</p><h1 id="">总结</h1><p><img src="https://lkaros.xin/shiro/blog/2026/05/r58s62gvchp3c09hmk.png"/></p><p>只是近期更新了这么个东西，以防找不到命令，所以写一篇水文（嘿嘿）</p></div><p style="text-align:right"><a href="https://lkaros.xin/posts/default/1#comments">看完了？说点什么呢</a></p></div>]]></description><link>https://lkaros.xin/posts/default/1</link><guid isPermaLink="true">https://lkaros.xin/posts/default/1</guid><dc:creator><![CDATA[Lkaros]]></dc:creator><pubDate>Sat, 23 May 2026 11:43:27 GMT</pubDate></item><item><title><![CDATA[第二届“云天杯”网络安全大赛部分WriteUp]]></title><description><![CDATA[<div><blockquote>该渲染由 Shiro API 生成，可能存在排版问题，最佳体验请前往：<a href="https://lkaros.xin/posts/default/ytb">https://lkaros.xin/posts/default/ytb</a></blockquote><div><h1 id="challenge">Challenge</h1><p>---</p><h2 id="">一、程序主逻辑分析</h2><p>IDA 反编译 <code>main</code> 后，可以看到程序核心逻辑如下：</p><pre class="language-c lang-c"><code class="language-c lang-c">int __fastcall main(int argc, const char **argv, const char **envp)
{
  char key;
  _QWORD *addr;
  int i;

  addr = mmap(0, 0x48u, 7, 34, -1, 0);
  if (addr == -1LL)
  {
    perror(&quot;mmap&quot;);
    return 1;
  }

  *addr = enc_shellcode;
  addr[1] = qword_404088;
  addr[2] = qword_404090;
  addr[3] = qword_404098;
  addr[4] = qword_4040A0;
  addr[5] = qword_4040A8;
  addr[6] = qword_4040B0;
  addr[7] = qword_4040B8;
  addr[8] = qword_4040C0;

  key = get_key();

  for (i = 0; i &lt;= 0x47; ++i)
    *((_BYTE *)addr + i) ^= key;

  ((void(*)())addr)();

  munmap(addr, 0x48u);
  return 0;
}</code></pre><p>程序先通过 <code>mmap</code> 申请一段可读、可写、可执行的内存，然后把 <code>enc_shellcode</code> 拷贝进去。</p><p>之后调用 <code>get_key()</code> 获取 key，并对整段 shellcode 做异或解密：</p><pre class="language-c lang-c"><code class="language-c lang-c">*((_BYTE *)addr + i) ^= key;</code></pre><p>最后直接执行解密后的 shellcode：</p><pre class="language-c lang-c"><code class="language-c lang-c">((void(*)())addr)();</code></pre><hr/><h2 id="-key-">二、第一层 key 分析</h2><p>继续查看 <code>get_key()</code>：</p><pre class="language-c lang-c"><code class="language-c lang-c">__int64 get_key()
{
  int n0x1337;
  int i;
  unsigned int n0xA3;

  n0xA3 = 0xA3;

  if (is_debugged())
    n0xA3 = 0xA2;

  n0x1337 = 0x1337;

  for (i = 0; i &lt;= 4; ++i)
    n0x1337 ^= n0xA3 &lt;&lt; i;

  return n0xA3;
}</code></pre><p>正常情况下：</p><pre class="language-c lang-c"><code class="language-c lang-c">n0xA3 = 0xA3;</code></pre><p>如果检测到调试器，则 key 会变成：</p><pre class="language-c lang-c"><code class="language-c lang-c">n0xA3 = 0xA2;</code></pre><p>因此程序存在反调试干扰。
不调试运行时，第一层 shellcode 解密 key 为：</p><pre class="language-text lang-text"><code class="language-text lang-text">0xA3</code></pre><p>所以第一层解密逻辑为：</p><pre class="language-python lang-python"><code class="language-python lang-python">
shellcode = bytes(x ^ 0xA3 for x in enc_shellcode)</code></pre><p>---</p><h2 id="-shellcode">三、提取出的 shellcode</h2><p>第一层解密后，得到如下 shellcode：</p><pre class="language-python lang-python"><code class="language-python lang-python">sc = b&quot;\xeb,^\xbf\x01\x00\x00\x00\xba\x14\x00\x00\x001\xc9\x8a\x04\x0e4Z\x88\x04\x0eH\xff\xc1H9\xd1u\xf0\xb8\x01\x00\x00\x00\x0f\x05\xb8&lt;\x00\x00\x001\xff\x0f\x05\xe8\xcf\xff\xff\xff\x03\x0e\x18!\x035/\x05\x1b(?\x05\r344?(&#x27;P&quot;</code></pre><hr/><h2 id="shellcode-">四、shellcode 反汇编</h2><p>可以使用 pwntools 将 shellcode 转成汇编：</p><pre class="language-python lang-python"><code class="language-python lang-python">from pwn import *

context.arch = &quot;amd64&quot;

sc = b&quot;\xeb,^\xbf\x01\x00\x00\x00\xba\x14\x00\x00\x001\xc9\x8a\x04\x0e4Z\x88\x04\x0eH\xff\xc1H9\xd1u\xf0\xb8\x01\x00\x00\x00\x0f\x05\xb8&lt;\x00\x00\x001\xff\x0f\x05\xe8\xcf\xff\xff\xff\x03\x0e\x18!\x035/\x05\x1b(?\x05\r344?(&#x27;P&quot;

print(disasm(sc[:0x34]))</code></pre><p>反汇编结果：</p><pre class="language-asm lang-asm"><code class="language-asm lang-asm">0:   eb 2c                   jmp    0x2e
2:   5e                      pop    rsi
3:   bf 01 00 00 00          mov    edi, 0x1
8:   ba 14 00 00 00          mov    edx, 0x14
d:   31 c9                   xor    ecx, ecx
f:   8a 04 0e                mov    al, BYTE PTR [rsi+rcx]
12:  34 5a                   xor    al, 0x5a
14:  88 04 0e                mov    BYTE PTR [rsi+rcx], al
17:  48 ff c1                inc    rcx
1a:  48 39 d1                cmp    rcx, rdx
1d:  75 f0                   jne    0xf
1f:  b8 01 00 00 00          mov    eax, 0x1
24:  0f 05                   syscall
26:  b8 3c 00 00 00          mov    eax, 0x3c
2b:  31 ff                   xor    edi, edi
2d:  0f 05                   syscall
2f:  e8 cf ff ff ff          call   0x3</code></pre><hr/><h2 id="shellcode-">五、shellcode 逻辑分析</h2><h3 id="1-jmp-call-pop-">1. jmp-call-pop 结构</h3><p>开头：</p><pre class="language-asm lang-asm"><code class="language-asm lang-asm">0: eb 2c      jmp 0x2e</code></pre><p>程序会先跳到后面的 <code>call</code> 指令：</p><pre class="language-asm lang-asm"><code class="language-asm lang-asm">2f: e8 cf ff ff ff    call 0x3</code></pre><p><code>call</code> 指令会把下一条指令的地址压入栈中，然后跳回前面的代码。</p><p>后面紧接着就是加密 flag 数据，因此 <code>call</code> 压入栈中的地址就是加密 flag 的起始地址。</p><p>跳回前面后执行：</p><pre class="language-asm lang-asm"><code class="language-asm lang-asm">2: 5e    pop rsi</code></pre><p>于是：</p><pre class="language-text lang-text"><code class="language-text lang-text">rsi = 加密 flag 数据地址</code></pre><hr/><h3 id="2--xor-">2. 第二层 XOR 解密</h3><p>核心循环如下：</p><pre class="language-asm lang-asm"><code class="language-asm lang-asm">8:   ba 14 00 00 00          mov    edx, 0x14
d:   31 c9                   xor    ecx, ecx

f:   8a 04 0e                mov    al, BYTE PTR [rsi+rcx]
12:  34 5a                   xor    al, 0x5a
14:  88 04 0e                mov    BYTE PTR [rsi+rcx], al
17:  48 ff c1                inc    rcx
1a:  48 39 d1                cmp    rcx, rdx
1d:  75 f0                   jne    0xf</code></pre><p>对应 C 伪代码：</p><pre class="language-c lang-c"><code class="language-c lang-c">for (int i = 0; i &lt; 0x14; i++)
{
    data[i] ^= 0x5A;
}</code></pre><p>这里可以看到第二层 key 来自指令：</p><pre class="language-asm lang-asm"><code class="language-asm lang-asm">34 5a    xor al, 0x5a</code></pre><p>所以第二层解密 key 是：</p><pre class="language-text lang-text"><code class="language-text lang-text">0x5A</code></pre><hr/><h3 id="3--flag">3. 输出 flag</h3><p>解密完成后，执行：</p><pre class="language-asm lang-asm"><code class="language-asm lang-asm">1f:  b8 01 00 00 00          mov    eax, 0x1
24:  0f 05                   syscall</code></pre><p>在 Linux x86_64 中：</p><pre class="language-text lang-text"><code class="language-text lang-text">rax = 1  -&gt; sys_write
rdi = 1  -&gt; stdout
rsi      -&gt; flag 地址
rdx = 0x14 -&gt; 输出长度</code></pre><p>所以这部分等价于：</p><pre class="language-c lang-c"><code class="language-c lang-c">write(1, flag, 0x14);</code></pre><p>之后执行：</p><pre class="language-asm lang-asm"><code class="language-asm lang-asm">26:  b8 3c 00 00 00          mov    eax, 0x3c
2b:  31 ff                   xor    edi, edi
2d:  0f 05                   syscall</code></pre><p>这对应：</p><pre class="language-c lang-c"><code class="language-c lang-c">exit(0);</code></pre><hr/><h2 id="-flag-">六、加密 flag 数据</h2><p>shellcode 偏移 <code>0x34</code> 之后是加密数据：</p><pre class="language-text lang-text"><code class="language-text lang-text">03 0e 18 21 03 35 2f 05 1b 28 3f 05 0d 33 34 34 3f 28 27 50</code></pre><p>长度为：</p><pre class="language-text lang-text"><code class="language-text lang-text">0x14 = 20</code></pre><p>解密方式：</p><pre class="language-python lang-python"><code class="language-python lang-python">flag = bytes(x ^ 0x5A for x in enc_flag)</code></pre><p>其中最后一个字节：</p><pre class="language-text lang-text"><code class="language-text lang-text">0x50 ^ 0x5A = 0x0A</code></pre><p>也就是换行符。</p><hr/><h2 id="-exp">七、完整 exp</h2><pre class="language-python lang-python"><code class="language-python lang-python"># 从程序中提取出的 enc_shellcode
exp = bytes.fromhex(
    &quot;488ffd1ca2a3a3a319b7a3a3a3926a29a7ad97f92ba7adeb5c62eb9a72d6531b&quot;
    &quot;a2a3a3a3aca61b9fa3a3a3925caca64b6c5c5c5ca0adbb82a0968ca6b88b9&quot;
    &quot;ca6ae9097979c8b84f3&quot;
)

# 第一层：main 中 get_key 正常返回 0xA3
shellcode = bytes(x ^ 0xA3 for x in exp)

# 第二层：shellcode 中 xor al, 0x5a
key2 = 0x5A

# shellcode 偏移 0x34 开始是加密 flag
enc_flag = shellcode[0x34:0x34 + 0x14]

flag = bytes(x ^ key2 for x in enc_flag)

print(flag.decode().strip())</code></pre><p>运行结果：</p><pre class="language-text lang-text"><code class="language-text lang-text">YTB{You_Are_Winner}</code></pre><h1 id="re-mid">re-mid</h1><h2 id="solution">Solution</h2><h3 id="step-1-">Step 1: 定位校验函数</h3><p>在 <code>main</code> 中可以看到程序逻辑很直接：</p><pre class="language-c lang-c"><code class="language-c lang-c">printf(&quot;Enter the flag: &quot;);
fgets(s, 100, stdin);
s[strcspn(s, &quot;\n&quot;)] = 0;
if ( check_flag(s) )
    puts(&quot;Correct! The flag is yours.&quot;);
else
    puts(&quot;Wrong flag. Try again.&quot;);</code></pre><p>继续分析 <code>check_flag</code>，首先判断输入长度：</p><pre class="language-c lang-c"><code class="language-c lang-c">n = strlen(input);
if ( n != 23 )
    return 0;</code></pre><p>随后对输入执行 4 步变换：</p><pre class="language-c lang-c"><code class="language-c lang-c">buf[i] = input[22 - i];
buf[i] = (buf[i] + i) &amp; 0xff;
buf[i] ^= 0xAA;
buf[i] = (69 * buf[i] + 51) &amp; 0xff;</code></pre><p>最后将变换后的 23 字节与栈上的目标常量比较。</p><h3 id="step-2-">Step 2: 提取目标字节</h3><p>IDA 中对应的目标常量写入如下：</p><pre class="language-asm lang-asm"><code class="language-asm lang-asm">mov rax, 43FED8123A20DB26h
mov rdx, 0BB8585E6123A7DD2h
mov [rbp+var_50], rax
mov qword ptr [rbp+var_48], rdx
mov rax, 4CC21FE7B9590FBBh
mov qword ptr [rbp+var_48+7], rax</code></pre><p>由于 x86-64 是小端序，并且第三次写入从 <code>var_48 + 7</code> 开始，会覆盖前一段的最后 1 字节，因此目标字节为：</p><pre class="language-text lang-text"><code class="language-text lang-text">26 db 20 3a 12 d8 fe 43 d2 7d 3a 12 e6 85 85 bb 0f 59 b9 e7 1f c2 4c</code></pre><h3 id="step-3--flag">Step 3: 逆向恢复 flag</h3><p>变换中乘以 <code>69</code> 是在模 256 下进行的，<code>69</code> 与 <code>256</code> 互素，逆元为 <code>141</code>。因此可以逐字节逆运算：</p><pre class="language-python lang-python"><code class="language-python lang-python">expected = bytearray(23)
expected[0:8] = (0x43FED8123A20DB26).to_bytes(8, &quot;little&quot;)
expected[8:16] = (0xBB8585E6123A7DD2).to_bytes(8, &quot;little&quot;)
expected[15:23] = (0x4CC21FE7B9590FBB).to_bytes(8, &quot;little&quot;)

inv69 = pow(69, -1, 256)

reversed_input = []
for i, c in enumerate(expected):
    x = ((c - 51) * inv69) &amp; 0xff
    x ^= 0xAA
    x = (x - i) &amp; 0xff
    reversed_input.append(x)

flag = bytes(reversed_input[::-1]).decode()
print(flag)</code></pre><p>运行结果：</p><pre class="language-text lang-text"><code class="language-text lang-text">YTB{R3v3rs1ng_1s_Fun!!}</code></pre></div><p style="text-align:right"><a href="https://lkaros.xin/posts/default/ytb#comments">看完了？说点什么呢</a></p></div>]]></description><link>https://lkaros.xin/posts/default/ytb</link><guid isPermaLink="true">https://lkaros.xin/posts/default/ytb</guid><dc:creator><![CDATA[Lkaros]]></dc:creator><pubDate>Fri, 22 May 2026 10:00:10 GMT</pubDate></item><item><title><![CDATA[2026年“星芒杯”高校联盟网络安全挑战赛 WriteUp]]></title><description><![CDATA[<div><blockquote>该渲染由 Shiro API 生成，可能存在排版问题，最佳体验请前往：<a href="https://lkaros.xin/posts/default/smb">https://lkaros.xin/posts/default/smb</a></blockquote><div><p>具体 WriteUp 如下：</p><div style="width:100%;height:85vh;min-height:640px;border:1px solid rgba(127,127,127,.25);border-radius:8px;overflow:hidden;background:#fff"><iframe src="https://lkaros.xin/api/v2/objects/file/roa3ayxkt017slk2hv.pdf#toolbar=1&amp;navpanes=0&amp;scrollbar=1" title="星芒杯 WriteUp PDF" style="width:100%;height:100%;border:0" loading="lazy"></iframe></div><a href="https://lkaros.xin/api/v2/objects/file/roa3ayxkt017slk2hv.pdf" target="_blank" rel="noreferrer">如果 PDF 没有显示，点这里打开或下载</a></div><p style="text-align:right"><a href="https://lkaros.xin/posts/default/smb#comments">看完了？说点什么呢</a></p></div>]]></description><link>https://lkaros.xin/posts/default/smb</link><guid isPermaLink="true">https://lkaros.xin/posts/default/smb</guid><dc:creator><![CDATA[Lkaros]]></dc:creator><pubDate>Sun, 26 Apr 2026 06:36:56 GMT</pubDate></item><item><title><![CDATA[2026蓝桥杯 Reverse WriteUp]]></title><description><![CDATA[<div><blockquote>该渲染由 Shiro API 生成，可能存在排版问题，最佳体验请前往：<a href="https://lkaros.xin/posts/default/lqb">https://lkaros.xin/posts/default/lqb</a></blockquote><div><h2 id="">题目信息</h2><p>附件包含两个文件：</p><pre class="language-bash lang-bash"><code class="language-bash lang-bash">$ file veil_gate panel.dat
veil_gate: ELF 64-bit LSB pie executable, x86-64, dynamically linked, stripped
panel.dat: data</code></pre><p>运行程序会读取当前目录下的 <code>panel.dat</code>，然后从标准输入读取 flag：</p><pre class="language-bash lang-bash"><code class="language-bash lang-bash">$ ./veil_gate
xxx
no</code></pre><p>正确输入时输出：</p><pre class="language-bash lang-bash"><code class="language-bash lang-bash">ok</code></pre><p>最终 flag：</p><pre class="language-text lang-text"><code class="language-text lang-text">flag{9d7a228ca5825bc15cd60bee0bb6d585}</code></pre><hr/><h2 id="1-">1. 初步分析</h2><p><code>strings</code> 可以看到几个关键信息：</p><pre class="language-text lang-text"><code class="language-text lang-text">TPK2
panel.dat
load failed
read failed
no
ok</code></pre><p>说明程序核心逻辑是：</p><ol start="1"><li>打开 <code>panel.dat</code></li><li>检查文件头 <code>TPK2</code></li><li>从 <code>panel.dat</code> 中读取若干参数和查表数据</li><li>读取用户输入</li><li>对输入做变换并与 <code>panel.dat</code> 内的目标值比较</li></ol><p><code>panel.dat</code> 大小为 <code>420</code> 字节，开头如下：</p><pre class="language-text lang-text"><code class="language-text lang-text">54 50 4b 32 7c fa 7c 1b ...</code></pre><p>前 4 字节是魔数：</p><pre class="language-text lang-text"><code class="language-text lang-text">TPK2</code></pre><hr/><h2 id="2-paneldat-">2. panel.dat 格式解析</h2><p>逆向 <code>veil_gate</code> 后可以看出，<code>panel.dat</code> 结构大致如下：</p><table><thead><tr><th style="text-align:right">Offset</th><th style="text-align:right">Size</th><th>含义</th></tr></thead><tbody><tr><td style="text-align:right"><code>0x00</code></td><td style="text-align:right">4</td><td>magic，固定为 <code>TPK2</code></td></tr><tr><td style="text-align:right"><code>0x04</code></td><td style="text-align:right">4</td><td>加密后的 header</td></tr><tr><td style="text-align:right"><code>0x08</code></td><td style="text-align:right">24</td><td>key material</td></tr><tr><td style="text-align:right"><code>0x20</code></td><td style="text-align:right">128</td><td>table A</td></tr><tr><td style="text-align:right"><code>0xa0</code></td><td style="text-align:right">128</td><td>table B</td></tr><tr><td style="text-align:right"><code>0x120</code></td><td style="text-align:right">64</td><td>table C</td></tr><tr><td style="text-align:right"><code>0x160</code></td><td style="text-align:right">64</td><td>target</td></tr><tr><td style="text-align:right"><code>0x1a0</code></td><td style="text-align:right">4</td><td>seed</td></tr></tbody></table><p>header 会与常量 <code>0x3d6ca55a</code> 异或：</p><pre class="language-python lang-python"><code class="language-python lang-python">header = enc_header ^ 0x3d6ca55a</code></pre><p>解析得到：</p><pre class="language-text lang-text"><code class="language-text lang-text">header = 26 5f 10 26</code></pre><p>即：</p><pre class="language-text lang-text"><code class="language-text lang-text">header[0] = 0x26
header[1] = 0x5f
key_len   = 0x10 = 16
flag_len  = 0x26 = 38
seed      = 0x7a6b5c4d</code></pre><p>所以 flag 长度应为 <code>38</code>。</p><hr/><h2 id="3-">3. 关键逻辑分析</h2><p>程序会先根据 <code>panel.dat</code> 生成一个 16 字节 key：</p><pre class="language-python lang-python"><code class="language-python lang-python">cur = header[0]

for i in range(24):
    key[i] = key_material[i] ^ cur ^ ((i &amp; 3) * 7 + 0x33)
    cur = (cur + 0x0b) &amp; 0xff</code></pre><p>其中真正使用的是前 <code>16</code> 字节：</p><pre class="language-text lang-text"><code class="language-text lang-text">3c a9 0c 1e 1a 93 68 f8 74 18 bd 95 4c 6c bc d7</code></pre><p>随后程序构造一个 256 字节的 S-Box：</p><pre class="language-python lang-python"><code class="language-python lang-python">for i in range(128):
    sbox[2 * i]     = table_a[i] ^ key[i % key_len]
    sbox[2 * i + 1] = table_b[i] ^ key[(i + 5) % key_len]</code></pre><p>还会从 <code>table C</code> 派生一个 64 字节数组：</p><pre class="language-python lang-python"><code class="language-python lang-python">idx_table[i] = table_c[i] ^ (i + 0x5d) ^ key[(3 * i + 1) % key_len]</code></pre><p>前 38 个值刚好是 <code>0 ~ 37</code> 的一个置换，用来决定每一轮处理 flag 的哪个字符：</p><pre class="language-text lang-text"><code class="language-text lang-text">[2, 27, 34, 17, 8, 26, 21, 7, 35, 13, 16, 12, 24, 14, 32, 3,
 33, 15, 20, 22, 5, 0, 1, 4, 18, 31, 19, 28, 36, 30, 29, 10,
 9, 37, 25, 11, 23, 6]</code></pre><p>程序里有两条校验路径。第一条会尝试用 <code>seed == 0x7a6b5c4d</code> 的路径比较，但不满足后会进入第二条 fallback 路径。真正的 flag 是通过第二条路径还原出来的。</p><hr/><h2 id="4-">4. 逆向求解脚本</h2><p>下面脚本直接解析 <code>panel.dat</code> 并反推 flag：</p><pre class="language-python lang-python"><code class="language-python lang-python">from pathlib import Path
import struct

data = Path(&quot;panel.dat&quot;).read_bytes()

assert data[:4] == b&quot;TPK2&quot;

def rol8(x, r):
    r &amp;= 7
    return ((x &lt;&lt; r) | (x &gt;&gt; (8 - r))) &amp; 0xff

def rol16(x, r):
    r &amp;= 15
    return ((x &lt;&lt; r) | (x &gt;&gt; (16 - r))) &amp; 0xffff

# parse header
enc_header = struct.unpack(&quot;&lt;I&quot;, data[4:8])[0]
header = (enc_header ^ 0x3d6ca55a).to_bytes(4, &quot;little&quot;)

h0 = header[0]
h1 = header[1]
key_len = header[2]
flag_len = header[3]

key_material = data[8:32]
table_a = data[32:160]
table_b = data[160:288]
table_c = data[288:352]
target = data[352:416]
seed = struct.unpack(&quot;&lt;I&quot;, data[416:420])[0]

# derive key
cur = h0
key = []

for i, b in enumerate(key_material):
    key.append(b ^ cur ^ ((i &amp; 3) * 7 + 0x33))
    cur = (cur + 0x0b) &amp; 0xff

key = key[:key_len]

# derive sbox
sbox = []

for i in range(128):
    sbox.append(table_a[i] ^ key[i % key_len])
    sbox.append(table_b[i] ^ key[(i + 5) % key_len])

# derive index table
idx_table = []

for i in range(64):
    v = table_c[i] ^ ((i + 0x5d) &amp; 0xff) ^ key[(3 * i + 1) % key_len]
    idx_table.append(v)

# fallback checker inversion
edi = rol16(int.from_bytes(header[:2], &quot;little&quot;), 8)
r8 = 3
r9 = 1

flag = [None] * flag_len

for i in range(flag_len):
    rem = (edi + i + idx_table[i]) % key_len

    possible_tmp = []

    for tmp in range(256):
        a = key[rem] ^ tmp
        cl = (rol8(edi &amp; 0xff, i) + i) &amp; 0xff
        cl = (cl + sbox[a]) &amp; 0xff

        if cl == target[i]:
            possible_tmp.append(tmp)

    pos = idx_table[i] % flag_len
    possible_char = []

    for tmp in possible_tmp:
        for ch in range(32, 127):
            c = rol8(ch, 4) if (i &amp; 1) == 0 else ch
            calc = ((c ^ key[(pos + i) % key_len]) + rol8(h0, i)) &amp; 0xff

            if calc == tmp:
                possible_char.append(ch)

    assert len(set(possible_char)) == 1
    flag[pos] = possible_char[0]

    # update state with known target byte
    out = target[i]

    edi = (edi * 0x83) &amp; 0xffffffff
    edi ^= idx_table[r8 % flag_len]
    r8 += 7

    edi = (key[r9 % key_len] + ((out ^ edi) &amp; 0xffffffff)) &amp; 0xffffffff
    r9 += 5

flag = bytes(flag).decode()
print(flag)</code></pre><p>运行结果：</p><pre class="language-bash lang-bash"><code class="language-bash lang-bash">$ python3 solve.py
flag{9d7a228ca5825bc15cd60bee0bb6d585}</code></pre></div><p style="text-align:right"><a href="https://lkaros.xin/posts/default/lqb#comments">看完了？说点什么呢</a></p></div>]]></description><link>https://lkaros.xin/posts/default/lqb</link><guid isPermaLink="true">https://lkaros.xin/posts/default/lqb</guid><dc:creator><![CDATA[Lkaros]]></dc:creator><pubDate>Sat, 25 Apr 2026 08:15:01 GMT</pubDate></item><item><title><![CDATA[NCTF 2026 Reverse Write Up]]></title><description><![CDATA[<link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c40c8c5a3.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c4385d45f.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c437cc223.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c437d759b.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c4384e413.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c43803cb6.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c439a9b9a.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c439ec184.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c4398fae3.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c43a28c28.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c43a32ab7.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c43b2bc5d.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c43b106a1.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c43bac3e5.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c43b7d4ad.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c43b88cf4.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c43c797c9.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c43cabb26.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c43d19d08.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c43d19fb0.png"/><link rel="preload" as="image" href="https://free.picui.cn/free/2026/04/23/69e9c43d3ba4f.png"/><div><blockquote>该渲染由 Shiro API 生成，可能存在排版问题，最佳体验请前往：<a href="https://lkaros.xin/posts/default/NCTF%202026%20Reverse%20Write%20Up">https://lkaros.xin/posts/default/NCTF%202026%20Reverse%20Write%20Up</a></blockquote><div><h2 id="reverse"><strong><em>Reverse</em></strong></h2><h3 id="hook-my-secret"><strong><em>Hook My Secret</em></strong></h3><p><em>题目一共有3个Stage</em></p><p><strong><em>Stage1:</em></strong></p><p><img src="https://free.picui.cn/free/2026/04/23/69e9c40c8c5a3.png" alt="1" height="732" width="1280"/></p><p> 九格图案锁，随便滑动一下，出现错误，提示Pattern incorrect</p><p><img src="https://free.picui.cn/free/2026/04/23/69e9c4385d45f.png" alt="2"/></p><p> 在Jadx中找到关键字符串，发现sha-256后的4a6bc34076c8eef0f9eac59ad30d99bb4f56ecea4b0bfab92540fb655ac680f3</p><p> 所以可以直接爆破出手势</p><p> 爆破exp:</p><pre class="language-Python lang-Python"><code class="language-Python lang-Python">import hashlib

TARGET = &quot;4a6bc34076c8eef0f9eac59ad30d99bb4f56ecea4b0bfab92540fb655ac680f3&quot;

# Android pattern 跳点规则
SKIP = {
    (0, 2): 1, (2, 0): 1,
    (0, 6): 3, (6, 0): 3,
    (2, 8): 5, (8, 2): 5,
    (6, 8): 7, (8, 6): 7,
    (0, 8): 4, (8, 0): 4,
    (2, 6): 4, (6, 2): 4,
    (1, 7): 4, (7, 1): 4,
    (3, 5): 4, (5, 3): 4,
}

def valid_next(path, nxt):
    if nxt in path:
        return False
    if not path:
        return True
    a = path[-1]
    if (a, nxt) in SKIP:
        return SKIP[(a, nxt)] in path
    return True

def dfs(path, max_len=9):
    if 4 &lt;= len(path) &lt;= max_len:
        s = &quot;,&quot;.join(map(str, path))
        if hashlib.sha256(s.encode()).hexdigest() == TARGET:
            return path[:]

    if len(path) == max_len:
        return None

    for nxt in range(9):
        if valid_next(path, nxt):
            path.append(nxt)
            r = dfs(path, max_len)
            if r:
                return r
            path.pop()
    return None

def main():
    for start in range(9):
        ans = dfs([start])
        if ans:
            print(&quot;[+] Found pattern:&quot;, ans)
            print(&quot;[+] String form:&quot;, &quot;,&quot;.join(map(str, ans)))
            print(&quot;[+] 1-based view:&quot;, [x + 1 for x in ans])
            return
    print(&quot;[-] Not found&quot;)

if __name__ == &quot;__main__&quot;:
    main()</code></pre><p><img src="https://free.picui.cn/free/2026/04/23/69e9c437cc223.png" alt="img"/></p><p> 也就是</p><p><img src="https://free.picui.cn/free/2026/04/23/69e9c437d759b.png" alt="img"/></p><p> 成功来到</p><p><strong><em>Stage2<em>*</em></em></strong>:<em>*</em></p><p><img src="https://free.picui.cn/free/2026/04/23/69e9c4384e413.png" alt="img"/></p><p> 看到Native Check 直接把so扔进IDA 得到一段很长的代码：</p><pre class="language-Python lang-Python"><code class="language-Python lang-Python">int __cdecl Java_com_nctf_hookmysecret_nativebridge_NativeBridge_encryptStage2(int a1, int a2, int a3)
{
  int v3; // eax
  int v4; // edi
  const char *s; // esi
  size_t v6; // eax
  size_t n; // ecx
  char *v8; // edi
  int v9; // ebp
  size_t v10; // edi
  char *v11; // eax
  size_t v12; // esi
  int v13; // ecx
  int v14; // edi
  char *v15; // esi
  int v16; // ebp
  int v18; // esi
  size_t v19; // eax
  bool v20; // sf
  size_t v21; // esi
  _BYTE *v22; // ebp
  char v23; // cl
  size_t v24; // edi
  size_t v25; // eax
  char *v26; // eax
  char v27; // cl
  int v28; // esi
  unsigned int v29; // ecx
  signed int v30; // ebp
  int v31; // edx
  unsigned int v32; // edi
  void *v33; // ebp
  int v34; // eax
  unsigned int v35; // edx
  char *v36; // ecx
  void *v37; // eax
  _BYTE *v38; // esi
  char *v39; // eax
  unsigned int v40; // ebx
  unsigned int v41; // eax
  int v42; // eax
  int v43; // edx
  __m128i v44; // xmm0
  int v45; // ebx
  int v46; // ebx
  char v47; // al
  _BYTE *v48; // edx
  char v49; // al
  char *v50; // edi
  unsigned int v51; // esi
  char *v52; // ebp
  char *v53; // ecx
  unsigned int v54; // eax
  int v55; // edx
  int v56; // ebx
  __m128i v57; // xmm2
  unsigned int v58; // edx
  int v59; // esi
  const char *src; // [esp+4h] [ebp-88h]
  char *v62; // [esp+18h] [ebp-74h]
  void *v63; // [esp+18h] [ebp-74h]
  char *v64; // [esp+1Ch] [ebp-70h]
  bool v65; // [esp+1Ch] [ebp-70h]
  char v66; // [esp+1Ch] [ebp-70h]
  int v67; // [esp+1Ch] [ebp-70h]
  unsigned int v68; // [esp+20h] [ebp-6Ch]
  unsigned int v69; // [esp+24h] [ebp-68h]
  int v70; // [esp+28h] [ebp-64h]
  char v71; // [esp+28h] [ebp-64h]
  int v72; // [esp+28h] [ebp-64h]
  unsigned int v73; // [esp+2Ch] [ebp-60h]
  size_t v74; // [esp+34h] [ebp-58h]
  char v75; // [esp+38h] [ebp-54h]
  int v76; // [esp+3Ch] [ebp-50h]
  unsigned int v77; // [esp+40h] [ebp-4Ch]
  _BYTE *v78; // [esp+44h] [ebp-48h]
  _DWORD v79[4]; // [esp+48h] [ebp-44h] BYREF
  int dest; // [esp+58h] [ebp-34h] BYREF
  _BYTE *v81; // [esp+5Ch] [ebp-30h]
  void *v82; // [esp+60h] [ebp-2Ch]
  __int16 v83; // [esp+68h] [ebp-24h] BYREF
  size_t v84; // [esp+6Ch] [ebp-20h]
  void *v85; // [esp+70h] [ebp-1Ch]
  unsigned int v86; // [esp+78h] [ebp-14h]

  v86 = __readgsdword(0x14u);
  v3 = (*(*a1 + 676))(a1, a3, 0);
  v4 = v3;
  s = &amp;unk_C5F3;
  if ( v3 )
    s = v3;
  v6 = strlen(s);
  if ( v6 &gt;= 0xFFFFFFF0 )
    sub_1E270(&amp;dest);
  n = v6;
  v70 = v4;
  if ( v6 &gt; 0xA )
  {
    v9 = v6 | 0xF;
    v10 = v6;
    v11 = operator new((v6 | 0xF) + 1);
    n = v10;
    v8 = v11;
    v82 = v11;
    dest = v9 + 2;
    v81 = n;
  }
  else
  {
    LOBYTE(dest) = 2 * v6;
    v8 = &amp;dest + 1;
  }
  src = s;
  v12 = n;
  memmove(v8, src, n);
  v8[v12] = 0;
  if ( (dest &amp; 1) != 0 )
  {
    v64 = v82;
    v13 = v81;
    if ( !v81 )
      goto LABEL_19;
  }
  else
  {
    v13 = dest &gt;&gt; 1;
    v64 = &amp;dest + 1;
    if ( !v13 )
      goto LABEL_19;
  }
  v14 = 0;
  v15 = &amp;off_476CC - 238561;
  while ( 1 )
  {
    v16 = v13;
    if ( !memchr(v15, v64[v14], 4u) )
      break;
    ++v14;
    v13 = v16;
    if ( v16 == v14 )
      goto LABEL_19;
  }
  if ( v14 == -1 )
  {
LABEL_19:
    v83 = 0;
    v18 = v70;
    if ( (dest &amp; 1) == 0 )
      goto LABEL_21;
    goto LABEL_20;
  }
  while ( v16 )
  {
    if ( !memchr(v15, v64[--v16], 4u) )
      goto LABEL_97;
  }
  v16 = -1;
LABEL_97:
  std::string::basic_string(&amp;v83, &amp;dest, v14, v16 - v14 + 1);
  v18 = v70;
  if ( (dest &amp; 1) != 0 )
LABEL_20:
    operator delete(v82);
LABEL_21:
  if ( v18 )
    (*(*a1 + 680))(a1, a3, v18);
  dest = 0;
  v81 = nullptr;
  v82 = nullptr;
  v65 = (v83 &amp; 1) == 0;
  if ( (v83 &amp; 1) != 0 )
  {
    v19 = v84;
    v20 = (v84 &amp; 0x80000000) != 0;
    if ( v84 )
    {
LABEL_25:
      if ( v20 )
        sub_1E330(&amp;dest);
      v21 = v19;
      v22 = operator new(v19);
      dest = v22;
      v81 = v22;
      v82 = &amp;v22[v21];
      v23 = 81;
      v24 = 0;
      while ( 1 )
      {
        v26 = &amp;v83 + 1;
        if ( !v65 )
          v26 = v85;
        v66 = v26[v24];
        v71 = v23;
        v27 = __ROL1__(v66 ^ v23 ^ (13 * v24 + 66), 3) + v24 + 7 * v23;
        if ( v22 == v82 )
          break;
        *v22++ = v27;
        v81 = v22;
LABEL_68:
        v23 = v71 + v66 + (v24++ ^ v27);
        v65 = (v83 &amp; 1) == 0;
        if ( (v83 &amp; 1) != 0 )
          v25 = v84;
        else
          v25 = v83 &gt;&gt; 1;
        if ( v24 &gt;= v25 )
        {
          v50 = dest;
          goto LABEL_74;
        }
      }
      v75 = v27;
      v28 = dest;
      v62 = v22;
      v29 = &amp;v22[-dest];
      v30 = &amp;v22[-dest + 1];
      if ( v30 &lt; 0 )
        sub_1E330(&amp;dest);
      if ( 2 * v29 &gt; v30 )
        v30 = 2 * v29;
      v73 = v29;
      if ( v29 &gt;= 0x3FFFFFFF )
        v30 = 0x7FFFFFFF;
      v74 = v24;
      if ( v30 )
        v31 = operator new(v30);
      else
        v31 = 0;
      v32 = v31 + v73;
      v33 = (v31 + v30);
      *(v31 + v73) = v75;
      if ( v62 == v28 )
      {
        dest = v31 + v73;
        v81 = (v32 + 1);
        v82 = v33;
        v37 = v62;
        v38 = (v32 + 1);
        v24 = v74;
        goto LABEL_66;
      }
      v69 = v31 + v73;
      v78 = (v32 + 1);
      v34 = ~v28;
      v76 = v31;
      if ( v73 &gt;= 8 )
      {
        v39 = &amp;v62[v34];
        v24 = v74;
        if ( v31 + v73 - 1 - v39 &gt; v31 + v73 - 1 || v62 - 1 - v39 &gt; (v62 - 1) )
        {
          v35 = v31 + v73;
        }
        else
        {
          v35 = v31 + v73;
          if ( (v28 - v76) &gt;= 0x20 )
          {
            v40 = 0;
            v41 = v73;
            if ( v73 &gt;= 0x20 )
            {
              v40 = v73 &amp; 0xFFFFFFE0;
              v42 = v76 + v73 - 16;
              v43 = 0;
              do
              {
                v44 = _mm_loadu_si128(&amp;v62[v43 - 32]);
                *(v42 + v43) = _mm_loadu_si128(&amp;v62[v43 - 16]);
                *(v42 + v43 - 16) = v44;
                v43 -= 32;
              }
              while ( -(v73 &amp; 0xFFFFFFE0) != v43 );
              v34 = ~v28;
              if ( v73 == v40 )
                goto LABEL_65;
              if ( (v73 &amp; 0x18) == 0 )
              {
                v36 = &amp;v62[-v40];
                v35 = v69 - v40;
                goto LABEL_60;
              }
              v41 = v73;
              v35 = v69;
            }
            v35 -= v41 &amp; 0xFFFFFFF8;
            v77 = v41 &amp; 0xFFFFFFF8;
            v36 = &amp;v62[-(v41 &amp; 0xFFFFFFF8)];
            v45 = -v40;
            do
            {
              *(v69 + v45 - 8) = *&amp;v62[v45 - 8];
              v45 -= 8;
            }
            while ( -(v41 &amp; 0xFFFFFFF8) != v45 );
            v34 = ~v28;
            if ( v73 == v77 )
              goto LABEL_65;
            goto LABEL_60;
          }
        }
        v36 = v62;
        v34 = ~v28;
      }
      else
      {
        v35 = v31 + v73;
        v36 = v62;
        v24 = v74;
      }
LABEL_60:
      v68 = &amp;v36[v34];
      v46 = (v36 - v28) &amp; 7;
      if ( ((v36 - v28) &amp; 7) != 0 )
      {
        do
        {
          v47 = *--v36;
          *--v35 = v47;
          --v46;
        }
        while ( v46 );
      }
      if ( v68 &gt;= 7 )
      {
        v48 = (v35 - 1);
        do
        {
          *v48 = *(v36 - 1);
          *(v48 - 1) = *(v36 - 2);
          *(v48 - 2) = *(v36 - 3);
          *(v48 - 3) = *(v36 - 4);
          *(v48 - 4) = *(v36 - 5);
          *(v48 - 5) = *(v36 - 6);
          *(v48 - 6) = *(v36 - 7);
          v49 = *(v36 - 8);
          v36 -= 8;
          *(v48 - 7) = v49;
          v48 -= 8;
        }
        while ( v36 != v28 );
      }
LABEL_65:
      v37 = dest;
      dest = v76;
      v38 = v78;
      v81 = v78;
      v82 = v33;
      if ( !v37 )
      {
LABEL_67:
        v22 = v38;
        v27 = v75;
        goto LABEL_68;
      }
LABEL_66:
      operator delete(v37);
      goto LABEL_67;
    }
  }
  else
  {
    v19 = v83 &gt;&gt; 1;
    v20 = 0;
    if ( v19 )
      goto LABEL_25;
  }
  v50 = nullptr;
  v22 = nullptr;
LABEL_74:
  v51 = v22 - v50;
  v67 = (*(*a1 + 716))(a1, v22 - v50);
  if ( v67 )
  {
    memset(v79, 0, 12);
    if ( v22 == v50 )
    {
      v52 = nullptr;
      v53 = nullptr;
    }
    else
    {
      v72 = v22 - v50;
      v63 = v22;
      if ( v51 &gt;= 0x40000000 )
        sub_1E350(v79);
      v52 = operator new(4 * v51);
      v53 = v52;
      v54 = v50;
      if ( v51 &lt; 0x14 )
        goto LABEL_83;
      if ( v52 &lt; &amp;v50[v51] )
      {
        v53 = v52;
        v54 = v50;
        if ( v50 &lt; &amp;v52[4 * v72] )
          goto LABEL_83;
      }
      v55 = v51 &amp; 0x3FFFFFF8;
      v53 = &amp;v52[4 * (v51 &amp; 0xFFFFFFF8)];
      v54 = &amp;v50[v51 &amp; 0xFFFFFFF8];
      v56 = 0;
      do
      {
        v57 = _mm_unpacklo_epi16(_mm_unpacklo_epi8(_mm_cvtsi32_si128(*&amp;v50[v56 + 4]), 0LL), 0LL);
        *&amp;v52[4 * v56] = _mm_unpacklo_epi16(_mm_unpacklo_epi8(_mm_cvtsi32_si128(*&amp;v50[v56]), 0LL), 0LL);
        *&amp;v52[4 * v56 + 16] = v57;
        v56 += 8;
      }
      while ( v55 != v56 );
      if ( v51 != v55 )
      {
LABEL_83:
        v58 = v63 + ~v54;
        v59 = (v63 - v54) &amp; 7;
        if ( ((v63 - v54) &amp; 7) != 0 )
        {
          do
          {
            *v53 = *v54++;
            v53 += 4;
            --v59;
          }
          while ( v59 );
        }
        if ( v58 &gt;= 7 )
        {
          do
          {
            *v53 = *v54;
            *(v53 + 1) = *(v54 + 1);
            *(v53 + 2) = *(v54 + 2);
            *(v53 + 3) = *(v54 + 3);
            *(v53 + 4) = *(v54 + 4);
            *(v53 + 5) = *(v54 + 5);
            *(v53 + 6) = *(v54 + 6);
            *(v53 + 7) = *(v54 + 7);
            v54 += 8;
            v53 += 32;
          }
          while ( v54 != v63 );
        }
      }
    }
    (*(*a1 + 844))(a1, v67, 0, (v53 - v52) &gt;&gt; 2, v52);
    if ( v52 )
      operator delete(v52);
  }
  if ( v50 )
  {
    v81 = v50;
    operator delete(v50);
  }
  if ( (v83 &amp; 1) != 0 )
    operator delete(v85);
  return v67;
}</code></pre>丢给AI分析，可以得到这样的逻辑<pre class="language-Python lang-Python"><code class="language-Python lang-Python">def encrypt_stage2(s: str):
    s = s.strip()
    seed = 0x51
    out = []

    for i, ch in enumerate(s.encode()):
        x = ((13 * i + 0x42) ^ seed ^ ch) &amp; 0xff
        x = ((x &lt;&lt; 3) &amp; 0xff) | (x &gt;&gt; 5)   # rol 3
        y = (7 * seed + i + x) &amp; 0xff
        out.append(y)
        seed = (ch + seed + (y ^ i)) &amp; 0xff

    return out</code></pre>再找到目标数组[250, 113, 87, 185, 6, 125, 167, 156, 4, 0, 229, 239, 119, 155, 187, 95]
<p> <strong><em>Stage2 exp:</em></strong></p><pre class="language-Python lang-Python"><code class="language-Python lang-Python">TARGET = [250, 113, 87, 185, 6, 125, 167, 156, 4, 0, 229, 239, 119, 155, 187, 95]

def encrypt_stage2(s: str):
    s = s.strip()
    seed = 0x51
    out = []

    for i, ch in enumerate(s.encode()):
        x = ((13 * i + 0x42) ^ seed ^ ch) &amp; 0xff
        x = ((x &lt;&lt; 3) &amp; 0xff) | (x &gt;&gt; 5)   # rol 3
        y = (7 * seed + i + x) &amp; 0xff
        out.append(y)
        seed = (ch + seed + (y ^ i)) &amp; 0xff

    return out

def recover_key(target):
    seed = 0x51
    res = []

    for i, want in enumerate(target):
        found = None
        for ch in range(256):
            x = ((13 * i + 0x42) ^ seed ^ ch) &amp; 0xff
            x = ((x &lt;&lt; 3) &amp; 0xff) | (x &gt;&gt; 5)
            y = (7 * seed + i + x) &amp; 0xff
            if y == want:
                next_seed = (ch + seed + (y ^ i)) &amp; 0xff
                found = (ch, next_seed)
                break

        if found is None:
            raise ValueError(f&quot;char {i} not found&quot;)

        ch, seed = found
        res.append(ch)

    return bytes(res).decode()

def main():
    key = recover_key(TARGET)
    print(&quot;[+] Recovered key:&quot;, key)
    print(&quot;[+] Verify:&quot;, encrypt_stage2(key))
    print(&quot;[+] Match:&quot;, encrypt_stage2(key) == TARGET)

if __name__ == &quot;__main__&quot;:
    main()</code></pre><p><img src="https://free.picui.cn/free/2026/04/23/69e9c43803cb6.png" alt="img"/></p><p> 所以Key为<strong>k7Xm2Pq9Wv4N8bRt</strong></p><p><strong><em>Stage3<em>*</em></em></strong>:<em>*</em></p><p><img src="https://free.picui.cn/free/2026/04/23/69e9c439a9b9a.png" alt="img"/></p><p><img src="https://free.picui.cn/free/2026/04/23/69e9c439ec184.png" alt="img"/></p><p> 发现stage3使用了AES加密，密文是jSaMnziall55Tdr+IZc7EKUNm/N4uwrZw1QFPw6DuirfYFJZg88j6GKLhWfNljAB</p><p> 密钥是stage2的key所以还差个IV</p><p><img src="https://free.picui.cn/free/2026/04/23/69e9c4398fae3.png" alt="img"/></p><p> 通过对其方法进行追踪可以看到:</p><p><img src="https://free.picui.cn/free/2026/04/23/69e9c43a28c28.png" alt="img"/></p><p> IV已有，解密即可</p><p><img src="https://free.picui.cn/free/2026/04/23/69e9c43a32ab7.png" alt="img"/></p><p><img src="https://free.picui.cn/free/2026/04/23/69e9c43b2bc5d.png" alt="img"/></p><h3 id="no-my-bank"><strong><em>No My Bank!</em></strong></h3><p>一开始 <code>GDRE Tools</code> 直接恢复不完整，看起来像是资源和脚本被加密了。实际情况分成两层:</p><ol start="1"><li><code>NoMyBank.exe</code> 内嵌了一个加密的 Godot PCK。</li><li><p>根目录下还有一个额外加密的 <code>libextension.dll</code>，这是 GDExtension，真正的校验逻辑在里面。</p><p>先解第一层：</p></li></ol><p>使用 <code>KeyDot</code> 从 <code>NoMyBank.exe</code> 中提取到 PCK 解密 key:</p><p>D34BFF62613FDD2861F6D5942C5E99A53EF3E90ADBE9091B4686859D5B7DAB22</p><p>再用GDRE进行解密</p><p><img src="https://free.picui.cn/free/2026/04/23/69e9c43b106a1.png" alt="img"/></p><p><img src="https://free.picui.cn/free/2026/04/23/69e9c43bac3e5.png" alt="img"/></p><p>核心逻辑:</p><pre class="language-Plain lang-Plain"><code class="language-Plain lang-Plain">func _on_button_pressed():
    var flag_checker = get_checker_from_loaded_dll_node()
    if flag_checker:
        flag_checker.show_flag_dialog()
        queue_free()</code></pre><p>说明点击金库弹窗按钮后，会去调用 GDExtension 节点 <code>dllchecker</code> 的方法 <code>show_flag_dialog()</code>。</p><p>这说明真正的校验和 flag 展示都在原生扩展里，不在 GDScript 里。</p><p>这时题目打包的目录下还有一个dll没有用上</p><p>运行程序后，扩展会被自动解密并落到临时目录:</p><p>C:\Users\hao\AppData\Local\Temp_libextension.dll</p><p>这是正常的dll</p><p><img src="https://free.picui.cn/free/2026/04/23/69e9c43b7d4ad.png" alt="img"/></p><p><img src="https://free.picui.cn/free/2026/04/23/69e9c43b88cf4.png" alt="img"/></p><p>往上找到:</p><p><img src="https://free.picui.cn/free/2026/04/23/69e9c43c797c9.png" alt="img"/></p><p>检查长度是否为40</p><pre class="language-Python lang-Python"><code class="language-Python lang-Python">_DWORD *__fastcall sub_1800024A0(__int64 a1, __int64 a2, _DWORD *a3)
{
  int i; // [rsp+20h] [rbp-58h]
  int j; // [rsp+24h] [rbp-54h]
  unsigned int v6; // [rsp+28h] [rbp-50h]
  unsigned int v7; // [rsp+2Ch] [rbp-4Ch]
  int m; // [rsp+30h] [rbp-48h]
  int v9; // [rsp+34h] [rbp-44h]
  int k; // [rsp+38h] [rbp-40h]
  _DWORD v11[10]; // [rsp+40h] [rbp-38h] BYREF

  memset(v11, 0, sizeof(v11));
  for ( i = 0; i &lt; 5; ++i )
  {
    v11[2 * i] = sub_1800023A0((8 * i + a1));
    v11[2 * i + 1] = sub_1800023A0((8 * i + 4 + a1));
  }
  for ( j = 0; j &lt; 10; j += 2 )
  {
    v9 = 0;
    v6 = v11[j];
    v7 = v11[j + 1];
    for ( k = 0; k &lt; 32; ++k )
    {
      v9 += 0x114514;
      v6 += (unk_18014F49C + (v7 &gt;&gt; 5)) ^ (v9 + v7) ^ (unk_18014F498 + 16 * v7);
      v7 += (unk_18014F4A4 + (v6 &gt;&gt; 5)) ^ (v9 + v6) ^ (unk_18014F4A0 + 16 * v6);
    }
    v11[j] = v6;
    v11[j + 1] = v7;
  }
  for ( m = 0; m &lt; 10; ++m )
    sub_180002410(v11[m], 4 * m + a2);
  *a3 = 40;
  return a3;
}</code></pre><p><strong>题目采用三层处理：</strong></p><ol start="1"><li><p>明文经自定义 TEA-like 算法加密，参数为：</p><p>delta = 0x114514</p><p>key = [0x12345678, 0x9ABCDEF0, 0x13579BDF, 0x2468ACE0]</p></li><li><p>TEA 输出再经自定义 Base64 编码，字符表为</p><p>ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba9876543210+/</p><p>且 4 个 6-bit 输出顺序为 [b,a,d,c]</p></li><li><p>最后再做逐字节异或 + rol2 混淆，seed 初始值为 0x114514</p><p><strong>exp:</strong></p></li></ol><pre class="language-Python lang-Python"><code class="language-Python lang-Python">CIPH_HEX = &quot;2bf7675e7c98ed6dd18cef57bb33227eb21f345b366c2bafbb5b12d63c0a4527846c47ab2f75783e88892d7acd5cf6fa3673ff6ed34c1c75&quot;

def ror2(x: int) -&gt; int:
    return ((x &gt;&gt; 2) | ((x &lt;&lt; 6) &amp; 0xff)) &amp; 0xff

def dec_stage1(cipher_hex: str) -&gt; bytes:
    data = bytes.fromhex(cipher_hex)
    seed = 0x114514
    out = bytearray()

    for i, c in enumerate(data):
        k = (seed &gt;&gt; ((i * 8) % 24)) &amp; 0xff
        b = ror2(c ^ 0xBA) ^ k
        out.append(b)
        seed = seed * 0x1010193 + 0x12345678

    return bytes(out)

CUSTOM_B64_TABLE = &quot;ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba9876543210+/&quot;

def custom_b64_decode(s: str) -&gt; bytes:
    mp = {ch: i for i, ch in enumerate(CUSTOM_B64_TABLE)}
    out = bytearray()

    for i in range(0, len(s), 4):
        quad = s[i:i+4]
        pad = quad.count(&#x27;=&#x27;)

        q = []
        for ch in quad:
            if ch == &#x27;=&#x27;:
                q.append(None)
            else:
                q.append(mp[ch])

        # 输出顺序是 [b, a, d, c]
        # 还原为标准顺序 [a, b, c, d]
        a = q[1] if q[1] is not None else 0
        b = q[0] if q[0] is not None else 0
        d = q[2] if q[2] is not None else 0
        c = q[3] if q[3] is not None else 0

        n = (a &lt;&lt; 18) | (b &lt;&lt; 12) | (c &lt;&lt; 6) | d

        if pad == 0:
            out.extend([(n &gt;&gt; 16) &amp; 0xff, (n &gt;&gt; 8) &amp; 0xff, n &amp; 0xff])
        elif pad == 1:
            out.extend([(n &gt;&gt; 16) &amp; 0xff, (n &gt;&gt; 8) &amp; 0xff])
        elif pad == 2:
            out.append((n &gt;&gt; 16) &amp; 0xff)
        else:
            raise ValueError(&quot;invalid padding&quot;)

    return bytes(out)

def main():
    s1 = dec_stage1(CIPH_HEX)
    print(&quot;[+] stage1 result:&quot;, s1.decode())

    s2 = custom_b64_decode(s1.decode())
    print(&quot;[+] stage2 bytes hex:&quot;, s2.hex())
    print(&quot;[+] flag:&quot;, s2.decode())

if __name__ == &quot;__main__&quot;:
    main()</code></pre><p><img src="https://free.picui.cn/free/2026/04/23/69e9c43cabb26.png" alt="img"/></p><p><img src="https://free.picui.cn/free/2026/04/23/69e9c43d19d08.png" alt="img"/></p><p>最后还有一个小变换</p><p>最终flag：NCTF{Y0u_d3s3rv3_th1s_g1ft_b1bd7c719cfc}</p><h3 id="pay-for-2048"><strong><em>Pay For 2048</em></strong></h3><p>题目是从一个基于 Electron 的 2048 游戏。直接拿asar解包，拿到源文件</p><p><img src="https://free.picui.cn/free/2026/04/23/69e9c43d19fb0.png"/></p><pre class="language-JavaScript lang-JavaScript"><code class="language-JavaScript lang-JavaScript">class GameController {
    constructor({ gameManager, uiManager, licenseService }) {
        this.gameManager = gameManager;
        this.uiManager = uiManager;
        this.licenseService = licenseService;
        this.keyMap = {
            ArrowLeft: 0,
            ArrowDown: 1,
            ArrowRight: 2,
            ArrowUp: 3
        };
        this.state = this.#createInitialState();
    }

    async bootstrap() {
        this.uiManager.setBanner(&quot;Loading WASM core...&quot;);
        await this.licenseService.init();
        this.#bindEvents();
        this.#setPhase(&quot;PLAYING_FREE&quot;, &quot;WASM core ready. Reach 256 to request the license.&quot;);
        this.#syncView();
    }

    restart() {
        this.gameManager.reset();
        this.state = this.#createInitialState();
        this.uiManager.hideLicenseModal();
        this.uiManager.hideResult();
        this.#setPhase(&quot;PLAYING_FREE&quot;, &quot;Fresh board. Reach 256 to trigger the license gate.&quot;);
        this.#syncView();
    }

    async submitLicense() {
        const key = this.uiManager.getLicenseKey();
        const context = this.#collectContext();
        this.state.busy = true;
        this.uiManager.setLicenseBusy(true);
        this.uiManager.setBanner(&quot;Verifying license...&quot;);

        try {
            const result = await this.licenseService.verifyKey(key, context);
            if (!result.ok) {
                this.state.busy = false;
                this.uiManager.setLicenseBusy(false);
                this.uiManager.showLicenseModal(result.message);
                return;
            }

            this.state.activated = true;
            this.state.paused = false;
            this.state.busy = false;
            this.state.licenseKey = key;
            this.state.sessionToken = result.data.sessionToken;
            this.uiManager.setLicenseBusy(false);
            this.uiManager.hideLicenseModal();
            this.#setPhase(&quot;PLAYING_PRO&quot;, &quot;License accepted. 2048 final verification is now unlocked.&quot;);
            this.#syncView();
        } catch (error) {
            this.state.busy = false;
            this.uiManager.setLicenseBusy(false);
            this.uiManager.showLicenseModal(error.message || &quot;License verification failed.&quot;);
        }
    }

    async #unlockFlag() {
        try {
            const result = await this.licenseService.unlockFlag(this.state.licenseKey, this.#collectContext());
            this.state.busy = false;

            if (!result.ok) {
                this.state.paused = false;
                this.#setPhase(&quot;FAIL&quot;, result.message);
                this.#syncView();
                return;
            }

            this.state.gameOver = true;
            this.#setPhase(&quot;SUCCESS&quot;, &quot;Final verification passed.&quot;);
            this.uiManager.showResult({
                title: &quot;Flag Released&quot;,
                message: &quot;WASM validation passed and the encrypted payload was released.&quot;,
                flag: result.data.flag
            });
            this.#syncView();
        } catch (error) {
            this.state.busy = false;
            this.state.paused = false;
            this.#setPhase(&quot;FAIL&quot;, error.message || &quot;Final verification failed.&quot;);
            this.#syncView();
        }
    }

    #bindEvents() {
        window.addEventListener(&quot;keydown&quot;, (event) =&gt; {
            void this.#onKeydown(event);
        });
        this.uiManager.authButton.addEventListener(&quot;click&quot;, () =&gt; {
            void this.submitLicense();
        });
        this.uiManager.licenseInput.addEventListener(&quot;keydown&quot;, (event) =&gt; {
            if (event.key === &quot;Enter&quot;) {
                event.preventDefault();
                void this.submitLicense();
            }
        });
        this.uiManager.restartButton.addEventListener(&quot;click&quot;, () =&gt; this.restart());
        this.uiManager.resultCloseButton.addEventListener(&quot;click&quot;, () =&gt; {
            this.uiManager.hideResult();
            if (!this.state.gameOver) {
                this.state.paused = false;
                this.#syncView();
            }
        });
    }

    async #onKeydown(event) {
        const direction = this.keyMap[event.key];
        if (direction === undefined || this.state.paused || this.state.busy || this.state.gameOver) {
            return;
        }

        const moveResult = this.gameManager.move(direction);
        if (!moveResult.moved) {
            return;
        }

        this.gameManager.addRandomTile();
        this.#syncView();

        if (!this.state.reached256 &amp;&amp; moveResult.maxTile &gt;= 256 &amp;&amp; !this.state.activated) {
            this.state.reached256 = true;
            this.state.paused = true;
            this.#setPhase(&quot;WAIT_LICENSE&quot;, &quot;Reached 256. Enter the key to continue.&quot;);
            this.uiManager.clearLicenseInput();
            this.uiManager.showLicenseModal();
            this.#syncView();
            return;
        }

        if (!this.state.reached2048 &amp;&amp; this.state.activated &amp;&amp; moveResult.maxTile &gt;= 2048) {
            this.state.reached2048 = true;
            this.state.paused = true;
            this.state.busy = true;
            this.#setPhase(&quot;VERIFYING_FINAL&quot;, &quot;2048 reached. Verifying final state inside WASM...&quot;);
            this.#syncView();
            await this.#unlockFlag();
            return;
        }

        if (!this.gameManager.hasMovesAvailable()) {
            this.state.gameOver = true;
            this.state.paused = true;
            this.#setPhase(&quot;FAIL&quot;, &quot;No moves left. Restart to try another run.&quot;);
            this.uiManager.showResult({
                title: &quot;Game Over&quot;,
                message: &quot;棋盘已无可用移动，请重新开始。&quot;
            });
        }
    }

    #collectContext() {
        const snapshot = this.gameManager.getStateSnapshot();
        return {
            score: snapshot.score,
            steps: snapshot.steps,
            maxTile: snapshot.maxTile,
            board: snapshot.board,
            sessionToken: this.state.sessionToken
        };
    }

    #syncView() {
        const snapshot = this.gameManager.getStateSnapshot();
        this.uiManager.render({
            ...snapshot,
            phase: this.state.phase
        });
    }

    #setPhase(phase, message) {
        this.state.phase = phase;
        this.uiManager.setBanner(message);
    }

    #createInitialState() {
        return {
            activated: false,
            paused: false,
            reached256: false,
            reached2048: false,
            gameOver: false,
            busy: false,
            phase: &quot;INIT&quot;,
            licenseKey: &quot;&quot;,
            sessionToken: &quot;&quot;
        };
    }
}

module.exports = {
    GameController
};</code></pre><p>在<code>game-controller.js</code> 里可以看到：合成到 <code>256</code> 时会弹出授权框 , 输入 key 后调用 <code>verifyLicense()</code>, 成功后继续游戏 , 合成到 <code>2048</code> 时调用 <code>unlockFlag()</code>。</p><p>将 <code>wasm_core.wasm</code> 转成 <code>wat</code> 后，可以看到这些关键符号：</p><p> <code>normalize_key</code></p><p> <code>verify_license_impl</code></p><p> <code>unlock_flag_impl</code></p><p> <code>build_session_token</code></p><p>还能直接看到一些关键字符串：</p><p> <code>license format must match NCTF-XXXX-XXXX-XXXX</code></p><p> <code>reach 256 before requesting activation</code></p><p> <code>reach 2048 before requesting the final unlock</code></p><p> <code>arcade::unlock-seed</code></p><p> <code>NCTF{decrypt_failed}</code></p><p>从这些我可以知道:  key 格式固定为 <code>NCTF-XXXX-XXXX-XXXX</code> , 真 flag 不是明文存放，而是经过解密.</p><p>解密会用到 <code>arcade::unlock-seed</code></p><p>我分析 verify_license,<strong><em><code>verify_license_impl</code></em></strong> 的逻辑可以还原为：</p><p> 检查 <code>maxTile &gt;= 256</code></p><p> 校验 key 格式</p><p> 调用 <code>normalize_key</code></p><p> 对规范化后的 12 字符串做哈希</p><p> 判断哈希结果是否等于常量 <code>-57161169</code></p><pre class=""><code class="">normalize_key` 的作用是把：`NCTF-ABCD-EFGH-IJKL`变成：`ABCDEFGHIJKL</code></pre><p>也就是去掉前缀和横杠，只保留后面的 12 个字符。</p><p>WASM 中的哈希大致形式如下：</p><pre class="language-Python lang-Python"><code class="language-Python lang-Python">h = 4951
for i, ch in enumerate(norm):
    c = 17881 if i % 2 == 0 else 40503
    h = (((ch + c) * (i + 11)) ^ rol32(h, 3)) + ((ch &lt;&lt; (i % 5)) ^ CONST)</code></pre><p>由于字符集被限制在大写字母和数字，可以直接把这 12 个字符，交给 Z3 去解。</p><p>先能解到一个碰撞 key：  <code>NCTF-HPOB-XXGC-5PBA</code></p><p>它确实可以通过 <code>verify_license</code>，但 <code>unlock_flag</code> 返回的不是正常 flag.</p><p>分析 unlock_flag , <code>unlock_flag_impl</code> 的关键逻辑如下：</p><p> 检查 <code>maxTile &gt;= 2048</code></p><p> 根据当前上下文重建 <code>sessionToken</code></p><p> 比较传入的 <code>sessionToken</code> 是否一致</p><p> 再次 <code>normalize_key</code></p><p><em>构造 key material：</em></p><p>normalized_key + &quot;|arcade::unlock-seed&quot;</p><p>用这个 key material 循环异或解密一段 42 字节密文</p><p>可以还原出解密公式：</p><pre class="language-Plain lang-Plain"><code class="language-Plain lang-Plain">km = (normalized_key + &quot;|arcade::unlock-seed&quot;).encode()
flag = bytes(
    enc[i] ^ ((29 * i + 17) &amp; 0xff) ^ km[i % len(km)]
    for i in range(42)
)</code></pre><p><em>这里最关键的是：</em></p><p><em>后 20 字节</em> <em><code>|arcade::unlock-seed</code></em> <em>是已知常量</em> <em>,</em> <em>所以 flag 的第</em> <em><code>12..31</code></em> <em>个字符可以直接解出来</em></p><p><em>这一段解出来后得到：</em></p><p><em><code>6-c4f2-4dbb-b270-f5d</code></em></p><p><em>联立约束求真正 key</em></p><p><em>此时我们已经有约束：</em></p><p><em>必须满足</em> <em><code>verify_license</code></em> <em>的哈希校验</em></p><p><em>把这些条件一起丢给 Z3，最终可以得到唯一有效的 normalized key：</em></p><p><em><code>RU57W45M2048</code></em></p><p><em>所以完整 key 为：</em></p><p><em><code>NCTF-RU57-W45M-2048</code></em></p><p><strong>exp:</strong></p><pre class="language-Python lang-Python"><code class="language-Python lang-Python">from z3 import BitVec, BitVecVal, Or, RotateLeft, Solver


TARGET = (-57161169) &amp; 0xFFFFFFFF
ALNUM = [ord(c) for c in &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&quot;]
HEXLOW = [ord(c) for c in &quot;0123456789abcdef&quot;]
ENC = [
    13, 56, 42, 25, 169, 244, 236, 247, 250, 16, 53, 94,
    39, 198, 182, 147, 230, 168, 83, 54, 11, 101, 131, 237,
    196, 183, 95, 61, 99, 89, 39, 148, 134, 255, 231, 15,
    66, 20, 95, 5, 200, 251,
]


def solve_normalized_key() -&gt; str:
    solver = Solver()
    xs = [BitVec(f&quot;x{i}&quot;, 32) for i in range(12)]

    for x in xs:
        solver.add(Or(*[x == v for v in ALNUM]))

    # From the known plaintext prefix/suffix of NCTF{...}
    known = {
        0: ord(&quot;R&quot;),
        1: ord(&quot;U&quot;),
        2: ord(&quot;5&quot;),
        3: ord(&quot;7&quot;),
        4: ord(&quot;W&quot;),
        9: ord(&quot;0&quot;),
    }
    for idx, value in known.items():
        solver.add(xs[idx] == value)

    # verify_license hash logic
    h = BitVecVal(4951, 32)
    for i, x in enumerate(xs):
        c = 40503 if (i &amp; 1) else 17881
        term1 = BitVecVal(c, 32) + x
        term2 = term1 * BitVecVal(i + 11, 32)
        term3 = RotateLeft(h, 3)
        term4 = (x &lt;&lt; (i % 5)) ^ BitVecVal((-1515890086) &amp; 0xFFFFFFFF, 32)
        h = (term2 ^ term3) + term4
    solver.add(h == BitVecVal(TARGET, 32))

    # Force the unknown plaintext positions to stay lowercase hex
    for i in range(5, 12):
        plain = BitVecVal(ENC[i] ^ ((i * 29 + 17) &amp; 0xFF), 32) ^ xs[i]
        solver.add(Or(*[plain == v for v in HEXLOW]))

    for pos in range(32, 41):
        key_idx = pos - 32
        plain = BitVecVal(ENC[pos] ^ ((pos * 29 + 17) &amp; 0xFF), 32) ^ xs[key_idx]
        solver.add(Or(*[plain == v for v in HEXLOW]))

    assert solver.check().r == 1
    model = solver.model()
    return &quot;&quot;.join(chr(model[x].as_long()) for x in xs)


def decrypt_flag(normalized_key: str) -&gt; str:
    km = (normalized_key + &quot;|arcade::unlock-seed&quot;).encode()
    out = []
    for i, value in enumerate(ENC):
        out.append(value ^ ((i * 29 + 17) &amp; 0xFF) ^ km[i % len(km)])
    return bytes(out).decode()


if __name__ == &quot;__main__&quot;:
    normalized = solve_normalized_key()
    full_key = f&quot;NCTF-{normalized[:4]}-{normalized[4:8]}-{normalized[8:12]}&quot;
    flag = decrypt_flag(normalized)

    print(&quot;Normalized Key:&quot;, normalized)
    print(&quot;License Key:&quot;, full_key)
    print(&quot;Flag:&quot;, flag)</code></pre><p><img src="https://free.picui.cn/free/2026/04/23/69e9c43d3ba4f.png" alt="img"/></p><h3 id="vm-encryptor">VM Encryptor</h3><p>题目给了两个文件</p><p> <code>vm-encryptor.exe</code></p><p> <code>code.bin</code></p><ul><li>题目本质是一个<strong>自定义虚拟机（VM）解释执行题</strong></li></ul><p>进一步分析可知，输入校验流程共分为：</p><p> 按 3 字节分组，进行 24-bit 旋转/XOR 变换</p><p> 对结果做 Base64 编码</p><p> 对编码结果逐字节异或 <code>0x63</code></p><p> 与字节码中的固定 56 字节常量比较</p><p>在code.bin处 <code>0x109d</code> 有 密文：</p><pre class="language-Plain lang-Plain"><code class="language-Plain lang-Plain">const = bytes.fromhex(
    &quot;275a0b080a3a090d30314c37023a120e542a4c302c3211270631563712264c37&quot;
    &quot;28325b375500481a0201112716004c372407113401365b27&quot;
)</code></pre><p>在 <code>0x10e3</code> 能看到标准 Base64 表：</p><p>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/</p><p>VM指令回复</p><p>把 VM 跳表恢复出来后，这题实际用到的指令并不多。最关键的几条如下：</p><table><thead><tr><th>opcode</th><th>语义</th></tr></thead><tbody><tr><td>0x00</td><td>jmp imm32</td></tr><tr><td>0x01</td><td>jz imm32</td></tr><tr><td>0x02</td><td>jnz imm32</td></tr><tr><td>0x03</td><td>push8 imm8</td></tr><tr><td>0x04</td><td>push32 imm32</td></tr><tr><td>0x05</td><td>load8 [addr]</td></tr><tr><td>0x06</td><td>load32 [addr]</td></tr><tr><td>0x07</td><td>pop</td></tr><tr><td>0x08</td><td>store8 [addr] = val</td></tr><tr><td>0x09</td><td>store32 [addr] = val</td></tr><tr><td>0x0a</td><td>add</td></tr><tr><td>0x0b</td><td>sub</td></tr><tr><td>0x0c</td><td>mul</td></tr><tr><td>0x0d</td><td>div</td></tr><tr><td>0x0e</td><td>mod</td></tr><tr><td>0x0f</td><td>and</td></tr><tr><td>0x10</td><td>or</td></tr><tr><td>0x11</td><td>not</td></tr><tr><td>0x12</td><td>xor</td></tr><tr><td>0x13</td><td>shl</td></tr><tr><td>0x14</td><td>shr</td></tr><tr><td>0x15 / 0x16</td><td>eq</td></tr><tr><td>0x17</td><td>ne</td></tr><tr><td>0x18</td><td>lt</td></tr><tr><td>0x19</td><td>gt</td></tr><tr><td>0x1a</td><td>le</td></tr><tr><td>0x1b</td><td>ge</td></tr><tr><td>0x1c</td><td>dup</td></tr><tr><td>0x1d</td><td>swap</td></tr><tr><td>0x1e</td><td>call imm32</td></tr><tr><td>0x1f</td><td>ret</td></tr><tr><td>0x20</td><td>puts(addr)</td></tr><tr><td>0xff</td><td>halt</td></tr></tbody></table><p><strong><em>还原<em>*</em></em></strong>:<em>*</em></p><p>先把最终常量逆掉：</p><pre class="language-Plain lang-Plain"><code class="language-Plain lang-Plain">stage1 = bytes(x ^ 0x63 for x in const)
print(stage1.decode())</code></pre><p>得到：</p><p>D9hkiYjnSR/TaYqm7I/SOQrDeR5TqE/TKQ8T6c+yabrDuc/TGdrWbU8D</p><p>对这串做 Base64 解码：</p><pre class="language-Plain lang-Plain"><code class="language-Plain lang-Plain">import base64
raw = base64.b64decode(stage1)
print(raw.hex())</code></pre><p>得到 42 字节：</p><p>0fd8648988e7491fd3698aa6ec8fd2390ac3791e53a84fd3290f13e9cfb269bac3b9cfd319dad66d4f03</p><p>继续结合 VM 字节码，可以看到它反复出现：</p><p> <code>0xffffff</code></p><p> <code>0x55757d</code></p><p> 多次位移/组合</p><p> 最后查 Base64 表</p><p>把这段逻辑还原后，每 3 字节块的正向变换是：</p><pre class="language-Plain lang-Plain"><code class="language-Plain lang-Plain">x = block24
x = rol24(x, 5)
x ^= 0x55757d
x = rol24(x, 11)
x ^= 0x55757d
x = rol24(x, 20)
x ^= 0x55757d</code></pre><p>然后把这个 24-bit 结果做 Base64 编码。</p><p>因此逆过程就是：</p><pre class="language-Plain lang-Plain"><code class="language-Plain lang-Plain">x = encoded_block
x = ror24(x ^ 0x55757d, 20)
x = ror24(x ^ 0x55757d, 11)
x = ror24(x ^ 0x55757d, 5)</code></pre><p>恢复出原始 3 字节。</p><p>exp:</p><pre class="language-Python lang-Python"><code class="language-Python lang-Python">import base64

const = bytes.fromhex(
    &quot;275a0b080a3a090d30314c37023a120e542a4c302c3211270631563712264c37&quot;
    &quot;28325b375500481a0201112716004c372407113401365b27&quot;
)

def ror24(x, n):
    n %= 24
    return ((x &gt;&gt; n) | (x &lt;&lt; (24 - n))) &amp; 0xffffff

key = 0x55757d

# Step 1: 逆掉最后一层 xor 0x63
stage1 = bytes(b ^ 0x63 for b in const)
print(&quot;[+] stage1 =&quot;, stage1.decode())

# Step 2: Base64 解码
raw = base64.b64decode(stage1)
print(&quot;[+] raw =&quot;, raw.hex())

# Step 3: 逐 3 字节逆 24-bit 变换
flag = bytearray()
for i in range(0, len(raw), 3):
    x = int.from_bytes(raw[i:i+3], &quot;big&quot;)
    x = ror24(x ^ key, 20)
    x = ror24(x ^ key, 11)
    x = ror24(x ^ key, 5)
    flag += x.to_bytes(3, &quot;big&quot;)

print(&quot;[+] flag =&quot;, flag.decode())


[+] stage1 = D9hkiYjnSR/TaYqm7I/SOQrDeR5TqE/TKQ8T6c+yabrDuc/TGdrWbU8D
[+] raw = 0fd8648988e7491fd3698aa6ec8fd2390ac3791e53a84fd3290f13e9cfb269bac3b9cfd319dad66d4f03
[+] flag = NCTF{1578be15-ad09-4859-9193-5d52585eb485}</code></pre><h3 id=""><strong>鸡爪流高手</strong></h3><p>这题表面上看像一个五子棋小游戏，在服务端业务逻辑里：</p><p> <em>服务维护一个玩家排行榜，玩家通过和机器人下五子棋获得或失去分数。</em></p><p> <em>分数结算时，玩家和对手走了两套不同的更新函数。</em></p><p> <em>玩家使用的那套更新函数存在 bug，可以把分数打成负数。</em></p><p> <em>负分写入 SQLite 时又触发了有符号/无符号处理错误，最终把</em> <em><code>-1</code></em> <em>写成了</em> <em><code>4294967295</code>*</em>。*</p><p> <em>一旦自己的分数变成</em> <em><code>4294967295</code>*</em>，就会直接冲到排行榜第一，随后即可调用取 flag 接口。*</p><p>所以这题的本质利用链是：</p><pre class="language-Plain lang-Plain"><code class="language-Plain lang-Plain">错误的 Elo 结算
-&gt; 得到负分
-&gt; 负分被错误地零扩展写库
-&gt; 分数变成 4294967295
-&gt; rank = 1
-&gt; 拿 flag</code></pre><p>我分析协议:</p><p>逆向 <code>protocol_read_packet</code> 和 <code>protocol_write_response</code> 后可以得到通信格式：</p><pre class="language-Plain lang-Plain"><code class="language-Plain lang-Plain">4 bytes  magic   = &quot;GAME&quot;
4 bytes  len     = big-endian，总长度
1 byte   cmd     = 命令号
N bytes  payload = 命令参数</code></pre><p>服务端返回包格式相同。</p><p>命令号</p><p>根据 <code>handler_handle_packet</code> 的分发表，可以恢复出命令映射：</p><p> 取 flag</p><p> 查询当前分数和排名</p><p> 查询附近排行榜</p><p> reset 当前挑战状态</p><p> 随机匹配一个对手并开始对局</p><p> 查看当前棋盘</p><p> 落子，payload 形如 <code>x,y</code></p><p> 在空棋盘上相当于取消对局，在非空棋盘上相当于认输结算</p><p><strong><em>分析<em>*</em></em></strong>数据库与排行榜逻辑<strong><em></em></strong>:<em>*</em></p><p>服务端内置 SQLite，核心表结构非常简单：</p><pre class="language-Plain lang-Plain"><code class="language-Plain lang-Plain">CREATE TABLE IF NOT EXISTS players (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL UNIQUE,
    score INTEGER NOT NULL
);</code></pre><p>reset 之后，玩家初始分数固定为 <code>50</code>。服务里还会维护若干机器人。</p><p><code>db_pick_default_opponent</code> 对应的 SQL 是：</p><pre class="language-Plain lang-Plain"><code class="language-Plain lang-Plain">SELECT id, name, score
FROM players
WHERE name != ? AND score &lt;= 50
ORDER BY RANDOM()
LIMIT 1;</code></pre><p>也就是说，<code>cmd=5</code> 只能随机匹配 <code>score &lt;= 50</code> 的对手。</p><p><strong><em>reset 的隐藏重点<em>*</em></em></strong>:<em>*</em></p><p><code>db_reset_challenge_state</code> 不是简单地清空当前状态，它会把若干固定机器人分数重置为一组常量：</p><p>[50, 40, 30, 20, 20, 10, 2000000]</p><p>这意味着：</p><p> 服务里天然存在一个 <code>2000000</code> 分的榜一机器人</p><p> 只要能把自己分数打成 <code>4294967295</code>，就会直接无敌</p><p><strong><em>分析<em>*</em></em></strong>五子棋逻辑与可用赢法<strong><em></em></strong>:<em>*</em></p><p>棋盘大小为 <code>15 x 15</code>，玩家执黑，AI 执白。</p><p>实战中，第 3 步需要对 <code>10</code> 分机器人稳定拿下一盘。脚本中使用的固定赢法如下：</p><pre class="language-Plain lang-Plain"><code class="language-Plain lang-Plain">(7,7)
(6,7)
(8,7)
(9,7)
(10,7)</code></pre><p>这条线是可行的。一次本地复现时 AI 的应对为：</p><pre class="language-Plain lang-Plain"><code class="language-Plain lang-Plain">7,7   -&gt; AI=6,6
6,7   -&gt; AI=5,5
8,7   -&gt; AI=4,4
9,7   -&gt; AI=5,7
10,7  -&gt; Win</code></pre><p>最后形成横向五连，成功获胜。</p><p><strong><em>开始定位<em>*</em></em></strong>漏洞点<strong><em></em></strong>:<em>*</em></p><p><em>结算流程*</em>:*</p><p><code>settle_game</code> 是整道题最关键的函数。</p><p>我分析它做了两件事：</p><p> 读取玩家当前分数、对手当前分数</p><p> 分别调用两个不同的分数更新函数</p><p>那么伪代码可以概括为：</p><pre class="language-Plain lang-Plain"><code class="language-Plain lang-Plain">player_new = score_apply_buggy_update(player_score, opponent_score, result);
update_db(player_name, player_new);

opponent_new = score_apply_update(opponent_score, player_score, 1.0 - result);
update_db(opponent_name, opponent_new);</code></pre><p>这里最关键的一点是：</p><p> 玩家：<code>score_apply_buggy_update</code></p><p> 对手：<code>score_apply_update</code></p><p>也就是只有玩家这边走了带 bug 的更新逻辑。</p><p>正常版本 <code>score_apply_update</code></p><p>正常版本大致等价于：</p><pre class="language-Plain lang-Plain"><code class="language-Plain lang-Plain">delta = lround(32 * (actual - expected));
new_score = current + delta;
if (new_score &lt; 0) new_score = 0;
return new_score;</code></pre><p>它会把分数下界截断到 <code>0</code>，因此不会出现负数。</p><p>Buggy 版本 <code>score_apply_buggy_update</code></p><p>玩家侧的 buggy 版本在尾部多了一个特殊分支，逻辑近似为：</p><pre class="language-Plain lang-Plain"><code class="language-Plain lang-Plain">delta = lround(32 * (actual - expected));

if (current_score &lt;= 9 &amp;&amp; delta &lt; 0) {
    return current_score;
}

return current_score + delta;</code></pre><p>这段逻辑分析出来两个严重问题：</p><p> 没有像正常版本一样对结果做 <code>max(new_score, 0)</code> 的保护。</p><p> 只在 <code>current_score &lt;= 9 &amp;&amp; delta &lt; 0</code> 时才“保底不掉分”。</p><p>换句话说，只要玩家当前分数 <strong>大于 9</strong>，并且这次输棋扣分幅度足够大，就能直接得到负数。</p><p><strong><em>写库时的整数符号错误<em>*</em></em></strong>:<em>*</em></p><p><code>db_update_player_score</code> 里最终通过 <code>sqlite3_bind_int64</code> 把分数写回数据库。</p><p>问题在于调用时只把新分数放进了 <code>edx</code>，在 x86-64 SysV ABI 下这会发生 <strong>零扩展</strong>：</p><pre class="language-Plain lang-Plain"><code class="language-Plain lang-Plain">edx = -1
rdx = 0x00000000ffffffff</code></pre><p>于是原本应该是 <code>-1</code> 的分数，被当成了：4294967295</p><p>SQLite 里看到的就是一个超大的正整数。</p><p><strong><em>如何构造</em></strong> <strong><em><code>-1</code></em></strong></p><p>题目的核心不是任意改分，而是把当前分数打成 <code>-1</code>。</p><p>远端 reset 后，脚本实测拿到的一组关键对手如下：</p><p> <code>残阳余温(50)</code></p><p> <code>余晖静候(30)</code></p><p> <code>指尖依旧(10)</code></p><p> <code>安然重演(20)</code></p><p> <code>风月空守(20)</code></p><p><strong><em>利用顺序如下<em>*</em></em></strong>:<em>*</em></p><p><strong><em>Step 1. 对 50 分机器人认输<em>*</em></em></strong>:<em>*</em></p><p> 50 -&gt; 40</p><p> 返回类似：</p><p> Resign Delta=-10 Score=40 Rank=1003 OppDelta=10 OppScore=60</p><p><strong><em>Step 2. 对 30 分机器人认输<em>*</em></em></strong>:<em>*</em></p><p> 40 -&gt; 28</p><p> 返回类似：</p><p> Resign Delta=-12 Score=28 Rank=1005 OppDelta=12 OppScore=42</p><p><strong><em>Step 3. 打赢 10 分机器人<em>*</em></em></strong>:<em>*</em></p><p> 使用前面那条固定赢法：</p><p> (7,7) (6,7) (8,7) (9,7) (10,7)</p><p> 结果：</p><p> 28 -&gt; 34</p><p> 同时这个 10 分机器人会掉到：</p><p> 10 -&gt; 4</p><p><strong><em>Step 4. 对一个 20 分机器人认输<em>*</em></em></strong>:<em>*</em></p><p>34 -&gt; 21</p><p><strong><em>Step 5. 对另一个 20 分机器人认输<em>*</em></em></strong>:<em>*</em></p><p>21 -&gt; 11</p><p><strong><em>Step 6. 再去匹配刚才已经掉到 4 分的机器人，并认输<em>*</em></em></strong>:<em>*</em></p><p> 此时玩家分数是 <code>11</code>，对手分数是 <code>4</code>。</p><p> 根据 buggy Elo 计算，这一步会得到：</p><pre class="language-Plain lang-Plain"><code class="language-Plain lang-Plain">delta = -12
11 + (-12) = -1</code></pre>服务端返回：
<p>  Resign Delta=-12 Score=4294967295 Rank=1 OppDelta=12 OppScore=16</p><p> 注意这里响应里已经直接显示了 <code>Score=4294967295</code>，说明零扩展写库已经成功发生。</p><p><strong><em>Step 7. 调用取 flag 接口<em>*</em></em></strong>:<em>*</em></p><p>这时候再发 <code>cmd=1</code> 即可：</p><p>NCTF{258454e8-045f-4d6c-819b-e289aa8c2607}</p></div><p style="text-align:right"><a href="https://lkaros.xin/posts/default/NCTF%202026%20Reverse%20Write%20Up#comments">看完了？说点什么呢</a></p></div>]]></description><link>https://lkaros.xin/posts/default/NCTF%202026%20Reverse%20Write%20Up</link><guid isPermaLink="true">https://lkaros.xin/posts/default/NCTF%202026%20Reverse%20Write%20Up</guid><dc:creator><![CDATA[Lkaros]]></dc:creator><pubDate>Wed, 22 Apr 2026 06:05:26 GMT</pubDate></item></channel></rss>