iOS逆向分析实战:拆解直播间送礼功能完整链路

做iOS开发这些年,经常被问到一个问题:直播间里的送礼物,从用户点下按钮到全屏动画弹出,背后到底经历了多少环节?答案远比想象中复杂。一次完整的“送礼物分析”,基本能覆盖iOS App里最典型的客户端-服务端协作场景,也是初学者理解数据流、调用链和防护设计的绝佳入口。这篇文章我就用一次完整的“iOS逆向分析”思路,把送礼功能的链路、方法定位、参数验证和常见坑位全部拆开讲清楚。适合刚接触逆向分析的客户端开发者、测试同学,以及想了解自己App业务链路如何验证服务端逻辑的安全人员。

1. 动手前先画清目标:一次礼物发送要经过哪些链路

1.1 送礼不是单个按钮,而是“客户端-服务端”的双向协作

很多新手拿到一个安装包,第一反应是“找到那个按钮,看它调了什么方法”。这个思路不算错,但对送礼这种业务来说远远不够。送礼从表象上看,是在直播间里点击礼物图标、选中数量、点击发送,然后屏幕上出现动画,房间其他人也能看到。实际上这背后是一条完整的协作链路:

  • 客户端展示礼物列表,加载礼物图标、价格、特效标识;
  • 用户点击送礼,客户端先做本地余额或权限的预检查;
  • 客户端向后端发起下单或发送请求,携带礼物ID、数量、目标用户ID等参数;
  • 服务端校验账号状态、余额、风控规则、幂等键,然后扣款并生成订单;
  • 服务端通过长连接或消息通道广播这条礼物事件;
  • 房间内所有在线端收到广播后,解析事件类型,播放对应的动画和连击效果;
  • 送礼方自身收到确认回调,更新余额和送礼记录。

也就是说,一次“送礼物”不只是客户端的一件事,而是“UI层、业务逻辑层、网络层、服务端事件分发层”的完整串联。做分析前,先把这条链路画在纸上,比急着砸断点重要得多。它能帮你确定:我到底想看哪一段?是看UI展示逻辑、看请求参数构造、看签名算法,还是看广播事件怎么驱动动画。目标不同,用到的分析手段也完全不同。

1.2 给自己定好分析边界:研究防护,而不是研究绕过

这里必须先说清楚一个原则。分析“送礼物”这类业务链路,正确用途是理解客户端与服务端的交互契约、排查线上问题、验证自己的安全防护效果,而不是研究怎么绕过支付、修改余额、伪造礼物。服务端在真实交易场景里一定会有完整的二次校验,本地看到的价格、余额、赠送结果都不能作为最终依据。你可能会在调试器里看到一个返回值是“成功”,但那只能说明客户端认为自己成功了,服务端账单、风控、幂等校验是否认账,完全是另一套逻辑。

所以我的建议是:把所有分析都限定在自己拥有所有权、或已经获得明确授权的App上,并且把产出物转化为“链路说明文档”“参数表”“防护建议”,而不是某个能白嫖礼物的脚本。这个边界意识不是套话,是这行能长期做下去的基本素养。带着这个前提,下面所有实操方法才值得继续看下去。

2. 分析环境与工具,按这个清单准备最省事

2.1 设备环境的关键点:真机和完整调试权限

“送礼分析”看着是纯逻辑问题,但实际环境适配能卡掉一半人。先说为什么模拟器不是好选择:一是很多业务App对模拟器有环境检测,你连登录都过不去;二是模拟器的CPU架构、系统调用路径和真机有差异,你分析出来的方法调用栈未必等于线上真实路径;三是动画特效、IM长连接这类能力在模拟器上行为不完整,容易产生误判。

因此在条件允许时,请准备一台真机,iOS版本不要追最新也不要过于古老。版本太新,分析工具链可能还没适配;版本太老,App可能已经因为兼容性拒绝安装或在运行时崩溃。比较稳妥的做法是选当前多数用户仍在用的中间版本,并且让系统版本和分析工具的兼容列表对得上。设备需要具备完整的调试能力,也就是能注入动态库、能附加调试器、能读取进程内存和调用运行时方法。至于具体怎么达成这个状态,不同机型、不同系统版本差别很大,但核心要的是“能静能动”:既能做类信息导出,也能下断点、看调用栈、读写对象。

这里有个经验性的建议:分析前把App升级到目标版本后先完整跑一遍“送礼-收礼-查余额”流程,让本地缓存、登录态、长连接都热起来。很多分析卡壳,不是因为工具不行,而是因为数据没热、状态不对,导致关键方法根本没被触发。

2.2 工具选型的取舍:静态、动态、网络三件套

做iOS端链路分析,三套工具必须互相配合,缺一套都容易走弯路:

  • 静态分析工具,负责从安装包里导出类信息、方法名、字符串表,主要用于“找入口、找方法、找参数”。它能在不运行App的情况下,把二进制里的Objective-C方法列表完整拉出来。比如你搜索“Gift”“Present”“SendGift”,基本上能定位到所有与送礼相关的类名和方法名。
  • 动态调试工具,负责在App运行时下断点、打印对象、查看调用栈。它用来验证“这个入口是否真的会被走到”“参数是什么”“调用顺序是什么”。静态分析告诉你怎么走,动态调试告诉你实际怎么走。
  • 网络抓包工具,负责还原客户端与服务端的实际请求,包括URL路径、请求头、请求体、响应JSON。它是把“客户端内部逻辑”和“服务端真实反馈”对齐的桥梁。

如果遇到的方法被混淆或者加固处理,可能还要借助反汇编器做深度追踪。不过对送礼这类业务逻辑,绝大多数情况用上面三件套就能覆盖八成需求。没必要一上来就上最重的工具,抓到老鼠才是目的,工具顺手就行。

3. 四条主线解构送礼功能:UI、业务、网络、服务端

3.1 UI层:礼物面板的数据来源与展示逻辑

从用户视角看,送礼的第一步是打开礼物面板。面板上的礼物列表不是写死的,它通常来自两个方向:一是App本地内置的礼物配置表,二是服务端按活动场景动态下发的礼物列表。分析时可以先去找数据模型里跟“礼物”相关的字段,比如giftId、giftName、giftIcon、giftPrice、giftType,再顺着这些字段反查它被谁填充、被谁渲染。

这里有个非常容易踩坑的认知:礼物面板上显示的价格、角标、推荐位、连击上限,往往只是“展示值”。真正决定你能不能在某个房间送出某件礼物、能不能触发全屏特效的,是服务端根据房间状态、活动策略、用户等级返回的校验结果。如果你在调试器里发现本地把某个礼物的价格改成了1金币,面板上也可能确实显示成了1金币,但一发送就会被服务端拒绝,因为服务端那套价格表和权限判断跟本地完全是两回事。所以UI层的分析价值,更多在于定位数据模型、找到展示入口,为后面进入业务层做铺垫。

3.2 业务层:余额检查、下单与回调的时序陷阱

业务层是整个链路里最值得花时间的地方。常见的实现方式是这样的:

用户点击送礼后,客户端先读取本地余额或缓存数据进行一次“预展示”,看能不能送得起。这种本地检查的体验意义大过业务意义,余额是不是真的够,服务端说了算。紧接着客户端会进入一个确定的业务流程,可能是直接请求下单接口,也可能是预先生成订单号再走支付确认。这里要注意区分两种模式:

  • 先下单、再支付:客户端先给服务端发一个“我要送礼物”的请求,服务端检查并返回订单号,然后客户端拿着订单号去调起支付面板(如Apple内购或钱包支付),支付成功后再回调服务端确认。
  • 直接扣余额、同步发送:客户端发起发送请求,服务端直接完成扣款和广播,然后返回结果给客户端。

区分这两种模式,决定了你断点应该下在哪个方法上。如果是先下单再支付,核心方法是订单生成和支付回调;如果是直接扣余额发送,核心方法就是发送请求本身。

还有一个极其常见的开发问题:重复点击礼物会不会导致重复下单?正常商业逻辑里一定会有幂等设计。客户端会生成一个requestId或clientMsgId,服务端在同一请求ID下只处理一次。分析时如果你能看到这个参数的生成规则和携带位置,基本上就能把“防重复发送”的整条逻辑串起来。这也是我建议把业务层作为分析重点的原因,它同时承载了下单、计费、防重复三个关键机制。

3.3 网络层:请求参数、签名和防重放

到了网络层,信息密度会突然变大。一个典型送礼请求包里可能包含这些字段:发送方ID、接收方ID、礼物ID、数量、直播间ID、渠道标记、客户端版本号、时间戳、随机数、设备指纹,还有一个关键的签名参数。签名参数通常的做法是:把除签名外的所有参数按固定规则排序拼接,混入盐值,再做哈希计算。这个签名的目的是防止参数被篡改。

分析网络层时要特别关注两点:

  • 时间戳和随机数:服务端通过校验时间窗口和随机数是否重复,来判断请求是否被重放。如果你看到同一个请求被原样重发了几次,服务端大概率只认第一次。
  • 签名参数的位置和参与字段:虽然我们不建议也不应该去尝试伪造签名,但理解签名是怎么生成的,对你评估自家App的签名强度、排查线上签名失败问题非常有帮助。比如签名时是否覆盖了所有关键字段、盐值是否硬编码在客户端、是否有防调试机制保护签名算法。

网络层分析还有个额外好处:收到的服务端响应JSON里往往带着更细的状态码和错误信息,比如“礼物ID不存在”“余额不足”“房间不存在”“风控拒绝”。这些信息能直接帮你把业务层的疑惑对上号。

3.4 服务端联动:IM广播与状态码

送礼动画能全房间同步,靠的不是送礼端主动通知,而是服务端通过IM长连接下发广播事件。客户端收到广播后,按照事件类型分发:是普通礼物就播小动画,是连击礼物就启动连击模式,是特殊礼物就触发全屏特效。逆向分析时,如果只盯着送礼发送方的行为,会漏掉一大半逻辑;正确的做法是同时看“接收端收到广播后如何解析和渲染”。

举个例子,你在调试器里追动画播放方法的调用来源,可能会看到它根本不是由用户点击驱动,而是由一个消息处理类在收到远端事件后触发的。这一条线索能帮你看懂房间消息的整体设计:所有端上的表现,本质上都是对服务端事件的响应。服务端还会配合风控策略,例如短时间高频送礼会触发频控、异常设备环境会触发二次验证、大额礼物会额外校验支付密码或人脸确认。这些都不会在客户端代码里完整体现,但会在接口响应或广播事件里暴露痕迹。

4. 实操记录:从点击按钮到service call的一次完整分析

4.1 静态定位:先找到“发礼物”的入口类

这一步的目标不是读懂全部代码,而是快速锁定核心方法。最有效的起手式是导出类信息后直接搜字符串。把目标App的二进制文件用类信息导出工具拉出Objective-C头文件,然后搜索关键词。送礼功能常见的类名和方法名包括GiftSendManager、GiftCenter、PresentManager、sendGift:、sendPresent:等。关键词可以从gift、present、send、combo、anchor这几个词里扩散。

假设我们定位到了这样一个方法:

- (void)sendGift:(GiftModel *)giftModel toUser:(UserModel *)toUser count:(NSInteger)count;

这就已经是一个非常关键的入口了。它说明送礼行为的三个核心参数是“送什么礼物”“送给谁”“送多少个”。接下来不要急着下断点,先用静态信息确认这个方法的调用方。搜索谁调用了sendGift:toUser:count:,你可能会看到它被某个操作面板的确认按钮方法调用,也可能被长按手势的处理方法调用。把这个调用关系记下来,后续动态验证就有方向了。

4.2 动态验证:下断点看调用栈和参数

静态分析只能告诉你“这里有个方法”,真正确认“这个方法确实会被走到”还得靠动态调试。在目标方法上下一个符号断点,然后运行App,手动触发一次送礼操作。当断点命中时,第一时间用调用栈命令打印整个调用链,你会看到从UIButton的点击事件到业务方法之间完整穿过的所有对象。

打印关键参数也很重要。在Objective-C方法里,第一个参数是self,第二个参数是_cmd,从第三个参数开始才是业务数据。用调试器分别打印礼物模型、目标用户模型和数量,可以验证静态分析时对参数语义的猜测。这里有个经验:如果你发现断点命中的次数比预期多很多,说明这个方法被多个调用方复用,比如自动送礼、连击续赠、定时任务也会走它。这时候用一个条件断点,只匹配特定礼物ID或目标用户ID,过滤掉干扰,调试效率会高很多。

(lldb) 下断点示例

breakpoint set -n "-[GiftSendManager sendGift:toUser:count:]" condition 1 (BOOL)[$arg3 isEqualTo:目标用户对象] bt po $arg3 po $arg5

4.3 网络还原:把协议帧和UI事件对上

动态断点确认了“客户端要发请求”,但没确认“服务端收到了什么”。这时切换到网络抓包视角,打开代理抓包工具,在确保已安装并信任对应证书的前提下,再完整执行一次送礼。抓包结果里能清楚看到:

  • 请求路径类似/api/gift/send;
  • 请求方式一般是POST,Content-Type是JSON或表单格式;
  • 请求体里就是前面推测的那几个字段,额外多了时间戳、随机数和签名;
  • 响应里会返回订单号或一条“发送成功”的事件ID。

把抓包数据和动态调试打印的参数放在一起对比,你会发现非常有意思的对应关系:UI层选中的礼物ID,经过业务层传递,最终原封不动出现在网络请求体里。中间任何一步做了转换、格式化、加密,都会在这里暴露出来。

建议顺手做一次“连续两次相同操作”的抓包对比,把两个包拆开看差异。你会发现大部分字段一样,变化的只有时间戳、随机数、签名,可能还有某个业务ID。这些变化字段就是防重放逻辑的核心,也是理解整条链路幂等设计的钥匙。

5. 踩坑与排查:这些才是真正浪费时间的点

5.1 遇到代码混淆,怎么继续分析

很多线上App对自己的核心业务做了混淆处理,方法名变成a、b、c这类无意义字符,静态导出的头文件基本不能直接读。遇到这种情况,我的建议是放弃“读代码”,改成“摸行为”,顺着用户操作路径观察可感知的反馈,再通过日志、字符串表、运行时类信息枚举来逆推。比如送礼失败会弹Toast,那就搜Toast文案,找到文案定义后反查它在哪些方法里被调用,再用动态调试确认这条路径上的方法实现。

另一个常用手法是打印运行时的方法列表。虽然类名被混淆了,但Objective-C的方法签名里还保留参数类型和返回类型。你可以通过参数类型来判断一个方法大概干什么,比如含有“礼物模型”参数的方法,就算名字是a,八成也是发送礼物的入口。这类手段需要多练,但一旦熟练,面对混淆代码就不慌。

5.2 断点打上却不触发,可能问题出在哪

这是最让人抓狂的问题。断点明明下了,操作也做了,但就是不停。常见原因有四个:

  • 你分析的是类方法声明,但App实际调用的是一个同名分类方法或子类重写方法;
  • 符号表不完整,断点符号解析失败;
  • 方法在子线程异步调用,断点命中后还没停在UI窗口就被你错过了;
  • App内部有防护逻辑,检测到调试环境后主动走了一条替代链路。

排查思路是先别只在符号断点上死磕。改用运行时方法替换或日志注入的方式,在目标方法入口统一记录调用日志,观察是否真的有调用发生。如果确认被调用了但断点不停,再去检查符号表解析和线程状态。很多时候,把调试目标从一个“具体方法”换成“方法所在类的所有实例方法”,也能绕过某些绕过机制带来的干扰。

5.3 SSL抓包失败与原生协议处理的取舍

配置好代理、装好证书后,发现送礼请求依然是乱码或直接抓不到,多半是遇到了SSL证书校验或双向证书认证。常规测试场景下的处理办法是先把证书信任到系统级,在完整调试能力的设备上做SSL卸载,让抓包工具能解密流量。如果服务端做了更严格的双向认证,客户端里通常会存一份用于握手的证书或密钥,这时直接从网络层抓包成本很高,不如换思路:在App内部找发送请求的底层方法,直接打印请求体字段,或者拼接自己的半透明日志层,观察进出参数。

这里还要提一个实际经验:网络层抓不到不代表没法分析,很多二进制日志、崩溃上报、埋点都会带有请求参数。把这些日志搜集起来,比硬刚证书更高效。当然,所有操作必须在授权范围内进行。

5.4 一次完整调试后沉淀什么:从输出物反推流程

我做这类分析,最后一定要输出的不是“某个方法是什么”,而是一张完整的时序图加一张参数表。时序图描述用户点击后每一层的调用顺序,参数表记录所有关键字段的语义、来源和去向。之所以强调输出物,是因为分析过程很容易陷入“看到一个方法就兴奋”的状态,但零散的信息如果不能串成链路,下次遇到同样问题还是得重新查。把这套流程沉淀成文档后,开发和测试再排查“为什么礼物没到账”“为什么余额没扣”这类问题,直接对着文档找环节就行。

写在最后的一点实际操作体会

我个人的感触是,送礼这种业务适合成为逆向分析的入门样板,因为它数据链路足够完整、反馈足够直观,从UI到服务端中间每一步都有迹可循。但做这类分析时最需要克制的是好奇心:看到支付参数就总想着多改一位试试,看到签名算法就琢磨能不能绕过。我在实际调试中踩过几次边界后才明白,把精力放在“理解链路、梳理逻辑、验证自我保护方案”这些方向上,收获反而更大,也更踏实。

最后再分享一个小习惯。每次完成一条业务链路的分析后,我会顺手把请求参数、幂等标记、状态码整理成一张速查表。下次换一个App,哪怕风格完全不一样,只要把它的参数表往这张速查表里一套,很快就能定位到对应环节。这个动作不复杂,但长期积累下来,对快速理解各种业务系统的帮助特别明显。

相关新闻

OpenCV 3.2.0 + VS2015 + opencv_contrib 编译实操指南

OpenCV 3.2.0 + VS2015 + opencv_contrib 编译实操指南

简介:本资源为OpenCV 3.2.0在Visual Studio 2015平台下的完整编译产物包,专为计算机视觉初学者与项目开发者设计,解决Windows环境下OpenCV核心库与contrib扩展模块难以一键集成的痛点。压缩包含456个文件,涵盖280个hpp头文件&…

2026/10/20 16:52:04 阅读更多 →
基于Spring Boot的非遗传承系统:从展示到商城交易闭环设计与实现

基于Spring Boot的非遗传承系统:从展示到商城交易闭环设计与实现

“非遗”这两个字一听就带点遥远和厚重的味道,但真要把它做成一个能让用户逛起来、买得动的产品,拼的还是技术基本功。我最近正好带完一个基于 Java Spring Boot 的非遗传承系统项目,系统里既要做非遗项目展示、传承人管理这些偏内容侧的模块…

2026/10/20 16:51:02 阅读更多 →
WinForms DataGridView高保真打印引擎:支持样式同步与动态分页

WinForms DataGridView高保真打印引擎:支持样式同步与动态分页

简介:这是一套面向C# WinForms开发者的通用打印功能实现方案,专为解决DataGridView控件数据按需排版、样式化输出至打印机或预览窗口的常见需求而设计。资源完整封装了基于PrintDocument的核心打印逻辑,并集成PageSetupDialog、PrintPreviewD…

2026/10/20 16:51:02 阅读更多 →

最新新闻

Ubuntu下PostgreSQL安装配置与Navicat连接指南

Ubuntu下PostgreSQL安装配置与Navicat连接指南

做后端开发或者数据相关工作的朋友,应该都经历过这么一幕:好不容易在 Ubuntu 上把 PostgreSQL 装好了,却发现命令行操作没问题,客户端工具却怎么都连不上;或者反过来,Navicat 装好了,连接时报一…

2026/10/20 17:33:06 阅读更多 →
uniCloud Serverless 实战:英语学习小程序全链路开发

uniCloud Serverless 实战:英语学习小程序全链路开发

简介:这是一套面向英语学习者与小程序开发者的完整项目源码,基于uniapp与uniCloud Serverless架构构建,可直接在微信环境中运行。项目集生词本记录、拍照识别单词、内置词典查询、AI语音翻译、跟读打分评测于一体,并针对考研人群补…

2026/10/20 17:33:06 阅读更多 →
WiFi指纹室内定位实战:从原理到Demo搭建

WiFi指纹室内定位实战:从原理到Demo搭建

1. 室内定位的现实困境与WiFi方案的破局点实话实说,第一次接手“基于WiFi的室内定位”这个方向时,我心里是打鼓的。日常大家用GPS导航已经习惯了,掏出手机就能知道自己在哪,但一旦走进大型商场、地下车库、机场航站楼,…

2026/10/20 17:33:06 阅读更多 →
大模型后端长对话记忆架构全解析:从无状态到有状态

大模型后端长对话记忆架构全解析:从无状态到有状态

做后端的人都有过这种体验:用户和AI助手聊了三十轮,前二十轮里明明已经把需求背景、偏好、禁忌都交代清楚了,结果聊到第三十一轮,AI突然反问一句“您刚刚提到的那个项目背景,方便再描述一下吗?”当场血压就…

2026/10/20 17:33:06 阅读更多 →
D435相机+OpenCV快速上手:彩色图与深度图实时显示全攻略

D435相机+OpenCV快速上手:彩色图与深度图实时显示全攻略

最近不少做视觉入门的朋友卡在第一关——把D435相机的画面真正“看”到屏幕上。很多人买了一台Intel D435深度相机,兴冲冲插上USB线,结果CPU占用飙高、程序报错、画面黑屏,折腾一晚上就劝退了。其实用D435搭配OpenCV显示彩色图和深度图&#…

2026/10/20 17:33:06 阅读更多 →
自考论文降AI率实战:智能体改写与人工复核全流程

自考论文降AI率实战:智能体改写与人工复核全流程

自考论文写到提交前,最让人血压升高的往往不是查重率,而是学校突然要求提交一份AI检测报告。A同学就是这种状况:论文初稿在查重系统里已经降到合格线,结果学院的通知里多了一句“AI疑似率不得超过20%”。他拿自己的稿子去测了一下…

2026/10/20 17:32:04 阅读更多 →

日新闻

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实现详解

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

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

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

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

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

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

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在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/20 10:02:08 阅读更多 →
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/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练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/20 9:50:45 阅读更多 →