iOS代码混淆实战:从方案选型到踩坑排查全记录
提到iOS代码混淆很多人的第一反应是不就是改个名、加个密吗等自己真上手就会发现这东西从入门到放弃往往只隔着一个加急提审的周末。我之前接过一个模拟项目X上线前夜发现用class-dump一拉所有类名方法名按字母序排得整整齐齐业务逻辑肉眼可见当时就明白什么叫“裸奔上架”。本文想把这些年的混淆实操经验整理出来从方案选型、核心原理到具体配置和踩坑记录一次性讲透混淆到底解决什么问题、哪些方案真的有用、哪一步会把你逼疯以及真遇到崩溃和审核反弹时怎么排查。如果你手上正好有一个iOS App准备做安全加固或者你被安排了某个“上架前必须做混淆”的需求这篇文章应该能帮你少走几个月的弯路。文章不劝退也不放神药只讲实际落地时值得关注的那些事。1. 方案选型先搞清楚你要对抗的是谁做混淆前先问自己一个问题你的代码穿上这层“马甲”是为了防谁是防好奇的路人用小工具扒你的逻辑还是防职业逆向工程师拿调试器逐行分析还是单纯为了满足公司安全合规的CheckList目标不同方案复杂度天差地别。1.1 四层风险场景对应不同强度的方案我把常见需求分成四个层级大家可以自己对号入座第一层防“顺手”。这类需求最常见只想让class-dump、Hopper这类一键式工具别那么顺畅。对应方案是做符号混淆类名、方法名、属性名打乱配合字符串加密对付业余玩家绰绰有余。第二层防“常规分析”。对方可能懂点逆向会用反汇编器跟踪关键函数。这时需要做控制流混淆指令块打散、跳转扁平化并去掉调试符号、优化编译选项让分析难度上一个台阶。第三层防“针对性研究”。对方愿意花时间可能为某个核心算法专门折腾一两周。此时需要成熟的商业混淆框架在LLVM中间层做指令替换、虚假控制流、常量加密、代码虚拟化属于“堡垒级”配置。第四层防“团伙级研究”。坦白说除非你的App核心价值极高否则不建议在这一层上烧钱。真正到了这个级别移动端本地代码做得再多也只是把战场往后推需要服务端配合做逻辑下沉和动态下发。大部分团队和我当年一样实际需求在第一层到第二层之间。也就是想要一个性价比不错的加固形态让大多数顺手级分析直接吃闭门羹又不打算为混淆方案本身付出过高维护成本。1.2 主流混淆方案横向对比业内常提的iOS混淆方案归纳下来就这几条路线字符串加密方案例如本地做字符串常量拆分和运行时还原实现简单、效果直观能用OC运行时把核心字符串藏起来。符号混淆方案类名方法名打乱主流工具有ios-class-guard或自研脚本改动小自动化程度高但真要绕过也不算难因为方法调用关系还在。基于编译器的混淆方案在LLVM层做控制流平坦化等效果最好能显著提高逆向成本但工程改造比较大需要适配自己的构建流程和依赖库。静态库/源码级混淆把业务源码抽出为C或C代码再编进App常见于跨平台框架处理得好会让分析者非常头疼。我见过不少团队一上来就上编译器级混淆结果三周过去崩溃率曲线起飞最终回滚到只做符号混淆和字符串加密。我的个人建议是从维护成本和稳定性看先用符号混淆字符串加密稳住基本盘侦查一下自身App的敏感逻辑有多少。确有必要再考虑LLVM层方案。安全是个成本问题不是越贵越好。下表是几种方案在关键维度的直观对比基于我个人在实际项目里的体感评分对比维度符号混淆字符串加密LLVM层控制流混淆实现复杂度低低高对包体积影响很小较小可能增加10%-30%对性能影响基本无感运行时解密有小开销视混淆比例而定抗逆向强度较弱中等较强与上架审核兼容性较好较好需注意日常维护成本低低高需要专人跟进一款普通商业App走第一列和第二列的组合性价比非常高。等业务体量真到了几十亿流水再谈第三列也不迟。2. 符号混淆与字符串加密最实用的入门组合“从入门到放弃”的转折点往往不是方案本身有多难而是很多人把符号混淆想象得太简单结果一把梭之后发现App启动就崩。符号混淆真正的工作量在于隔离边界、格式校验、白名单维护。字符串加密的坑则在运行时性能和可读性之间的取舍。2.1 符号混淆的粒度选择太细容易翻车只做类名方法名的无脑替换一个很容易翻车的细节是你替换了系统框架Delegate方法、或者某些被KVC/KVO依赖的字符串查找键运行时直接找不到对应实现野指针和unrecognized selector都是这么来的。正确做法是分层处理第一层只混淆项目自身源码里的类名、方法名、属性名不碰Category、不碰继承自系统类的关键方法比如viewDidLoad这种入口更不碰通过字符串硬编码引用的符号。第二层Protocol和C函数酌情混淆前提是全工程没有通过selector(字符串)或NSClassFromString动态引用的场景。第三层进阶如果要加大强度需要自己实现一个符号映射表生成步骤重写编译时对符号的引用关系并保留一份“混淆后符号对应原符号”的映射文件方便崩溃日志做反解。这里有一个我实测过很有效的原则符号混淆方案必须与崩溃日志还原工具联动。如果线上崩溃了而你拿着堆栈里的符号没有任何还原手段只能干瞪眼。所以混淆脚本里一定有一步是生成符号映射表并归档到构建产物里这一步不能省。2.2 字符串加密的落地姿势字符串明文是逆向分析里信息量最大的“告密者”。URL地址、密钥、错误提示文案、页面标题全都能直接让分析者拼出业务地图。所以字符串加密是性价比很高的加固手段。常见的做法是写一个编译期脚本扫描源码中的字符串常量替换成一个解密函数调用。实际项目里我建议把字符串拆成多段分别藏在不同函数里运行时再拼接还原。原因很简单如果你所有字符串都通过同一个解密函数还原逆向者只需要在这个函数下一个断点就能批量抓取明文。拆散存放、分点解密能显著提升分析成本。这个逻辑很像把家里钥匙分成几截藏在不同抽屉里藏一把完整钥匙被小偷发现就全完了拆成几截即使找到其中一截也拼不出完整信息。以下是字符串加密的核心实现思路伪代码给需要自研的朋友一个参考// 原始字符串 const char *secret https://api.example.com/v1/user/info; // 混淆后每4个字符一组分散到两个数组里 char part1[] {h, t, p, s, /, /, a, p, ., e, a, m}; char part2[] {i, :, i, x, p, l, c, o, p, l, e, p, l}; char *restore_secret() { static char buf[64]; int idx 0; for (int i 0; i 26; i) { if (i % 2 0) { buf[idx] part1[i / 2]; } else { buf[idx] part2[(i - 1) / 2]; } } buf[idx] \0; return buf; }实际工程中可以把“分片规则”替换成异或运算、位运算、或查表法强度会更高一些。这里只是想说明字符串加密的本质很简单难的是别让所有鸡蛋都放一个篮子里。2.3 哪些符号绝对不要动我整理了一个“混淆禁区清单”每次做混淆方案时都会拿出来对照系统框架的Category方法例如在UIView的Category里写了自定义方法混淆后实际调用名可能与系统私有API产生未知冲突。与IBOutlets、IBAction关联的属性方法名Storyboard/XIB里的映射是基于字符串的一旦改名就断线。通过NSClassFromString、selector动态引用的符号混淆不会自动帮你改这些字符串结果就是找不到类和方法。第三方SDK的Delegate方法代码混淆工具未必能识别SDK内部的调用约定贸然改名容易让SDK回调失效。使用某些依赖Runtime方法的框架如JSONModel、MJExtension、部分路由框架时必须加白名单。把这份清单维护到位基本就避开了80%的“混淆后崩溃”。3. 从零开始配置一套工程内的自动化混淆讲完原理直接上实操。下面是我在一套Swift和Objective-C混编的工程中验证过的流程这套流程在模拟项目X上跑了大半年线上崩溃率基本没有因为混淆本身产生过回升。3.1 准备环境与基础工具链我不太建议用商业混淆工具一上来就全自动跑第一步一定要手动跑通最小集。最低成本的环境如下macOS Xcode构建环境工程本身能独立archive出包。Python 3环境或Node看团队偏好用于写符号替换脚本。可选开源工具ios-class-guard对Objective-C支持较好团队自研脚本控制力最强。崩溃日志还原工具后续可以配合dSYM做符号还原混淆后必须保留映射表。之所以建议用手写脚本先跑通是因为商业工具虽省事但排查问题的过程是黑盒。自己做一遍能清楚知道混淆前后符号变化在哪里出了问题至少能定位。等方案跑稳了再考虑工欲善其事的问题。3.2 自动化混淆的核心流程我把最佳实践整理成一个四步走流程第一步工程扫描。脚本遍历所有Objective-C的.h/.m文件提取类名、方法名、属性名Swift工程则提取internal级别的符号。这一步要过滤掉Pods、Vendor目录等第三方代码。第二步生成映射表。为每个合法符号生成随机新符号名保证新符号名不与系统前缀、保留字、已有符号冲突。映射表存储为JSON或plist归档到构建服务器留存。第三步批量替换重写。这一步有两个方案一是修改源码文件把符号名直接替换二是用Xcode的Build Phase脚本在编译前做动态替换。我推荐后者在不修改源码文件的前提下做增量处理代码审查和Git历史都干净。第四步编译与验证。跑一遍完整archive检查链接是否通过然后用class-dump抽查关键类名是否已替换。常见的一个工程内Build Phase脚本片段 1. 读取脚本入参工程根目录、白名单配置 2. 遍历.m/.h文件 3. 正则匹配 [A-Za-z_][A-Za-z0-9_] 4. 查询映射表命中则写入临时编译文件 5. 将编译文件路径传给编译器这种方式相当于给编译器喂了一套“替换后”的源码原目录始终干净。缺点是每次编译都多出几秒钟扫描成本但对于中型工程完全在接受范围内。3.3 白名单机制从设计到配置白名单是混淆系统的“保险丝”。我建议在设计上把白名单划分为三类全局白名单所有标记为不混淆的系统前缀、保留字、宏名称。文件级白名单某些包含复杂Runtime逻辑的文件直接跳过。符号级白名单某些被动态引用的类名或方法名保留原名。配置示例JSON格式{ global: { ignorePrefix: [UI, NS, CA, CG, WK], reserved: [viewDidLoad, viewWillAppear, dealloc] }, files: [ Network/APIInterceptor.m, Router/RouteManager.m ], symbols: [ AccountManager, loginWithToken: ] }白名单不是越少越好而是刚刚好。我见过一个团队把所有网络层类全部加白名单理由是“网络层太重要怕混淆出事”结果逆向者只需要看网络层就能理清全部业务流程前面的符号混淆等于白做。正确的思路是核心敏感代码不设白名单通过大量测试兜底只有确实触发运行时依赖的代码才加白。4. 实战记录编译-崩溃-取证全链路代码写着容易真跑起来到处都是坑。这部分我把实际测试和线上排查的典型问题全部分享出来每一类都对应一个真实踩坑场景。4.1 编译期出现大量“Undefined symbol”第一次接入混淆时最容易遇到的就是链接阶段报Undefined symbol而且错误信息往往指向某些第三方库的类。排查思路如下先看映射表这个符号是不是把第三方库的头文件也一起混淆了确认是否漏掉了Pods目录过滤。再看链接参数某些静态库.a内部的符号本身已经固定而你的混淆脚本只改了调用方没有改定义方就会链接失败。此时需要把第三方库的全部符号加入全局白名单。最后查CategoryObjective-C的Category编译后会生成单独符号如果分类名混淆而主类名没混淆也会链接异常。所有编译期问题里90%以上是过滤规则不完整。脚本逻辑本身并不复杂把工程结构摸清楚、把第三方头文件的引用路径列全也就稳了。4.2 启动崩溃和“unrecognized selector”排查实录有一次在模拟项目X的测试包上一启动就崩崩溃日志指向某方法找不到。查了半天根因是项目里一个模块用字符串硬编码的方式调用了某个方法// 源码里写了这行 SEL selector NSSelectorFromString(saveUserInfoToDisk);混淆脚本并不关心字符串里的方法名结果方法被改成了随机名运行时自然找不到。解决思路有两个最优方案工程内做一次静态扫描把所有NSSelectorFromString、NSClassFromString、performSelector的字符串参数提取出来自动加入白名单。辅助方案代码审查阶段强制要求运行时调用必须走路由表严禁硬编码字符串调用方法。这背后是一个非常重要的原则混淆不是一个独立动作它倒逼你写出更规范的代码。你越依赖动态调用混淆的坑就越多。反过来那些代码规范做到位的工程接入混淆几乎是无痛的。4.3 线上崩溃日志无法反解如何快速定位混淆后收集到的崩溃堆栈基本是一堆随机符号比如“-[_TtC9AppName29abcdefABCDEF123456 :]”。如果不做还原等于线上告警全废。这就要用到“符号还原表”了。我实践中的做法是在每次构建时把符号映射表与dSYM一起归档然后用一个还原脚本把崩溃堆栈里的混淆符号还原为原始符号。流程如下还原过程 1. 接收崩溃平台导出的原始堆栈含模块名、地址、符号名 2. 遍历符号映射表将混淆符号还原为原始符号 3. 叠加dSYM的地址符号化结果得到可读堆栈启动时间和还原流程不是一回事。加固不能以放弃线上可观测性为代价。团队里如果没人维护这套还原机制我甚至建议先别做深度混淆。4.4 关于上架审核的兼容性说明审核是一个绕不开的话题。我的体感是常规符号混淆和字符串加密基本不会触碰到审核红线真正危险的往往是接入第三方混淆SDK时把加密逻辑搞得太“黑盒”甚至触发了运行时加载代码的特征。曾经有同行分享过因为混淆框架在启动阶段对内存做了大量修改操作被当成异常行为被拒。申诉虽然通过了但耽误了整整一周。所以我的建议是优先采用编译期方案能不在运行时搞小动作就不搞。对商业混淆框架动辄在启动时解密大量数据、改写指令的行为保持警惕。如果团队没有专职安全人员尽量选“老实”的编译期方案。下面是问题排查速查表现象最常见根因处理方式链接报Undefined symbol第三方库头文件被误混淆修正过滤规则库符号全量白名单启动即崩溃NSClassFromString/Selector动态引用扫描动态调用并入白名单某功能闪退且只在混淆包出现KVC对属性名字符串依赖属性名加白或改造KVC写法线上崩溃堆栈不可读缺少映射表归档构建流程固化映射表与dSYM归档包体明显变大字符串加密范围过大只加密敏感字符串排除日志口播文案5. 进阶话题LLVM层混淆和更多加固手段如果符号混淆和字符串加密已经满足不了需求再往前走一步就是LLVM层方案。这一层比前两种复杂得多我单独拿出来讲一些核心选型和取舍。5.1 LLVM层到底在做什么简单说符号混淆是给类和方法改名字而LLVM层混淆是直接对函数内部的指令做“搅浑”。它的核心思路有两类控制流平坦化把一个正常逻辑的if/else和switch压扁成一个大的分发器加一堆基本块。反汇编后你看到的不是清晰的分支结构而是一个巨大的dispatch循环。虚假控制流与不透明谓词插入一些“恒真但编译器知道、分析者难以一眼看出”的条件让常规静态分析工具算出极其复杂的路径关系。打个比方符号混淆就像把一本书的目录和标题全改了但章节内容仍然可读LLVM层混淆则是把每个句子里的语序打乱加了一堆冗余从句读起来头大但语义信息确实还在只是提取成本极高。5.2 商业框架与自研的利弊判断商业框架的优势是成熟稳定缺点是需要考虑费用、SDK体积、兼容性。自研LLVM Pass的优点是强度和定制空间极佳缺点也很明显需要团队里有懂LLVM的人维护成本较高。我的建议是如果你的工程是纯Objective-C为主先在符号层做透性价比最高如果你的核心逻辑大量集中在C/C模块比如音视频处理、加密算法那么LLVM层混淆的性价比会高很多因为C/C代码的控制流混淆收益明显且不容易触发OC运行时问题。5.3 其他被低估的加固手段混淆之外有几项手段经常被我一起打包使用反调试检测检测调试器附加状态一旦发现就改变行为或直接退出。注意别太激进误伤测试和线上问题排查。完整性校验对关键函数代码段做hash校验发现被篡改就走异常分支。服务端下沉把核心规则和算法逻辑迁移到服务端客户端只是一个“执行器”。这是性价比最高的终极方案。这四项手段一起使用时整个防护体系会更立体。单独依赖任何一项都有明显短板组合起来才能让逆向成本真正上去。5.4 性能与包体积的博弈深度混淆一定会带来代价。LLVM控制流平坦化会对函数局部变量和指令调度产生压力开启过度时甚至可能让启动时间明显增加。包体积同理插入虚假块和冗余指令二进制会变大。我习惯在接入前做一次基准记录包体积、启动时间、关键路径耗时。接入后反复对比一旦发现超过预期阈值比如包体积增加超过20%就需要调低混淆比例或按模块灰度开启。安全加固永远不能以核心体验为代价这个底线要守住。6. 我的最终建议回到开头那个“从入门到放弃”的标题我想说一句实在话如果你只是需要一个安全过检的交差方案符号混淆加字符串加密就够了二到三周可以全部接入完毕并稳定运行。如果你面对的是高价值目标那么请做好长期投入的准备聘请专业安全人员把混淆从“一次性动作”变成“日常构建的一部分”。我自己跑这些方案几年下来的最大体会是混淆这层“马甲”防君子不防小人它能大幅提高分析成本但无法做到绝对安全。真正安全的思路永远是“核心逻辑能上服务端就上服务端必须留在客户端的才交给混淆去提高门槛。”与其花三个月把客户端做成铁桶不如花一个月把最有价值的一两个接口挪到服务端剩下的交给混淆做基本防护。最后分享一个实用技巧在混淆接入后的第一个月不要急着调高强度参数先让线上数据跑出一个稳定基线。把崩溃监控和还原机制跑顺再慢慢调高强度这样即便出现异常也能在可控范围内快速定位。安全建设是持久战别指望一次到位。

相关新闻

ComfyUI循环运行流:批处理与Python脚本实现自动化出图

ComfyUI循环运行流:批处理与Python脚本实现自动化出图

接触ComfyUI有一段时间以后,你会发现真正拖慢出图速度的往往不是模型本身,而是反复执行同一套流程:同一张风格图要跑十几次微调、一批素材要逐张做预处理、一个工作流要依次处理不同提示词。手动一张一张拖进去点执行,效率很低&am…

2026/10/18 9:27:29 阅读更多 →
DeepSeek R1本地部署小白教程:LMStudio 一键跑通与 API 调用验证

DeepSeek R1本地部署小白教程:LMStudio 一键跑通与 API 调用验证

/* 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 9:27:29 阅读更多 →
D* Lite增量式路径规划:无地图环境下自动驾驶的局部重规划实战解析

D* Lite增量式路径规划:无地图环境下自动驾驶的局部重规划实战解析

先说个结论:自动驾驶里的“无地图环境路径探索”,本质上不是让车蒙着眼睛乱跑,而是让车在只有局部感知、没有先验全局地图的前提下,把“规划路径”这件事从一次性求解,变成时刻都在进行的增量式重算。D* Lite 就是这套…

2026/10/18 9:27:29 阅读更多 →

最新新闻

AirLLM:单张显卡也能跑70B大模型的分层推理显存优化方案

AirLLM:单张显卡也能跑70B大模型的分层推理显存优化方案

1. AirLLM 到底是什么:一个把“大模型塞进小显存”的暴力优雅方案QLoRA、GPTQ、GGUF,这些名字想必大家都不陌生。这几年为了在消费级显卡上跑大模型,各路方案层出不穷,核心思路无非两种:量化压缩模型权重,或…

2026/10/18 16:45:42 阅读更多 →
Playnite 主题定制 10 分钟上手:把游戏库界面改成自己的样子

Playnite 主题定制 10 分钟上手:把游戏库界面改成自己的样子

Playnite 主题定制 10 分钟上手:把游戏库界面改成自己的样子 【免费下载链接】Playnite Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games. 项目地址…

2026/10/18 16:45:42 阅读更多 →
AI教材生成全流程:低查重高质量编写实战指南

AI教材生成全流程:低查重高质量编写实战指南

最近一年我接了好几本教材编写的活儿,从高校专业课讲义到企业内训手册都有。绕不开的两件事:一是写不完的量,二是躲不掉的查重率。身边不少同行开始把AI教材生成工具纳入工作流,确实能把初稿周期从一两个月压缩到一两周&#xff0…

2026/10/18 16:45:42 阅读更多 →
视觉目标跟踪丢失后重定位:丢失检测与搜索策略工程实践

视觉目标跟踪丢失后重定位:丢失检测与搜索策略工程实践

1. 从“跟丢”说起:为什么重定位是视觉跟踪的必修课做过视觉目标跟踪的人都有一个共识:跟踪算法在视频前几十帧跑得再漂亮,都不算数,真正的考验出现在目标被遮挡、快速运动、出画再入画、或者画面剧烈抖动的那一刻。我见过太多Dem…

2026/10/18 16:45:42 阅读更多 →
PHP轻量级代理分销系统:三级分佣+订单穿透+自动结算

PHP轻量级代理分销系统:三级分佣+订单穿透+自动结算

简介:这是一套基于PHP开发的代理分销型商城系统源码,面向中小型电商创业者、PHP初中级开发者及二次开发学习者,解决多级代理管理、佣金自动结算与分销渠道拓展等核心运营需求。资源包为RAR格式,大小11.5MB,虽未提供具体…

2026/10/18 16:45:42 阅读更多 →
深度学习实战:食物分类从数据准备到部署完整指南

深度学习实战:食物分类从数据准备到部署完整指南

先说实话,做了几年图像分类的活儿,我越来越觉得“食物分类”这个题目被低估了。它不像猫狗识别那样简单到几轮就收敛封顶,也不像人名识别那样需要极其苛刻的数据条件。食材种类上百、同一种食材换个切法和熟度就完全变了样、摆盘和背景还在添…

2026/10/18 16:44:42 阅读更多 →

日新闻

基于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 阅读更多 →