从加密Godot项目中恢复源代码与资源的完整技术指南
1. 项目概述当加密的Godot项目成为“黑盒”你手头有一个Godot游戏项目但它被打包成了一个.pck文件或者更糟是一个已经导出为独立可执行文件的游戏。你双击运行游戏一切正常但当你试图打开项目文件夹时却发现里面空空如也或者只有一些加密的、无法直接读取的二进制文件。你可能是这个项目的原开发者丢失了源代码也可能是一个技术爱好者想学习某个优秀游戏的实现又或者是一个社区贡献者需要为某个开源模组提供支持。无论出于何种原因面对一个加密的Godot项目那种“看得见却摸不着”的感觉都令人沮丧。这个标题——“如何从加密的Godot项目中恢复可编辑的源代码和资源”——直指一个在Godot开发者社区中时而浮现的痛点。Godot引擎本身是开源的但它提供的导出流程允许开发者将整个项目包括GDScript脚本、场景、纹理、音频等打包并加密以保护知识产权。这层保护在商业发行时至关重要但也为后续的修改、学习或恢复带来了障碍。因此掌握从这种加密包中“抢救”出可编辑内容的技术就成了一种非常实用的技能。这并非鼓励破解他人作品而是在合法合规的前提下如针对自己丢失源码的项目、已获授权的第三方维护、或纯粹的教育研究进行技术探索和资产恢复。接下来我将以一个拥有十多年经验的游戏开发和技术研究者的视角为你拆解这个过程的完整思路、核心工具、实操步骤以及必然会遇到的“坑”。我们会从理解Godot的打包加密机制开始一步步深入到具体的逆向工程工具使用最终目标是得到一份尽可能完整、可重新导入Godot编辑器进行编辑的源代码和资源集合。记住整个过程需要耐心、细致的操作和对文件结构的深刻理解。2. 核心思路与工具链解析2.1 理解Godot的打包与加密机制在动手之前我们必须先搞清楚“敌人”的防御工事是如何构建的。Godot项目在发布时主要有两种形式会让我们觉得“加密”了PCK资源包.pck文件这是Godot最主要的资源打包格式。你可以把它想象成一个压缩的、结构化的文件系统。在导出项目时Godot会将项目目录下的所有资源.tscn场景、.gd脚本、.png纹理等打包进一个.pck文件。关键点在于Godot允许在导出时使用一个加密密钥对这个PCK文件进行加密。加密后的PCK其内部文件不再是明文没有密钥就无法被标准工具读取。嵌入式PCK的可执行文件在导出为Windows、Linux或macOS的可执行文件时Godot提供了一个选项可以将PCK文件直接嵌入到可执行文件尾部。这样你看到的只是一个单一的.exe或二进制文件资源包已经和程序本体融为一体。无论是独立的.pck文件还是嵌入可执行文件的PCK其核心加密算法是AES-256。Godot在打包时会用你提供的加密密钥一个32字节的十六进制字符串对每个资源块进行加密。没有这个密钥引擎自身在运行时可以正常解密因为密钥被硬编码或通过其他方式提供但我们从外部直接解包就是一堆乱码。所以恢复工作的核心矛盾就变成了如何获取或绕过这个AES-256加密密钥理论上AES-256在不知道密钥的情况下是极难破解的。因此我们的主攻方向并非暴力破解加密算法而是寻找密钥可能存在的“泄漏点”。2.2 工具链选型与原理基于上述思路社区开发者们创建了一系列工具构成了我们恢复工作的“瑞士军刀”。下面这个表格梳理了核心工具及其作用工具名称主要用途原理简述备注**GDScript Decompiler (如gdscript-decompiler) **反编译加密PCK中的GDScript字节码.gdc文件为可读的.gd源代码。Godot的GDScript在导出时会编译为字节码。此工具逆向了这个编译过程将字节码指令转换回近似原始的GDScript语法。恢复的代码可能丢失变量名被优化为arg0, arg1等但逻辑结构基本完整。PCK解包工具 (如pckx, Godot内置命令行)从可执行文件中提取出内嵌的PCK包或解压未加密/已知密钥的PCK包。分析可执行文件二进制结构找到PCK数据块的起始位置和大小将其剥离出来。对于解密需要提供正确的密钥。Godot引擎本身可通过--export-pack参数解包但需密钥。二进制分析工具 (如strings,Hex Editor,Ghidra/IDA)在可执行文件中搜索可能硬编码的加密密钥字符串或密钥推导逻辑。在程序的静态数据区.rodata段中搜索符合32字节十六进制字符串64个字符特征的内容。或通过反汇编分析密钥加载函数。成功率取决于开发者是否将密钥明文存储。这是寻找密钥的关键一步。资源提取工具 (如godot_asset_extractor或自定义脚本)在解包PCK后批量处理提取出的资源文件特别是将二进制格式如.scn二进制场景转换为可编辑的文本格式.tscn。调用Godot引擎的头文件或库解析Godot特有的二进制资源格式并将其重新序列化为文本格式。对于纹理.png, .jpg、音频.wav, .ogg等通用格式解包后通常可直接使用。注意使用这些工具进行逆向工程必须严格在法律和道德框架内。仅适用于你拥有合法权利的项目如自己开发的、已获授权的、或明确声明可用于学习研究的开源/废弃项目。未经授权对他人商业软件进行逆向可能侵犯著作权并违反相关法律。整个恢复流程的思维导图可以概括为定位资源包 - 尝试提取/解包 - 寻找解密密钥 - 解密并解包 - 反编译脚本 - 转换资源格式。这是一个典型的漏斗模型每一步的成功都依赖于前一步的产出。3. 实操步骤详解从加密文件到可编辑项目假设我们手头有一个名为my_game.exe的Windows游戏我们怀疑它内部嵌入了加密的Godot资源。下面我将分步拆解整个恢复过程。3.1 第一步探查与提取PCK资源包首先我们需要确认my_game.exe是否真的内嵌了PCK并尝试将其提取出来。使用strings命令进行初步侦查 打开命令行终端导航到游戏所在目录执行strings my_game.exe | grep -i pck或者更广泛地搜索Godot相关特征strings my_game.exe | grep -E “(PCK|Godot|.gd|.tscn)”如果输出中包含“PCK”字样或明显的Godot资源路径这基本确认了它是一个Godot游戏且可能包含PCK。使用二进制编辑器确认PCK结构 用HxD、010 Editor等工具打开my_game.exe。直接滚动到文件末尾Godot通常将PCK附加在可执行文件尾部。查看末尾几十个字节如果你看到类似“GDPC”或“GODOTPKC”的魔数Magic Number那么前面一大段数据就是PCK包。记下这个魔数开始的位置偏移量offset。使用专用工具提取PCK 手动计算偏移量和大小进行切割比较麻烦。推荐使用社区工具pckx需自行搜索编译或下载可执行版本。pckx extract my_game.exe这个工具会自动扫描可执行文件找到内嵌的PCK并尝试提取。如果PCK未加密你会直接得到一个my_game.pck文件。如果工具提示需要密钥或提取出的文件是乱码则说明PCK被加密了。3.2 第二步寻找AES加密密钥这是整个过程中最具挑战性的一步。密钥可能以以下几种形式存在在可执行文件中明文硬编码这是最理想的情况。再次使用strings命令搜索64个字符长度的十六进制字符串0-9, A-F。strings my_game.exe | grep -E “^[0-9A-Fa-f]{64}$”如果找到恰好64位的十六进制串它有很大概率就是AES-256密钥。将其复制保存。在运行时动态生成或从外部文件读取密钥可能由几个字符串拼接后经过哈希如SHA-256生成或者存放在一个单独的配置文件如.ini、.json中。你需要分析游戏启动时加载了哪些额外文件。通过逆向分析引擎的初始化函数对于更复杂的情况需要使用反汇编工具如Ghidra或IDA Pro。加载my_game.exe寻找与PCK、encryption、key相关的字符串引用定位到设置加密密钥的函数。这需要一定的逆向工程和C知识因为Godot引擎是C编写的。你需要找到类似set_encryption_key(const String key)这样的函数调用并查看其参数来源。实操心得在我的经验中许多使用Godot 3.x的独立游戏尤其是早期版本或开发者安全意识不足时确实会将密钥明文存储在可执行文件中。使用strings配合正确的正则表达式是成功率最高的第一招。务必先尝试这一步。3.3 第三步解包加密的PCK文件一旦我们获得了候选密钥假设为0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef就可以尝试解包。使用Godot引擎命令行解包最官方 你需要有一个与目标游戏相同或更新版本的Godot引擎可执行文件godot.windows.tools.64.exe等。将其与提取出的或仍是内嵌状态的PCK文件放在一起。# 假设我们已经将PCK提取为 my_game.pck godot.windows.tools.64.exe --export-pack “res://” my_game_decrypted.pck my_game.pck执行此命令时Godot引擎会尝试用内置的密钥如果有去解密。但我们需要指定我们找到的密钥。Godot 3.x版本通常需要通过修改引擎源码或使用补丁版来在命令行指定密钥过程较复杂。更实际的方法是使用社区工具。使用社区工具解包推荐 寻找如godot_pck_decrypt或整合了解密功能的pckx工具。这些工具通常可以直接在命令行指定密钥进行解包。pckx decrypt my_game.pck my_game_decrypted.pck -k 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef如果密钥正确你会得到一个新的my_game_decrypted.pck文件这个文件是未加密的。解压未加密的PCK 对于未加密的PCKGodot命令行可以直接解压godot.windows.tools.64.exe --export “res://” ./extracted_resources my_game_decrypted.pck或者继续使用pckx:pckx extract my_game_decrypted.pck -o ./extracted_resources执行成功后你会在./extracted_resources目录下看到整个游戏的资源结构类似于一个Godot项目的res://目录。3.4 第四步处理提取出的资源进入./extracted_resources文件夹你会看到各种文件.gd文件如果项目导出时选择了“不加密脚本”这里可能会有明文GDScript。但通常为了保护脚本会以编译后的.gdc或.gde字节码形式存在。.gdc/.gde文件GDScript字节码文件。我们需要反编译它们。.scn文件二进制格式的场景文件不可直接阅读编辑。.tscn文件文本格式的场景文件万幸可以直接用Godot编辑器打开编辑。.tres/.res文件文本/二进制资源文件如材质、样式盒等。纹理、音频、字体等通常是标准格式png, ogg, ttf等可直接使用。核心任务一反编译GDScript字节码使用GDScript反编译器。以gdscript-decompiler为例通常是一个Python脚本python gdscript-decompiler.py -i ./extracted_resources -o ./decompiled_scripts这个工具会遍历目录将所有找到的.gdc/.gde文件反编译为.gd文件输出到指定目录。你需要将反编译出的.gd文件覆盖或放回原资源目录的对应位置。注意事项反编译不是完美的。所有局部变量和部分临时变量名会丢失被替换为arg0,arg1,var0,var1等。函数名和类名通常能保留。代码逻辑是正确的但可读性会打折扣需要你结合上下文进行理解和重命名。核心任务二转换二进制场景(.scn)为文本(.tscn)Godot引擎本身可以将二进制场景转换为文本场景。最直接的方法是创建一个新的Godot空项目然后将.scn文件拖入编辑器的文件系统面板中Godot会自动识别并可以将其打开、另存为.tscn。但对于批量操作可以写一个小脚本利用Godot的头文件/API进行编程转换或者使用社区工具如godot_asset_extractor。3.5 第五步重建可编辑的Godot项目现在我们拥有了一个包含反编译后.gd脚本、.tscn场景和其他资源的文件夹。要使其成为一个可正常在Godot编辑器中打开和运行的项目还需要最后一步创建项目配置文件在资源文件夹的根目录下创建一个名为project.godot的文本文件。这是Godot项目的标识文件。一个最简化的版本如下; Engine configuration file. ; It’s best edited using the editor UI and not directly, ; since the parameters that go here are not all obvious. [application] config/nameMy Recovered Game config/iconres://icon.png [rendering] environment/default_environmentres://default_env.tres你需要根据提取出的资源修改config/name并确保config/icon指向的路径存在有效图标。如果不知道可以先留空或指向一个占位图。处理资源依赖和导入错误用Godot编辑器打开这个project.godot文件。编辑器可能会报出大量错误主要是脚本编译错误反编译的代码可能有细微语法问题需要手动调整。资源引用丢失某些资源UUID可能改变导致场景中引用丢失。需要在编辑器中手动重新链接资源。插件/模块缺失如果原项目使用了第三方插件或自定义模块你需要找到并安装它们。迭代修复这是一个繁琐的调试过程。从最简单的、没有报错的场景开始打开逐步修复脚本错误和资源引用。利用Godot编辑器的错误提示和调试功能。4. 常见问题、排查技巧与避坑指南在实际操作中你几乎一定会遇到下面这些问题。这里记录了我的实战经验和解决方案。4.1 密钥寻找失败问题strings搜索不到64位十六进制串也没有明显的配置文件。排查思路密钥长度确认游戏使用的Godot版本。虽然AES-256是标准但早期或特定配置可能使用AES-12832位十六进制串。编码格式密钥可能不是纯十六进制而是Base64编码的或者是一个普通字符串passphrase在代码中被哈希成密钥。尝试搜索其他长度的可疑字符串。动态密钥密钥可能在运行时通过复杂算法生成如结合机器信息、网络数据。这大大增加了难度可能需要深入的动态分析调试或静态分析逆向核心算法。工具更新确保你使用的pckx或反编译工具支持目标Godot的版本。Godot 4.x的打包格式和加密方式与3.x有差异。4.2 反编译后的代码可读性极差问题所有变量都是arg0, var1逻辑难以理解。解决策略结合场景上下文在Godot编辑器中打开使用该脚本的场景。查看节点上导出的变量Export变量名称通常能保留这为理解脚本用途提供了关键线索。函数名和信号是路标反编译通常会保留函数名、信号名和常量名。通过这些名称可以推断代码模块的功能。逐步重命名不要试图一次性理解全部代码。从一个小的、具体的功能点开始通过运行游戏观察行为然后对应到代码中逐步将arg0,var1重命名为有意义的名称。这是一个耗时的“考古”工作。4.3 导入后资源大量报错粉色图标问题Godot编辑器中很多资源显示为粉色占位符控制台刷屏报错。原因与解决纹理压缩格式不匹配提取出的.png或.jpg可能使用了特定的导入设置如VRAM压缩。在Godot中选中这些纹理资源在导入Import面板中根据原游戏的平台如GLES2/GLES3重新选择合适的压缩模式如VRAM Compressed。自定义资源类型原项目可能使用了自定义的Resource子类。如果反编译时没有恢复对应的.gd脚本或者脚本有错误Godot就无法识别该资源类型。你需要先确保对应的脚本被正确恢复并能编译通过。UUID冲突资源在Godot内部通过UUID唯一标识。恢复过程中UUID可能紊乱。可以尝试在Godot编辑器的文件系统中对报错的资源选择“重新导入”Reimport或者更彻底地在文本编辑器里打开.tscn或.tres文件找到出错的uid引用行暂时删除uid引用让Godot重新生成关联。4.4 游戏可以运行但编辑器里场景显示异常问题场景能打开但节点错位、材质丢失或脚本行为异常。排查检查场景的根节点类型确保反编译/转换后的场景根节点类型正确如Node2D,Control。检查继承场景Instance如果场景实例化了其他场景.tscn确保被实例化的场景文件也存在且无错误。脚本属性覆盖在场景中节点属性可能被脚本覆盖。如果脚本中有语法错误这些覆盖就会失效。优先修复脚本错误。4.5 性能与兼容性问题Godot版本差异用Godot 4.2编辑器去打开一个用Godot 3.5创建并加密的项目即使资源恢复成功也可能因为API变更而导致大量脚本错误。最佳实践是使用与原游戏相同或尽可能接近的Godot版本进行恢复和初步编辑。你可以通过分析可执行文件中的版本字符串或尝试用不同版本的Godot引擎去加载PCK来推断版本。最后我想分享一个最深刻的体会从加密的Godot项目中恢复源代码其技术难度曲线是陡峭的。前半部分提取、找密钥、解包更像传统的逆向工程需要耐心和一点运气后半部分修复项目、理解代码则完全是一场对软件工程和游戏逻辑的“考古发掘”。成功的标志不仅仅是能打开项目更是能理解其架构并做出有意义的修改。这个过程本身就是对Godot引擎内部机制和游戏开发架构一次极为深刻的学习。每修复一个错误每理清一段逻辑你不仅拯救了一个项目更在自己的知识库里打下了一根坚实的桩基。

相关新闻

C++编译期计算:从constexpr到if constexpr的性能优化实战

C++编译期计算:从constexpr到if constexpr的性能优化实战

1. 项目概述:为什么我们需要编译期计算? 在C的世界里,性能优化是一场永无止境的军备竞赛。我们绞尽脑汁优化算法,使用更高效的数据结构,甚至深入到汇编层面去抠指令。但你是否想过,有一种优化,…

2026/10/9 14:20:07 阅读更多 →
材料模量全解析:杨氏模量、剪切模量、体积模量及其工程应用

材料模量全解析:杨氏模量、剪切模量、体积模量及其工程应用

1. 从“软硬”到“刚柔”:材料模量的本质是什么?聊到材料的“软”和“硬”,大家都有直观感受。橡皮筋很软,一拉就变形;钢铁很硬,掰都掰不动。但在工程设计和科学研究里,这种模糊的感性认知远远不…

2026/10/3 20:00:32 阅读更多 →
2026企业AI搜索与品牌增长白皮书:从GEO优化到商业转化的全链路趋势解读

2026企业AI搜索与品牌增长白皮书:从GEO优化到商业转化的全链路趋势解读

企业AI品牌增长新基建:基于语义向量化的GEO优化与全链路托管实战解析在AI生成式搜索逐渐取代传统搜索引擎的今天,许多技术负责人和市场总监都面临着一个共同的困惑:为什么官网内容齐全、产品优势明显,但在豆包、通义千问、DeepSee…

2026/10/10 20:17:27 阅读更多 →

最新新闻

J2EE超市订单后台管理系统实战:从架构设计到事务与库存扣减

J2EE超市订单后台管理系统实战:从架构设计到事务与库存扣减

直接用标题开写。G同学曾做过一个J2EE课程设计,叫“基于J2EE架构的超市订单后台理系统”,实打实地完整跑通了需求分析、编码、部署全过程。这篇文章就以这个项目代号11812为例,拆解开发全过程,把常规文档不会写的细节一并补上。1.…

2026/10/12 0:55:27 阅读更多 →
论文降AI率工具怎么选?十款实测对比与操作避坑指南

论文降AI率工具怎么选?十款实测对比与操作避坑指南

1. 这次测评的来龙去脉:为什么2026届突然集体焦虑“AI味"2026届本科生现在应该正处于毕业论文写作的关键周期,我不止一次在后台收到类似留言——“导师说我论文AI味太重”“自己写的怎么也被标成AI生成的”“降AI率工具到底哪个靠谱”。这一波焦虑不…

2026/10/12 0:55:27 阅读更多 →
采矿CAD课程设计PPT:从软件操作到工程表达的全链路建模

采矿CAD课程设计PPT:从软件操作到工程表达的全链路建模

简介:本资源是一份面向高校采矿工程、地质环境与安全工程专业学生的《采矿CAD课程设计》教学课件,聚焦矿山地质环境治理与生态保护的CAD辅助设计实践。课件系统梳理了矿山地质环境定义、矿区生态破坏成因(含景观与生态双重破坏)、…

2026/10/12 0:54:26 阅读更多 →
桌面调度台 vs 云端 Agent 平台:Orca、美团 CatPaw、NVIDIA 路由器的三条路线谁先跑通

桌面调度台 vs 云端 Agent 平台:Orca、美团 CatPaw、NVIDIA 路由器的三条路线谁先跑通

桌面调度台 vs 云端 Agent 平台:Orca、美团 CatPaw、NVIDIA 路由器的三条路线谁先跑通 【免费下载链接】orca Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and …

2026/10/12 0:54:26 阅读更多 →
Kubernetes Python 客户端 V1beta2ResourceClaim 模型详解:Dynamic Resource Allocation 资源声明的完整 API 参考

Kubernetes Python 客户端 V1beta2ResourceClaim 模型详解:Dynamic Resource Allocation 资源声明的完整 API 参考

后端云原生容器编排 【免费下载链接】python Official Python client library for kubernetes 项目地址: https://gitcode.com/gh_mirrors/python1/python 点击查看 免费下载 导读 本文面向使用官方 Kubernetes Python 客户端(本项目仓库 gh_mirrors/p…

2026/10/12 0:54:26 阅读更多 →
CodeIgniter 4 Request 类详解:HTTP 请求的面向对象封装与全局数据安全访问

CodeIgniter 4 Request 类详解:HTTP 请求的面向对象封装与全局数据安全访问

后端Web框架 【免费下载链接】CodeIgniter4 Open Source PHP Framework (originally from EllisLab) 项目地址: https://gitcode.com/gh_mirrors/co/CodeIgniter4 点击查看 免费下载 本指南以 CodeIgniter 4 官方用户指南 request.rst 为主体,系统讲解框…

2026/10/12 0:54:26 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练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/11 14:36:54 阅读更多 →