CTF Misc入门:DOCX隐写与ZIP伪加密的底层原理及010 Editor实操

CTF新手村常客——Misc题型里的DOCX隐写和伪加密,对很多刚入坑的朋友来说,看WriteUp觉得挺简单,真上手时又容易卡壳。我最初玩PolarCTF这类靶场时也是这样,面对一个打不开的docx文件,第一反应是直接改后缀名丢进解压工具,结果要么文件损坏,要么就是藏在内层的图片和文本完全没被找到。归根结底,是因为对DOCX的文件结构、ZIP的压缩原理,以及“加密”标志位到底改在哪一字节,没有形成系统认知。

这篇文章的价值在于彻底拆解两个东西:一是最基础但也最容易被忽略的隐藏文字(Hidden Text)手法,二是伪加密(Fake Encryption)——也就是用010 Editor直接修改ZIP压缩包的加密标志位。我会从DOCX本质上就是个ZIP包讲起,逐步带你识别哪些文档属于伪加密,再手把手操作010 Editor找到关键字段并完成修复,最后结合PolarCTF中的典型题目场景给出完整的解题流程和踩坑记录。适合刚学Misc不久、对文件格式底层机制感兴趣,或者卡在某些文档类隐写题里出不来的同学。

1. 内容整体设计与思路拆解

1.1 核心考点到底是什么

DOCX隐写和伪加密,在Misc题型里属于“送分题”和“纸老虎”的组合。送分,是因为一旦你知道原理,解题路径几乎是固定的:先看隐藏内容,再判断是否加密,最后修复标志位读取数据。纸老虎,是因为不知道原理时,你会在“一个文件打不开”这个表象面前束手无策。

这两种题型考察的底层能力有三层:

第一层是格式感知。你得知道DOCX不是一个“文档”,而是一个OOPX(Office Open XML)压缩包容器。它内部会有word目录、media目录、customXml目录等,每个目录都有特定的职责。当你把后缀名从.docx改成.zip时,看到的不再是文字的排版,而是一个清晰的目录树。

第二层是压缩格式理解。ZIP格式由文件头、文件数据和中央目录块组成。其中有一个固定偏移的常规字段叫“通用位标记”(General Purpose Bit Flag),这个字段的第0位就是加密标志位。所谓伪加密,就是把这一位从0改成1,让解压软件误以为文件有密码,从而拒绝解压或弹出密码框。

第三层是数据修复能力。识别出伪加密之后,你还要能正确、精准地修改对应字节。这里不能靠“猜”,也不能靠“暴力穷举”,而是要靠十六进制编辑器精确操作。这也是010 Editor在这场实战里的核心价值:它自带ZIP模板解析,能帮你把二进制里的关键字段可视化,直接看到哪个文件条目被打了加密标记。

1.2 为什么选择010 Editor而不是其他工具

不少新手习惯用WinRAR或者7-Zip直接处理ZIP包,发现“加密了”就直接跑去爆破或者怀疑找密码,这是思维上的误区,会浪费大量时间在错误的环节。WInRAR面对伪加密文件,只会弹一个输入密码的对话框,它不会告诉你这个加密标志是真是假。而7-Zip在部分伪加密情况下会根据压缩方式做出不同的反应,这也会干扰你的判断。

010 Editor的核心优势在于模板解析能力。你打开一个ZIP文件,它通过内置的ZIP.bt模板,能把每个本地文件头和中央目录头里的字段一个个拆分出来。你可以直接看到“Encrypted: Yes/No”的变化,定位到具体偏移地址,然后手动修改对应字节。定位精准、操作透明,不会破坏其他数据,这一点是图形化解压工具无法替代的。

我个人的实操体验是:前期用7-Zip测试文件是否能正常解压,如果能解压说明很可能没有加密;如果不能,就切到010 Editor查看标志位,一旦确认是0x0001或0x0009这类带加密位的值,基本可以断定是伪加密。整个过程从“黑箱猜测”变成了“按图索骥”,解题效率极大提升。

2. 核心细节解析与实操要点

2.1 隐藏文字技巧:最简单也最容易看漏的一类

DOCX的隐藏文字是一个让人又爱又恨的点。说它简单,是因为操作层面只需要在Word里通过“字体效果”里的“隐藏”复选框就能实现;说它容易漏,是因为大多数人压根不会把“字体是白色的”或“文字被隐藏”当成一种隐写手段。

在PolarCTF这类靶场里,常见的隐藏形式有几种:

  • 文字颜色设置为白色,和页面背景融为一体
  • 字体设置为隐藏属性,实际内容不渲染但依然存在
  • 文字通过“文本框”或者“艺术字”放置到页面可视范围之外

解决思路很统一:用解压的方式绕过Word的渲染层,直接进入XML源码里找明文。这样无论文字在视觉上显示成什么颜色、什么位置,原始文本都会出现在document.xml的标签内部。

具体操作时,我建议按下面顺序排查:

  1. 先把docx后缀改成zip,用解压工具解压
  2. 打开word/document.xml,先看是否存在大量空标签或者可疑的空白段落
  3. 搜索"<w:rPr"附近是否有“<w:vanish/>”标签,这是Word中隐藏文字的XML标记
  4. 如果文件大、内容多,用命令行直接搜缩写可能存在盲区,这时建议用VS Code或Notepad++全局搜索关键字

还有一个容易被忽略的点:隐藏文字有时不只藏在document.xml里,还可能藏在header、footer以及footnotes.xml中。所以全方位搜索时,不要只搜一个文件,而是对整个解压目录执行一次全文搜索,才能确保万无一失。

2.2 伪加密的底层原理:ZIP通用位标记的0和1

ZIP文件的加密机制表面上靠密码,实际上在文件头里只用一个位来标记“此文件是否被加密”。这个位就是通用位标记的第0位。

你可以把ZIP包想象成一本带目录的书:正文区里,每个文件都有一个“本地文件头”,结尾处还有一个“中央目录头”。两个位置都有通用位标记字段。正常情况下,这两个位置的加密标志位是一致的——要么都是0,要么都是1。伪加密的典型特征,就是“本地文件头”里的标志位为1,但“中央目录头”里的标志位为0,或者反之。

这里涉及一个关键的知识点。之所以很多伪加密工具喜欢只修改一个位置的标志位,是因为不同的解压软件读取的优先级不同。WinRAR可能优先读取本地文件头,7-Zip可能优先参考中央目录头,因此只要两个位置不一致,就会产生“有的软件提示要密码、有的软件能直接打开”的诡异情况,这刚好就是伪加密的标志性症状。

实操中我们要做的,就是把两个位置的加密位都改成0,确保文件能以未加密状态完整解压。当然,也有一部分题目的出题者会设置真正的加密区段,这种情况下即使修改标志位也无法解压,那就需要专门的爆破工具或记忆密码提示,具体要看题目给出的线索。

2.3 010 Editor的定位方式:文件头、目录区、偏移地址的计算

明白了原理之后,真正动手时最怕的不是不会改,而是找不到该改哪个字节。尤其是文件数量多时,靠肉眼在十六进制流里扫描,几乎是灾难。

010 Editor在这一点上有天然优势。打开文件后,加载模板ZIP.bt,软件会按ZIP格式自动解析,列出每个文件条目:

字段名称说明
Signature文件头签名,始终为0x04034B50
Version Needed解压所需的最低版本
General Purpose Bit Flag通用位标记,重点观察第0位
Compression Method压缩方式,0为存储、8为Deflate
Compressed Size压缩后大小
Uncompressed Size解压前大小

通过“General Purpose Bit Flag”和“Encrypted”这两个字段,你一眼就能判断出当前文件条目是否被标记为加密。但是问题来了:模板解析能帮你“看”,修改还是要靠十六进制视图。

我常用的定位方法是:在模板窗口里点击加密位字段,010 Editor左侧的十六进制区域会自动跳转到对应偏移。这时直接在该字节上右键编辑,把0x01改成0x00,保存即可。

这里有个细节要特别注意:一个ZIP包里有多少个文件,就可能有多少个本地文件头。伪加密题通常会只修改目标文件的那一个条目,比如题目把Flag藏在word/document.xml里,就只对这一个文件设置加密标志。所以你不能全局搜索“01 00”然后乱改一通,必须逐一核对。

最佳策略是:先在模板窗口里分清哪个是本地文件头、哪个是中央目录头,然后对每个头的General Purpose Bit Flag逐个检查。如果发现“Encrypted”字段为Yes且你自己并未明文设置密码,那么90%以上就是伪加密了。

3. 实操过程与核心环节实现

3.1 第一阶段:把DOCX当成ZIP解压,找到真正的“正文”

拿到一份题目给的secret.docx,第一步一定不是双击用Word打开,而是复制一份副本,把后缀名改为.zip,然后按ZIP方式解压。这一步看似简单,实则是整个题型的定调:从“文档查看模式”切换到“容器分析模式”。

解压之后,典型的目录结构长这样:

secret_doc/ ├── [Content_Types].xml ├── _rels/ ├── docProps/ │ ├── app.xml │ └── core.xml └── word/ ├── document.xml ├── media/ ├── styles.xml └── settings.xml

如果题目走的是“隐藏文字”路线,flag大概率直接出现在word/document.xml里。如果走的是“隐写图片”路线,重点则转移到word/media/目录下的图片,这时候可能还要配合binwalk、zsteg或者strings做进一步分析。

在PolarCTF的Misc题型里,我最常见的是:一段无意义的正常文本表面下,藏了第二段看不见的文字,需要你在XML源码里把它摘出来。所以解压后我的习惯顺序是:

  1. 先看document.xml,搜索“flag”、“CTF”、“{”等字样
  2. 再看media目录,统计图片数量,逐个排查
  3. 最后检查自定义XML目录,因为有时出题者会把线索塞到customXml里

3.2 第二阶段:加载010 Editor模板,快速识别伪加密标志

如果是ZIP包解压时报错,或者提示文件损坏,大概率不是真的损坏,而是伪加密在作祟。此时就要动用010 Editor做底层的读取。

我出一套能直接套用的操作步骤:

  1. 用010 Editor打开题目文件
  2. 菜单栏选择“Templates -> Template Viewer”,或者按快捷键进入模板视图
  3. 确保模板列表里选择的是ZIP.bt
  4. 点击“Apply”让模板重新解析文件
  5. 通过模板窗口展开各个文件条目的General Purpose Bit Flag字段,观察Encrypted状态

我特别建议你把模板视图和十六进制视图同时开着,这样当你点击某个文件条目时,十六进制区域会自动跳转定位。因为一旦定位准确,后面你只需要改一个字节,就可以看到文件“恢复”正常。

这个阶段还有一个小窍门。如果模板解析功能在你的版本里不生效,可以手动搜索十六进制签名50 4B 03 04(即PK\x03\x04),这代表本地文件头的开始。随后跳过4个字节的版本号,第5到第6字节就是General Purpose Bit Flag的低字节。你只需要把这一字节的bit0从1改到0,即可解除加密标记。

3.3 第三阶段:修改加密位并重建文件

现在进入最关键的修改环节。为了不出错,我建议先对整个文件做一次备份。因为你可能连续修改多个文件条目,一旦改错,很难手工恢复。

修改时,原则上是“只改动标记位,不影响其他任何字节”。具体操作如下:

  1. 在模板窗口中找到第一个标记为Encrypted的文件条目
  2. 点击该条目后,左侧十六进制窗口会高亮对应的字段范围
  3. 将General Purpose Bit Flag字段的值从0x01改成0x00,或从0x09改成0x08(0x09表示加密且使用了数据描述符,只需去掉最低位)
  4. 如果有多个条目都标记为Encrypted,逐一修改
  5. 保存文件为一个新名字,比如secret_fixed.docx
  6. 将改好的文件再次改后缀为.zip并尝试解压

这里需要理解一个细节点:ZIP文件里存在本地文件头和中央目录头两处标志位。010 Editor模板会同时解析出这两个位置。你最好将两处的加密位都改为0,保证不同解压工具读取时结果一致。

我本人就遇到过只改了本地文件头、结果7-Zip依然提示需要密码的情况。原因就在于7-Zip优先读取中央目录头。所以做这道工序时,不能偷懒只看一处的标志位,两边的字段都改成0才是完整解法。

3.4 第四阶段:从修复后的文件中提取Flag

当文件可以正常解压后,Misc题的最后一步往往是“寻找字符串”。由于题目是DOCX隐写题,flag一般藏在文档内容或元数据里,极少出现需要单独爆破的加密压缩包。

我的查找顺序是:

  1. 对整个解压目录执行一次文本搜索,搜索范围包括所有XML、TXT文件
  2. 使用strings命令扫描media目录里的图片文件
  3. 若发现疑似Base64字符串,用工具解码后二次搜索

建议在Linux环境下使用grep一次性完成搜索:

grep -r "flag\|CTF\|{" extracted_dir/

这里要提醒一点:如果flag被藏进了图片的像素值或EXIF信息里,仅靠文本搜索是找不到的,需要结合binwalk检查文件尾部是否有附加数据,再用zsteg检查LSB隐写。这类题目和单纯的DOCX伪加密不同,会再叠加一层Misc常见考点。

4. 常见问题与排查技巧实录

4.1 解压时提示“文件损坏”但WinRAR能打开

这种情况非常典型,也是伪加密最常见的表现。WinRAR对标志位的兼容性比较宽容,遇到伪加密有时会直接忽略标志位并照常解压;而7-Zip和其他严格实现的工具则直接拒绝解压。

遇到这个场景不要慌张,直接进入010 Editor检查标志位即可。如果确认加密位为1且你没有任何密码提示,再检查加密位旁边是否还有额外数据。真正的加密ZIP在文件头之后会有一段额外的Salt或哈希校验数据,而伪加密不会。这也是判断“真加密”和“伪加密”的一个高级技巧。

4.2 修改完标志位后依然提示密码

这个问题的原因大概率有两个:一是你只改了本地文件头,中央目录头没有同步修改;二是该文件确实是真加密,密码提示只是表象。

第一个问题很好解决,按上文所述,两个位置都改成0即可。第二个问题则需要停手思考:题目中是否有密码提示?文件属性、文件名、注释里是否有线索?如果是真加密,伪加密的解法就失效了。此时需要转换思路,先尝试常见弱密码字典,再考虑ZIP已知明文攻击等进阶手法。

4.3 搜不到flag字符串,但文档里确实有隐藏内容

还有一种情况:你确认了隐藏文字存在,但搜不到明确的flag字样。这时候往往需要关注编码问题。比如flag中的字符被拆成了多段,中间被XML标签打断;或者隐藏文字是以Unicode转义形式存在的。

针对XML标签打断flag的情况,最有效的方案是写一个简单的Python脚本,提取所有文本节点的纯内容,再做拼接。这样无论隐藏文字怎么被分隔符干扰,都能还原出原始字符串。

import zipfile import re from xml.etree import ElementTree with zipfile.ZipFile('secret.docx') as z: xml_data = z.read('word/document.xml') root = ElementTree.fromstring(xml_data) text_parts = root.itertext() full_text = ''.join(text_parts) flag_match = re.search(r'[A-Za-z0-9_]+\[.*?\]|flag\{.*?\}', full_text, re.I) print(flag_match.group(0) if flag_match else "未找到flag")

实际靶场里,隐藏文字常以分段文本形式藏在若干<w:t>节点中,单纯用Ctrl+F搜索可能只搜到前半段,而脚本能一次性把全文拼出来,效率完全不一样。

4.4 排查速查表

症状可能原因解决方案
解压提示密码本地文件头加密位为1010 Editor定位修改
WinRAR能开、7-Zip不能开中央目录头与本地头标志不一致两侧标志位全部改为0
搜索不到flag隐藏文字被XML分隔用脚本提取纯文本
文件能解压但图片里无内容图片隐写+文字隐写组合结合binwalk与zsteg

5. 现场实操演示:一个模拟的完整复现过程

5.1 拿到文件的初始观察

假设我们从PolarCTF平台下载了一个Challenge_Docx.rar。解压后得到一个文档,名字是note.docx。直接双击用Word打开,会看到一段关于旅游攻略的普通文本,看不出任何可疑之处。大多数新手到这里就认为题目没有思路,准备找WriteUp了。

我这时会先做一次“姿势确认”:复制note.docx为note_copy.zip,直接解压。如果解压工具弹出密码框,或者提示“文件已加密”,那么基本可以确定题目走的是伪加密方向。

如果解压时完全没有异常,那你就要在解压后的XML里仔细搜索隐藏文字。注意,有的题目习惯用Office表格或文本框存放隐藏内容,这些内容不一定出现在常规的document.xml里,有一个冷门但切实存在的藏匿点是word/header1.xml或word/footer1.xml,这些地方同样可以嵌入隐藏文本。

5.2 逐步修改并以实际效果验证

我在实际操作时,会把任务拆成分阶段完成的检查单。第一阶段解压观察,第二阶段进010 Editor,第三阶段修复后解压,第四阶段查文本。这样每个步骤都有明确产出,不会出现改完标志位结果忘了解压验证的低级失误。

下面是带有具体偏移量观察的一次模拟记录:

  • 本地文件头“word/document.xml”条目在0x0000A3B2处
  • General Purpose Bit Flag值显示为0x0001,Encrypted字段为Yes
  • 中央目录头位置在0x0001D3F4处,General Purpose Bit Flag也是0x0001
  • 两处全部改为0x0000,保存为note_fixed.docx
  • 再改后缀为ZIP,解压正常,word/document.xml可直接打开查看

这种从“0x0001”到“0x0000”的改动,就是你破解伪加密的全过程。完成后继续文本搜索,在document.xml末尾处发现了隐藏在不可见文本中的flag字符串,顺利得解。

5.3 一个容易被忽略的收尾工作

这里有个实践心得。很多人解出flag后就直接提交,忽略了查看题目文件中是否还有其他压缩包。有些Misc题会在DOCX解压后的media目录里再嵌套一层压缩包,形成一个“双层套路”。第一层是伪加密,第二层是图片隐写,综合起来才算是完整题目。因此,在拿到明文后务必回头检查目录结构,尤其是media目录和customXml目录里是否存在异常文件。

我自己踩过这个坑。有一道题我按常规流程解出第一段隐藏文字,提交后提示不对,回头再看才发现media目录下还藏着一张图片和一段字符串,解开之后才是真正的flag。这一层嵌套不会在常规教程里重点提及,但在进阶Misc题里特别常见。

6. 一点实操总结

拿这道DOCX隐写题练手,价值不只在解出几道Misc题,而是帮你建立了“文档即容器”的底层思维。任何文件在CTF题目里都不能只看表面格式,你要去剥开它的封装层,理解每个字节的含义。这种能力在后续的流量分析、文件恢复、内存取证里都会反复用到。

我自己现在处理这类题目时,已经形成了固定的肌肉记忆,先备份、再解压、然后模板解析、最后逐字节修改。整个流程不再依赖运气,也不怕工具报错。如果你刚接触010 Editor,可以先用正常生成的ZIP文件多练几次模板解析,熟悉字段变化;再找一个伪加密样本对照修改。这种刻意练习做上三五遍,DOCX隐写和伪加密基本不会再成为你的丢分点。

相关新闻

HTTP POST表单提交全解析:Content-Type、编码格式与实战避坑指南

HTTP POST表单提交全解析:Content-Type、编码格式与实战避坑指南

1. 从一个被忽略的细节说起&#xff1a;为什么表单提交远不止填个action很多人第一次接触Web开发&#xff0c;接触到的第一个"能跑起来"的功能&#xff0c;大概率就是一个HTML表单。写一个<form>标签&#xff0c;配上action和method"post"&#xff0…

2026/10/20 6:25:32 阅读更多 →
自动驾驶多模态数据生成:统一传感器输出的关键技术与实践

自动驾驶多模态数据生成:统一传感器输出的关键技术与实践

自动驾驶算法做到后面&#xff0c;真正卡脖子的往往不是模型结构&#xff0c;而是数据。尤其当你同时要喂摄像头、激光雷达、毫米波雷达这几个完全不同的传感器时&#xff0c;数据稀缺和模态不一致会被放大成一个系统工程问题。OmniGen 这个名字听起来很高端&#xff0c;去掉包…

2026/10/20 6:25:32 阅读更多 →
三层网络架构冗余配置实战:VRRP、浮动路由与链路聚合详解

三层网络架构冗余配置实战:VRRP、浮动路由与链路聚合详解

前阵子搭了一套三层结构的网络实验环境&#xff0c;核心两台、汇聚两台、接入一台&#xff0c;实验目标很明确&#xff1a;把三层架构里的各路冗余手段都配上&#xff0c;然后人为制造故障&#xff0c;看流量到底能不能自己绕过去。做完最大的感受是——冗余两个字说起来容易&a…

2026/10/20 6:25:32 阅读更多 →

最新新闻

Pallas引擎如何看穿AI写作?从降AI到人机协同的正确路径

Pallas引擎如何看穿AI写作?从降AI到人机协同的正确路径

先说结论&#xff1a;2026年了&#xff0c;还在问“怎么降AI”的人&#xff0c;思路本身就反了。真正的答案不是研究怎么骗过Pallas引擎&#xff0c;而是研究为什么它盯上你。我把国内外主流AIGC检测工具&#xff0c;包括知网近期升级的Pallas引擎思路做了拆解&#xff0c;结合…

2026/10/20 7:14:56 阅读更多 →
Boost PFC CCM平均电流控制与相位补偿的Plecs仿真实战

Boost PFC CCM平均电流控制与相位补偿的Plecs仿真实战

做开关电源仿真绕不开PFC这个话题。最近我把Boost PFC的CCM平均电流控制叠加电流相位补偿控制&#xff0c;在Plecs里完整跑了一遍仿真&#xff0c;从主电路参数计算到控制环路搭建&#xff0c;再到波形分析和问题排查&#xff0c;整个过程踩了几个坑&#xff0c;也把原理重新梳…

2026/10/20 7:14:56 阅读更多 →
批量出图怎样做到像素级可控?规则渲染管线实战解析

批量出图怎样做到像素级可控?规则渲染管线实战解析

这个需求最近真的很多人问。我自己的项目里也是碰到一模一样的瓶颈&#xff1a;业务方要求批量出图&#xff0c;图片里不能有丝毫随机性——同样的输入必须产出同样的构图、同样的配色、同样的文字位置。拿通用多模态生成模型试了几轮&#xff0c;效果确实惊艳&#xff0c;但根…

2026/10/20 7:14:56 阅读更多 →
litellm:统一大模型接入层,解决多模型切换与适配之痛

litellm:统一大模型接入层,解决多模型切换与适配之痛

最近在做一个多模型调度的内部项目时&#xff0c;我把团队的模型接入层整体切换到了 litellm。这个决定帮我省掉了大量重复的适配代码&#xff0c;也让我们在评估不同大模型服务时效率高了不少。如果你同样被"每个模型一套 SDK、一套请求格式、一套报错风格"折磨过&a…

2026/10/20 7:14:56 阅读更多 →
新手考古路线图:3 步定位登月舱降落代码 BURN, BABY, BURN——从 Luminary099 源码索引到 P63 着陆算法

新手考古路线图:3 步定位登月舱降落代码 BURN, BABY, BURN——从 Luminary099 源码索引到 P63 着陆算法

新手考古路线图&#xff1a;3 步定位登月舱降落代码 BURN, BABY, BURN——从 Luminary099 源码索引到 P63 着陆算法 【免费下载链接】Apollo-11 Original Apollo 11 Guidance Computer (AGC) source code for the command and lunar modules. 项目地址: https://gitcode.com/…

2026/10/20 7:14:56 阅读更多 →
投机推理:突破大模型自回归瓶颈的并行验证加速技术

投机推理:突破大模型自回归瓶颈的并行验证加速技术

1. 大模型推理的“车堵一条道”困局老做推理优化的朋友都有过这种体验&#xff1a;GPU 明明算力爆炸强&#xff0c;但每次生成一个 token 都得几毫秒甚至几十毫秒&#xff0c;batch 稍微大一点&#xff0c;延时就像坐火箭一样往上蹿。一开始我们都骂“模型太大了”&#xff0c;…

2026/10/20 7:13:55 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →