dnSpy 6.1.3-net472 实战:从反编译到修改调试 .NET 程序集
简介dnSpy-6.1.3-net472.zip是一款面向.NET开发者的集成式反编译与调试工具基于.NET Framework 4.7.2构建适用于Windows平台。它能够将程序集元数据和IL代码还原为可读的C#或VB.NET源码支持.NET Framework、.NET Core与Mono程序集并能处理加密或混淆过的代码适合代码逆向分析、恶意软件排查、现有库学习及逆向工程实践。压缩包内主要包含dnSpy.exe、dnSpy.x86.exe、dnSpy.Console.exe等可执行文件配套dnSpy.exe.config配置文件、用于调试定位的PDB符号文件以及readmev6.1.3.txt说明文档整体大小仅22.37MB携带方便。内置调试器允许在反编译代码中直接设置断点、跟踪变量与调用堆栈还支持远程进程调试十六进制编辑器则可直接修改程序集二进制数据便于修复元数据或处理二进制资源。目前已有1514人学习下载无论是初学者理解代码逻辑还是开发者深度调试运行时错误、定制扩展开源工具这份资源都能提供实用支持。1. dnSpy-6.1.3-net472 是什么一个能反编译、调试、改 .NET 程序的“手术刀”接到一个没有源码的老系统业务逻辑全在一堆编译后的 DLL 里要排查一个 bug 却连日志都加不进去——这种场景下dnSpy 6.1.3-net472 就是最能救命的工具。它不像 ILSpy 那样只能“看”dnSpy 能直接改程序集内的 IL 代码还能附加到进程实时调试相当于给 .NET 逆向分析配了一把带瞄准镜的手术刀。这个 6.1.3 版本是目前流传度较高的稳定版net472 后缀指的是程序自身跑在 .NET Framework 4.7.2 上Windows 7 以上系统基本都能直接拉起来。它的典型用户有三类维护无源码项目的开发者、做插件兼容性排查的工程师、以及想要搞清楚某个闭源组件内部逻辑的爱好者。无论你是想篡改一个方法返回值还是想给一段反编译代码打上断点dnSpy 都能在一个界面里完成。下文我会从安装启动、反编译分析、程序集修改、调试排错到命令行自动化把这条完整链路拆成可复现的操作步骤并标出那些新手最容易翻车的地方。2. 安装与启动net472 版本怎么选、怎么跑起来2.1 下载解压与文件校验dnSpy 6.1.3-net472 以 zip 压缩包形式分发没有安装向导解压即用。拿到压缩包后不建议直接双击运行先做一步校验防止下载过程中损坏或被人掉包。在 PowerShell 里算一下 SHA256 哈希比对发布页面给的值Get-FileHash .\dnSpy-6.1.3-net472.zip -Algorithm SHA256输出的 Hash 字符串应和发布侧发布信息里写的完全一致。如果比对失败换一个镜像源重新下载不要硬着头皮解压运行。解压后目录里会出现几个 exe 文件常见的是文件用途dnSpy.exe主程序通常以本机安装的 .NET Framework 版本来区分是 32 位还是 64 位dnSpy-x86.exe32 位版本用于调试或打开 32 位程序集时有更匹配的位数dnSpy.Console.exe命令行版本用于把程序集导出成工程或反编译文本dnSpy.Console-x86.exe命令行 32 位版本提示如果你的系统是 64 位并且目标程序集没有特殊的 32 位依赖直接用 dnSpy.exe 即可。需要调试某个 32 位进程时换 dnSpy-x86.exe 更稳妥。2.2 启动参数与全局设置第一次启动 dnSpy 可能会慢几秒因为它要加载程序集元数据和内置的反编译引擎。如果出现界面字体太小或代码缩进风格不对打开“工具 - 选项”调整“显示”里可以设置字体、字号、行距推荐用等宽字体比如 Cascadia Code。“反编译器”里可以切换 C# 版本、是否显示注释、是否解析 XML 文档。“语言”里可以切换界面语言支持简体中文。启动参数方面dnSpy 支持通过命令行传一个程序集路径直接打开目标文件比如.\dnSpy.exe D:\target\SomeModule.dll这样进入界面后目标程序集已经挂在左侧的“程序集浏览器”里。如果你经常处理某个固定项目可以在自己的启动脚本里带上这个参数省去每次手动拖拽。还有一个容易被忽略的设置在“工具 - 选项 - 反编译器”里勾选“显示解混淆后的名称”前的选项遇到轻度混淆的程序集会舒服很多。注意不要依赖它处理重度混淆效果有限。3. 反编译与代码分析把 DLL 变成能读懂的 C# 源码3.1 打开程序集与资源管理运行 dnSpy 后直接把需要分析的 DLL 或 EXE 拖进窗口左侧的“程序集浏览器”会展开成树形结构。树的第一层是程序集信息展开 namespace再展开类最后能看到方法和字段。双击任意方法右侧代码窗口立即显示反编译出来的 C# 代码。这比拿 ILSpy 单独导工程再连 IDE 要快得多适合快速确认某个方法的内部逻辑。代码窗口里原始类型的引用是彩色高亮的按住 Ctrl 键点击一个类型或方法名可以直接跳到它的定义。如果程序集之间有引用关系dnSpy 会沿着元数据把依赖也加载进来——但注意依赖程序集如果没放在同目录可能加载失败左侧就会显示黄色感叹号。这时把缺失的依赖复制到目标文件夹再重新打开程序集即可。如果你要看的代码被混淆过方法名可能是一堆乱码类名也完全无意义。此时可以右键方法名选择“分析”菜单查看这个方法被谁调用、调用了谁。通过调用链反推逻辑往往比硬读代码更有用。3.2 搜索、跳转与调用链分析dnSpy 有几种搜索方式都集中在顶部的“搜索”菜单CtrlT按类型名搜索快速跳转到某个类。CtrlShiftF在所有的程序集、所有类型、所有成员里搜字符串/方法名常用于找硬编码的 URL 或某个日志标记。CtrlShiftZ打开“分析”窗口对当前选中的成员显示“被引用”、“引用”、“被派生”等关系。分析窗口是我最常用的功能。比如怀疑某个方法被定时器回调右键方法 - “分析” - 查看“被引用”就能列出所有调用它的位置。这比单纯用 grep 方便因为它是从元数据层面做索引的连通过反射调用的字符串名称都查不到但至少能排除大部分直接调用。实际操作中我一般会用 CtrlShiftF 搜一个错误信息字符串凡是反编译代码里出现这个字符串的地方大概率就是抛出异常的位置。找到候选方法后再配合“分析”窗口追溯调用源定位到最终的入口点整个过程十分钟内就能把一条业务链路摸清。3.3 导出完整工程当反编译结果足够清晰需要把整个程序集恢复到可编译的工程时用“文件 - 导出到项目”功能。对话框里可以设置输出目录和项目类型dnSpy 会生成一个 .csproj 和按 namespace 分出来的文件夹。导出的工程通常会附带原始程序集里嵌入的资源文件比如配置文件、图片、多语言资源档。但要注意导出的代码可能因为在混淆或异常流程控制下产生编译错误不要指望它一次能通过编译。导出时可以选择“创建强名称重签名”选项但如果原始程序集有强名称而没有对应私钥导出工程编译时需要先生成临时签名运行时代理会不同。我一般会在导出后直接运行dotnet build看看报错分两类一类是代码本身不完整缺引用/缺资源这类不用管另一类是语法错误这类可从反编译器角度想想是不是某些结构不被 C# 表达就改用 IL 视图查看。4. 修改程序集与调试会话从看懂到能动手改4.1 用 C# 直接改方法逻辑dnSpy 最杀手的功能是“编辑方法”。在某个方法上右键选择“编辑方法”会打开一个 C# 编辑面板里面显示的是这个方法反编译后的原始源码。你可以在里面修改、插入代码点“编译”后dnSpy 会把你的 C# 重新编译成 IL 并写回内存中的方法体。这个方法体是虚拟的只有保存程序集时才会真正写入文件。举个例子已知某个方法原来返回 0你希望它返回 42编辑面板里改成public int GetResult() { return 42; }保存后在右侧代码窗口就能看到 IL 视图对应的指令变成ldc.i4.s 42 ret修改前要注意dnSpy 的 C# 编辑器支持能力有限复杂的局部变量声明、lambda、await 代码往往编译不过去。实践中最稳妥的改法是把整个方法体替换成一段极简单的代码或者用 try/finally 包一层在里面做日志。比如public void DoWork(string input) { System.IO.File.AppendAllText(D:\debug.log, DoWork called input); // 下面是原始逻辑 OriginalBody(); } void OriginalBody() { // 这是从原始 IL 还原出来的代码 }编辑面板里没有 OriginalBody 这个方法实际你在“编辑方法”时只能看到一个方法的代码你不能在同一个类里新增方法。正确做法是少说话直接在原方法里附加上你的代码尽量别动原有语句。4.2 用 IL 指令精修当 C# 编辑无法编译时就直接编辑 IL。在“编辑方法”面板下方切换到 IL 视图也能直接手动修改。IL 指令需要知道常见的几个指令作用ldarg.0把当前实例指针this压栈ldarg.1把第一个参数压栈ldc.i4 1把整数常量 1 压栈ret返回栈顶值nop空操作常用于占位或对齐比如想把一个方法改成“永远抛异常”可以这样写 ILldstr Forced exception newobj instance void [mscorlib]System.Exception::.ctor(string) throw写完后再点“编译”dnSpy 会做 IL 校验如果有堆栈错误会直接提示。拿到 IL 级别的修改能力意味着不受 C# 语法限制但也要小心IL 没有类型检查两个不同的 type token 混用可能在运行时抛 TypeLoadException。4.3 附加进程与断点调试dnSpy 不仅能静态改程序集还能像 Visual Studio 一样附加到进程。选择“调试 - 附加到进程”从列表里选一个已运行的 .NET 进程。附加成功后左侧程序集浏览器会自动同步已加载的模块你可以在任意方法里打断点运行到断点时可以查看调用栈、局部变量、监测量。注意一个关键坑附加调试要求 dnSpy 的位数和进程位数一致。32 位进程要用 dnSpy-x86.exe 附加否则进程列表里根本看不到它。另外断点如果打在 JIT 已经编译过的方法上进程已经跑了很多代码dnSpy 也能命中因为这相当于从 JIT 层做 patch微软的 .NET 调试接口支持这个机制但比启动时调试要慢一些。实际调试操作步骤附加到目标进程。打开目标方法所在类定位到方法。右键方法 - “编辑断点”可以设置条件断点例如input admin。触发业务逻辑断点命中后在“局部变量”窗口观察参数和 this 字段。调试模式下还可以在“即时窗口”里执行一些查询表达式但语法存在限制复杂 LINQ 不一定支持。5. 避坑与常见问题net472 版本这几个坑必须知道5.1 启动黑屏或闪退现象双击 dnSpy.exe 后屏幕闪一下进程就消失了或者界面卡在黑屏状态十几秒然后报错。原因最常见是系统缺少 .NET Framework 4.7.2 运行时。虽然 Windows 10 1803 以后自带但 Windows 7 上如果没有安装对应版本就会启动失败。还有一种情况是杀毒软件拦截了程序集的文件加载。解决先确认运行时。控制面板 - 程序和功能查看是否安装 .NET Framework 4.7.2。没有就安装对应的运行时包。然后做的事是把 dnSpy 整个目录加入杀毒软件白名单。如果还闪退打开事件查看器eventvwr看应用程序日志里是否有 .NET Runtime 错误把异常堆栈贴到搜索里找关键字。5.2 右键菜单没有“编辑方法”现象在某个方法上右键菜单里的“编辑方法”是灰色的或者干脆没有这个选项。原因一些只读项目比如已运行的进程模块、由 dnSpy 打开但未保存的某些模块不支持修改。此外如果程序集是用 .NET Core 的 ReadyToRun 格式编译的dnSpy 的旧 net472 版本可能没法直接编辑其实体方法。解决检查左下角或代码窗口标题是否标记为“只读”。如果是附加到进程而产生的模块需要先“全部保存”到磁盘再打开编辑。对于 ReadyToRun 的程序集先查找有没有对应的 AppHost 配置最好先反编译导出成工程修改后再用编译器重新生成。5.3 保存修改后程序无法运行现象用 dnSpy 修改 DLL 并保存覆盖原文件后目标程序启动立刻报错比如“未能加载文件或程序集”或“强名称验证失败”。原因原始程序集有强名称签名Strong Name任何对 IL 的修改都会让签名失效。还有一种是程序集带有 Authenticode 签名修改后数字签名被破坏。解决如果原始程序集有强名称必须在保存时勾选“重签名”并提供一个匹配的密钥文件。没有私钥就只能同时去掉强名称引用——这意味着凡是强引用这个 DLL 的程序都会加载失败只能把调用方程序也一起改了。对于 Authenticode只能移除签名后再运行如果系统强制校验就不能用改 DLL 的方案改用运行时钩子方式。我的经验是改之前先备份改完立即用 PE 查看工具检查是否还有有效签名避免覆盖原文件后无法回退。5.4 反编译代码里出现“异常状态机”或不可读代码现象反编译出来的方法里全是 switch、while(true)、局部变量被大量赋值完全不是正常人写的 C# 代码。原因代码被混淆工具处理过特别是控制流混淆比如 ConfuserEx 的 Anti-Tamper。dnSpy 虽然能解析 IL但不能完美还原成干净的 C#。解决这种代码很难实用别浪费时间硬读。用 dnSpy 的“分析”窗口找调用关系用“搜索”窗口找字符串常量重点关注外部资源文件名和对 API 的调用序列。如果必须修改建议在 IL 视图直接改因为 C# 重编译基本不可能成功。另一个办法是动态调试在调用这个混淆方法之前打断点然后手动调整局部变量值。5.5 附加调试时断点命中不了现象附加到进程后在目标方法设置的断点永远是空心圆提示“不会命中此断点”。原因附加时选错了进程位数或者目标方法所在的程序集是通过反射加载的Assembly.LoadFromdnSpy 在附加时还没有加载该程序集断点就无法绑定。还有一种是 Release 版本启用了优化方法被内联或代码地址偏移。解决确认 dnSpy 位数和目标进程一致。如果程序集是动态加载的先把 dnSpy 保持附加状态然后触发程序去加载 DLL再回到 dnSpy 右键“刷新模块”或“刷新断点”。对于内联的方法先禁用 JIT 优化在 dnSpy 的调试设置里勾选“抑制 JIT 优化”然后重新启动进程而不是附加。附加模式下无法强制取消 JIT 优化只能靠运气。6. 进阶命令行模式与自动化批处理静态分析改文件只是单次操作当你面对十几个 DLL 需要批量导出代码或分析某个特征字符串时用 dnSpy 的图形界面一个个点太慢。dnSpy 自带命令行工具 dnSpy.Console.exe可以脚本化执行反编译和工程导出。先查看帮助.\dnSpy.Console.exe --help输出里会列出支持的参数常见的选项包括指定输出目录-o、指定程序集路径、指定导出类型。比如我需要把某个目录里所有 DLL 都反编译成可读的 C# 文件并放到一个文件夹里通常会写个 PowerShell 循环$targets Get-ChildItem .\bin\*.dll foreach ($dll in $targets) { .\dnSpy.Console.exe -o .\decompiled\$($dll.BaseName) $dll.FullName }这里-o后面是输出目录会按程序集名自动建子目录。$dll.FullName是要处理的文件路径。跑完后用 dir 检查输出。需要注意dnSpy.Console.exe 有时会因为没有图形界面而缺少一些上下文比如加载依赖失败这种情况下在脚本里先Copy-Item把依赖复制到输出目录再运行更稳妥。还有一个好用的技巧是直接在命令行里搜索字符串。dnSpy.Console 没有专门 grep 参数但可以配合管道把导出的 C# 文件用 Select-String 搜索Get-ChildItem .\decompiled -Recurse -Filter *.cs | Select-String SecretKey|password|token这样等价于对整个程序集做全局搜索比在 GUI 里 CtrlShiftF 更可控。我自己的教训是批量处理前一定要检查命令行版本位数和内存占用。某次我在某跨平台系统上导出大量程序集图省事用了默认的 32 位 Console结果解析到一半直接 OutOfMemoryException。后来换成 64 位 Console 并关闭其他程序内存占用从 1.5G 降到 400M任务顺利跑完。现在我的习惯是任何批量导出任务第一件事先看任务管理器确认可用的内存余量同时在脚本最前面加上 try/catch把每个失败的程序集路径写进 error.log而不是中断整批处理。这些细节能省下大量来回排错的时间希望帮到你。本文还有配套的精品资源点击获取

相关新闻

浏览器自动化实战:油猴脚本与Playwright技术选型及核心实现

浏览器自动化实战:油猴脚本与Playwright技术选型及核心实现

1. 从需求到方案:自动化操作的技术选型思路1.1 这类需求到底在解决什么问题先把场景说清楚。很多在线学习平台会记录视频观看进度、章节完成状态、习题提交情况,而学员端往往需要反复点击、等待、切换页面。当课程数量多、章节碎、时间窗口紧的时候&…

2026/10/17 7:57:18 阅读更多 →
Windows下配置GCC编译环境的正确路径:MSYS2+MinGW-w64实战指南

Windows下配置GCC编译环境的正确路径:MSYS2+MinGW-w64实战指南

1. 项目概述:为什么在Windows上“下载GCC”这件事本身就不准确?很多人搜“windows平台下载GCC编译器”,点开就懵了——官网找不到.exe安装包,GitHub上全是源码压缩包,Cygwin、MSYS2、MinGW-w64、ClangLLVM……名字一堆…

2026/10/17 19:17:12 阅读更多 →
t3code:用三层编码规范根治项目混乱与代码治理

t3code:用三层编码规范根治项目混乱与代码治理

t3code 这个词,第一次出现在我工作笔记里的时候,其实就是个随手起的内部代号:三层、三个字母、一套编码约定。真正让我决定把它叫出来的原因,是团队仓库已经乱到“找文件比写代码还累”,脚本到处是临时目录&#xff0c…

2026/10/15 3:09:04 阅读更多 →

最新新闻

网络向量是什么?从攻击路径看安全防护的底层思维

网络向量是什么?从攻击路径看安全防护的底层思维

打过几年攻防演练,也在企业内部做过红蓝对抗的评估,我发现一个特别普遍的现象:很多新手谈安全,张口就是漏洞、就是CVE编号,恨不得把漏洞库背下来。但真到了分析一个系统、一条业务链路的时候,反而不知道从哪…

2026/10/18 14:45:44 阅读更多 →
从 FinOps 到 FinAPI:大模型 Token 吞噬利润,TaoToken 统一 Key 通道怎么算这笔账

从 FinOps 到 FinAPI:大模型 Token 吞噬利润,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/18 14:45:44 阅读更多 →
人机协作项目文档实战:用 TaoToken 统一 Key 打通 HITL-AgentScope 多模型调用

人机协作项目文档实战:用 TaoToken 统一 Key 打通 HITL-AgentScope 多模型调用

/* 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 14:45:44 阅读更多 →
用 TaoToken 统一 Key 跑通 abm-llms:Smart Agent-Based Modeling 多智能体仿真环境搭建大纲

用 TaoToken 统一 Key 跑通 abm-llms:Smart Agent-Based Modeling 多智能体仿真环境搭建大纲

/* 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 14:45:44 阅读更多 →
Flask 数据库连接池实战:用 DBUtils 把 pymysql 连接改到 TaoToken 统一通道

Flask 数据库连接池实战:用 DBUtils 把 pymysql 连接改到 TaoToken 统一通道

/* 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 14:45:44 阅读更多 →
TCP/IP 协议栈与 HTTP 协议原理:从分层模型到报文传输全过程

TCP/IP 协议栈与 HTTP 协议原理:从分层模型到报文传输全过程

网络通信是 Web 接口开发的底层基础。本文讲解 TCP/IP 四层协议栈分层职责,数据包封装和解封装流程;深入讲解 HTTP 协议请求报文、响应报文、HTTP 方法、状态码、无状态特性;对比 HTTP/1.1、HTTP/2、HTTP/3;HTTPS 加密原理&#x…

2026/10/18 14:44:43 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

2026/10/18 0:00:55 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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 阅读更多 →