# 大航海时代2的逆向工程实验
**作者**: snowboat
**日期**: 2026-05-21T00:56:35.000Z
**来源**: [https://x.com/snowboat84/status/2057264254319993332](https://x.com/snowboat84/status/2057264254319993332)
---

我最近拿《大航海时代II》做了一个逆向工程的实验。
这个实验的目的不是做怀旧,不是做攻略整理,不做复刻原作,不是做新的module,这些三十年前就有人做过了。这次做它是为了回答两个具体的问题。
第一,AI到底能不能帮人做逆向工程,可以做到怎样的一个程度?
我不太相信"AI一键搞定逆向工程"的那种神话。但能不能让AI把一堆散乱的字节、文本、图像、脚本变成一张可验证的结构图,担起其中大量的脏活?人和AI在这套流程里各干什么?哪些步骤适合自动化、哪些必须人工确认?这是这次实验想验证的方法论问题。
第二,90年代老一代设计师们到底把什么样的设计智慧塞进了极低的内存和算力里?
内存几百K、磁盘几M的年代,他们怎么做出6条主人公线、100个港口、几百个人物,让这些东西相互交叉、相互触发、组成一个看起来活的世界?这套设计原语,在AI movie和交互叙事重新被讨论的今天,还有什么可借鉴?
老游戏不是终点,是样本。逆向的目的,是提炼一套AI时代的逆向方法,再加一套可复用的老游戏设计原语。
《大航海时代II》是个好样本。它没有今天3A大作的体量,但有海图、港口、贸易、船只、人物、任务、国王、海盗、探险、战争和六条主人公线。表面看是航海冒险,底层是身份、地点、资源、事件和旗标组成的一张状态网。低体量、高结构密度,正好是分析的理想对象。
# 一、一次AI逆向工程实验
## 1.1 老游戏最迷人的地方,往往藏在二进制里
很多人提起老游戏,会先想到像素画、MIDI音乐、旧手柄和童年回忆。这些当然重要,但我最感兴趣的是底层结构。
我真正想看的是:在内存、磁盘和算力都很紧的年代,设计师到底怎样组织复杂世界。
九十年代的游戏很残酷。资源不够,屏幕很小,文本不能随便写,图片不能随便塞,脚本也不能任性膨胀。今天一个小团队可以把几GB素材塞进项目里,当年的设计师面对的是一套硬约束。
硬约束会逼出很清醒的设计。
《大航海时代II》的厉害之处,恰好在这里。它没有用海量演出制造世界感,而是用少量状态制造变化。一个港口既是交易点,也是剧情点,还是情报点。一个人物既能推动一条线,也能把另一条线提前埋进来。一个任务表面上只是跑腿,实际上可能在改变玩家身份。
这类结构如果只靠游玩体验,很容易被看成“剧情很多”。可一旦把文本、事件和数据拆出来,就会发现它真正的复杂性在组织方式。
## 1.2 AI出现之前,逆向工程是怎么做的
先澄清一件事:逆向工程是个大词,对象差别很大。
常见的几类:
- 商业软件破解:解DRM、生成注册码、绕过授权。1990到2000年代盗版圈的主战场。
- 恶意软件分析:病毒、木马、勒索软件抓到样本以后反推它的行为、C2地址、利用的漏洞。今天安全行业的核心工作。
- 协议和文件格式逆向:抓包反推私有协议(早年的Skype、QQ、各种游戏服务端协议),或者解一个没公开规范的二进制文件格式。
- 老游戏资源和脚本逆向:解开 .lzw、.dat这类封包文件,理解资源布局和剧情脚本系统。这次项目就在这一类。
- 硬件芯片逆向:芯片解封装、显微镜拍照、一层层磨掉重建电路网表。门槛最高,只有少数实验室在做。
工具有重叠,但目标和产物差别很大。
还有一件容易被混在一起的事:做游戏修改器、金手指、外挂这类东西,严格说不算逆向工程。Cheat Engine之类的工具只是在运行时内存里搜一个数字(HP、金钱、属性值),找到地址以后改值。它不需要理解程序逻辑,只需要找一个数然后覆盖它。逆向工程的核心是搞清楚程序怎么工作,作弊只需要找一个值改它。两件事经常被混在一起说,但完全是两个性质。
这次项目属于上面第四类,老游戏资源加剧本脚本系统的逆向。要做的事跟破解、作弊无关:目标是把1994年这套游戏的内部结构(数据表、脚本字节码、剧情拓扑、人物关系网)从二进制里抠出来,让今天的人能读、让今天的AI能整理。
下面回到主线:AI出现之前,老派逆向工程是怎么做的。
传统逆向圈有一套很硬的工具链:
- 反汇编器:商业的IDA Pro是行业标准,开源的Ghidra是NSA 2019年放出来的,Radare2是命令行老牌。把可执行文件翻译成汇编。
- 十六进制编辑器:HxD、Hex Workshop这类工具,直接看二进制字节。
- 调试器:Windows上的x64dbg、OllyDbg,DOS时代的SoftICE,本项目用的DOSBox-X内置debugger。在程序运行时下断点、看寄存器、看内存。
- 资源解包脚本:手写的Python或C程序,专门拆某个游戏的 .lzw、.dat之类的封包文件。
- 论坛和资源站:The Cutting Room Floor、Romhacking.net、KOEI系列的同好论坛,里面常常已经有半成品的格式说明。
老派的流程很硬,但也很慢,依赖三样东西:资深工程师的直觉、对汇编和文件格式的深度熟悉、大量时间。一个中等规模的老游戏,圈内高手单干通常要几个月到一年。

真正卡人的是数据量本身,工具反而都够用。
游戏里的文本可能有5000多条,脚本字节码有几万字节,资源文件有上百个chunk。靠人脑装这些东西很容易崩。10个chunk能盘清楚,48个chunk加186个subscript加745条派发边一起堆上来,就开始失控。逆向工程里最常见的失败有一种特定形态:材料都看见了,但组织不起来。"看不懂某条汇编"反而是少数情况。
老派逆向圈对这件事的应对,是花大量时间在记账:建Excel、建SQLite、写注释、画手工的graphviz关系图。一个项目一半工作量在写文档和维护索引。
## 1.3 AI出现之后,逆向工程多了一个研究助理,还是主力?
AI加入这条流程,没有替代任何一个传统工具。反汇编器还是反汇编器,调试器还是调试器。AI接手的是中间那一大段"看见了,但还没组织好"的工作。
具体在这次实验里,AI干的事大致是这几类:
- 批量整理:把二进制资源抽成可检查的图像、表格、文本。5800条文本从 .mes文件里抽出来后,AI按人物、地点、任务、事件做粗分类,给人后续筛查。
- 结构归纳:把脚本块、子脚本、派发表收束成结构图。原始数据是一堆字节偏移,AI帮你把它画成chunk → subscript → dispatch edge的拓扑。
- 置信度标注:把"看起来像分支"的东西和"真的有证据的分支"分开标注。这一步特别重要,下一节会展开讲。
- 跨文件对照:港口名出现在数据表里、剧情文本里、菜单里、攻略里,AI帮你把这几处对齐,告诉你哪些是同一个港口的不同写法。
- 失败路径记录:每次尝试解码失败的格式、走死的反汇编路径、对不上的字段对齐,AI帮你存档,避免下次重复踩同一个坑。
回到标题里的问题:AI到底是助理,还是主力?
按工作量算,AI是主力。
这个项目里80%以上的时间花在整理、归纳、对齐、记账上,这些活基本全交给AI。5800条文本如果让我手动按人物、地点、任务分类,至少要两到三周。AI半天给出粗分类,我花两个小时筛错。48个chunk、186个subscript、745条派发边手画拓扑图要一周。AI半小时画完,我花一个上午检查异常节点。没有AI这个项目跑不下来,或者跑下来要慢一个数量级。这条挺关键,因为传统逆向圈里劝退最多人的,正是这种"看见数据但组织不起来"的中间地带。AI把这个地带的体力活基本接掉了。
按判断权重算,AI还是助理。
剩下不到20%的时间,是真正的逆向核心:opcode到底什么语义,某条派发边到底是控制流还是误识别,某个文本引用是真的引用还是裸扫假阳性。这些判断必须靠反汇编器、调试器和最小实验去压实。AI在这一层会猜,且经常猜得"读起来很通顺"。逆向工程里最危险的就是"看起来合理"。一个字节可能是文本ID,也可能只是另一条指令的操作数。一个重复出现的人名可能是桥节点,也可能只是同一段文本被复用。
所以更准确的说法是:AI是grunt work的主力,是判断层的助理。两件事都重要,少了第一件项目跑不下来,少了第二件项目跑歪了。
我自己的工作流大致是这样:AI先把可能性全摊开,给出候选加置信度。我拿反汇编器、调试器、最小实验把高置信度的部分钉死,把低置信度的部分要么验证、要么标"未确认"放回去。两层来回几次,可信的拓扑就一点点长出来。
所以这个项目没有验证"AI能不能一键逆向老游戏",那个说法太夸张。也没有验证"AI只是个会写文档的助手",那低估了它接管的工作量。
我真正想验证的是另一件事:AI能不能把逆向工程中大量"看见了但还没理解"的材料,整理成可验证的拓扑结构?
答案是能!且效率比纯人工有数量级的提升,但人必须留在最关键的判断层。
## 1.4 为什么选《大航海时代II》
《大航海时代II》是光荣(KOEI)《大航海时代》系列的第二部。不同平台版本的发行时间略有差异,常见资料会把它放在1993到1994年前后。英文版常见标题是Uncharted Waters: New Horizons。
它适合做样本,原因不在规模和难度,而在它刚好处在一个很有意思的位置。
它有足够多的内容。六个主人公、上百个港口、大量角色、贸易和航海系统、发现物、道具、王国任务、海盗和战争。内容量足以让逆向工作有结构可挖。

它又没有大到完全不可碰。九十年代游戏的文件体量仍然有限,资源和脚本相对集中。你能把原始材料全部扫一遍,也能把关键文件逐步拆开。
更重要的是,它有清楚的系统感。
很多游戏的剧情是“文本加触发器”。《大航海时代II》更像一个小型世界机器。玩家的身份、资金、船只、地点、任务状态和人物关系,会共同决定后面能看到什么。
这让它很适合用来研究AI逆向工程。目标是把一个状态系统拆出来,故事文本只是入口。
《大航海时代II》是我们童年时代最爱玩的游戏之一。在486和586的小屏幕上跑这个游戏,看着船从里斯本驶向阿姆斯特丹、再绕过好望角到加尔各答的画面,对很多今天三十多四十岁的人来说,是一段绕不开的记忆。所以选它做样本,背后多多少少带着一点怀旧的成分,跟纯学术选样有区别。
但这次不是单纯重温童年。
我们做的事更像旧瓶装新酒:拿当年最喜欢的游戏当样本,用今天才有的AI工具去做它当年完全没人去做的那层工作,把游戏的内部结构、剧情拓扑、设计原语一层层抠出来。怀旧给了动机,AI给了能力,结果是一种过去做不到的研究方式。
童年没办法看清楚的东西,二十多年后用AI看清楚一次,这件事本身也有意义。
# 二、第一层工作:先把黑盒变成可读材料
## 2.1 文件盘点:从67个文件里选出8个重点
逆向工作一开始不能急着解释。
游戏目录game_dos/里一共67个文件。第一步要做的,是从这67个里选出真正值得花时间的那一小撮,把其它的先放下。这个步骤看上去笨,但它决定后面会不会一路跑偏。很多逆向项目死在前两周,原因就是被最显眼的文件吸引(头像、地图、字体),在美术资源里转一个月也没碰到游戏逻辑。

triage用了五个维度:
- 扩展名分组:.lzw是一类(压缩资源或数据),.dat是一类(明文数据表或文本),.mes是一类(剧情文本),.exe / .com是一类(可执行),.pat是一类(字模),.mml是一类(音乐序列)。先按扩展名做粗分,把同类文件归一组。
- 文件大小:从几十字节到几百K不等。大文件通常是主数据或大型资源,中等大小可能是数据表,小文件常常是配置或哨兵。KOUKAI2.DAT接近几百K,立刻进重点。KoeiCht.txt只有几K,是个版权说明。
- magic bytes:Snr0-6.dat都以ASCII SNDT开头,这是Scenario Data的magic。.lzw开头是LS11压缩header。用hex editor看前16字节就能判断大半。
- strings扫描的产出:跑strings命令看哪些文件里有可读字符。Message.dat直接吐出大量文本,立刻定性为文本容器。Main.exe吐出函数名和API调用,确认是主程序。
- 参考已有的逆向工作:JohanLi/uncharted-waters-2-research 这个repo已经把Kao.lzw、Portchip.lzw、决斗sprite等资源格式做了一半,tzengyuxio/kaodata 给了LS11解压算法。这些参考让我们不用从零猜。
AI在triage这一步主要做两件事:批量跑这五个维度的检查脚本(扩展名分组、大小分布、magic bytes比对、strings摘要),然后把结果整理成可以扫的表。人在结果上做最后判断,决定哪些进重点、哪些暂时跳过。这跟1.3节讲的"AI是grunt work的主力,是判断层的助理"完全对应。
这一轮跑完,67个文件里有8个进了重点:

剩下59个文件按几个类别暂时放下:
- 音频和驱动:D2.mml(音乐序列)、Fmdrv.com(FM音频驱动)。逆向音频跟剧情逻辑分离,留给后期。
- 结局相关:End.exe、End_put.dat、Endgrp.dat。结局只在游戏跑到最后才触发,跟主流程拓扑分开,等主线稳定再回来看。
- 次要数据:Hdat.put、Item.mes、Monster.dat、Transit.dat、Colony.dat、Menu.dat等。会用到,但优先级排在主数据和剧情之后。
- 字模和说明文件:1.pat(日文字模,汉化版没用)、KoeiCht.txt(KOEI版权说明)。不影响游戏逻辑。
- 次要可执行:Koukai2.com(启动器壳)、DKK2E.exe(旧版或调试版)。主程序锁定Main.exe,其它的留作对照。
把暂时排除的清单写下来,跟列重点同样重要。一旦后面发现某条逻辑追不到、某个数字解释不通,可以回头去看是不是某个被排除的文件其实关键。这种回头查的成本比"重新盘点"低得多。
这一步的结果很朴素:先知道战场在哪里。资源逆向有用,头像、港口图、世界图、船图、NPC精灵都能帮助确认内容。但结构逆向的主线,最终还是要回到Snr0-6.dat和Main.exe。一个是剧情字节码,一个是执行它的机器。
## 2.2 顺序逻辑:先易后难,先ground truth后推断
8个重点文件按什么顺序拆?
排序的依据有两条。
一条是难度。能直接解出来的先做,需要反汇编加动态追踪的留到后面。资源压缩格式(.lzw)有现成参考算法,最容易。文本(.mes、Message.dat)大多是明文,扫描出来即可。数据表(Za_dat.dat、Windcur.dat)大小固定,靠尺寸和重复模式很快能猜出schema。剧情容器(Snr0-6.dat)需要识别chunk加subscript加字节码,难度跳一档。主程序(Main.exe)需要反汇编加动态追踪,最难。
另一条是互相支撑。先解出来的东西要能给后面提供ground truth。资源解出来之后,可以拿渲染图核对哪个港口是哪个。文本抽出来之后,可以在SNDT里查文本引用是否对得上。数据表解出来之后,可以验证Main.exe反汇编出的偏移量是否指向这张表。每一层都是下一层的对照基线。
如果跳过这个顺序直接啃Main.exe,会陷入"看见汇编但不知道指向什么"的死循环。反汇编器吐出来的偏移量没有标签,必须靠前面几层的索引才知道某个内存地址对应的是港口表还是文本表。先把易解的层做扎实,再去碰难解的层,整个流程才不会塌。
最后的实际顺序是:资源 → 文本 → 数据表 → SNDT → 主程序动态追踪。
接下来三节按这个顺序展开。
## 2.3 先把能看的东西解出来
盘点之后,第二步是把材料变得可读。
这里有一个要先交代清楚的事:不少基础格式不是这次摸出来的,早就有人做过。LS11解压算法来自tzengyuxio的kaodata,tile编码、worldmap后处理、决斗UI格式来自JohanLi的uncharted-waters-2-research。Kao.lzw的128张头像、Portchip.lzw的7套港口atlas、Iap系列的875张决斗sprite、Worldmap.lzw等等,能解出来主要靠这两个repo。
我最开始想解头像的时候,绕了几天没解开,后来在GitHub搜到这两个repo才走通。这一步的教训很朴素:开始老游戏逆向之前,先搜一圈把prior work扒一遍,不要从零猜格式。


剩下不在两个repo里、自己用AI做的部分:
- Char.lzw的72个角色walking sprite,plane布局跟Kao不同。
- Kao.lzw后半段的128个48×48发现物和道具图标,编码细节跟前半段不一样。
- Portmap.lzw的101个港口地图,tileset靠JohanLi,但Portmap × Portchip × Chip_no.dat三方组合渲染的逻辑是自己推的。
- Data1.lzw的25种船stats加32种船sprite。
- Za_dat.dat港口数据表、Windcur.dat风向洋流网格(下一节展开)。
- Message.dat、Snr1-6.mes、Name.tbl合计约5800条文本和192个角色名。
- 2.pat的6800个繁体中文字模(汉化版特有,日版的prior work用不上)。
- Snr0-6.dat的SNDT结构:48个chunk加186个subscript加745条派发边(2.5节展开)。
逆向工程需要不断校验。你猜一个资源是港口图,就要把它渲染出来看。你猜一个表是商品数据,就要和游戏里的港口行为对上。你猜一个脚本显示某段文本,就要能从.mes里找到对应文本。
文本抽取更关键。
当前材料里已经恢复出约5800条文本,其中.mes文本约4303条。Message.dat有1022条通用UI和港口对话。Menu.dat有61条菜单命令。Name.tbl里有192个角色名。Snr1-6.mes合计有4000多条主人公剧情文本。
这些数字不只是“工作量很大”的证明。
它说明这个游戏的世界并不靠少数主线文本撑起来。它有通用任务、有港口对话、有菜单入口、有发现物说明、有道具说明,还有六条主人公线。文本层本身已经是一张网络。
AI在这里最有用的地方,是把这些东西先排起来。
人直接读5800条文本,很容易淹死。AI可以先按文件、人物、地点、任务、线索粗分。粗分之后,人再检查哪些分类是对的,哪些只是词面相似。
## 2.4 港口、风向和资源表暴露了系统骨架
资源和文本之外,数据表更能暴露游戏骨架。
Za_dat.dat是一个典型例子。它的大小是2424字节,可以拆成101条记录,每条24字节,也就是12个小端u16字段。前5个字段总是有效,后7个字段会出现0xFFFF哨兵,表示这个港口不交易某种商品。
这一下就把港口系统的下层结构露出来了。

玩家在游戏里看到的是“某个港口可以买卖什么”。逆向时看到的是一张101×12的表。每个港口有固定槽位,有些槽位有效,有些槽位被0xFFFF关掉。世界贸易靠数据表支撑。
Windcur.dat更漂亮。
它正好是1350字节,能排成30列×45行的网格。这个网格和世界地图的block网格对齐。每个字节编码一个海域的风向或洋流参数,常见值包括0x0a、0x15、0x22、0x2a等。
这说明航海体验并非随机“海上走路”。游戏把海域切成格子,每个格子背后有风向和洋流数据。玩家感觉到的路线、速度和海域差异,底层来自这张表。
这就是老游戏设计最有意思的地方。
它不会把规则写成一堆长篇说明,也不会在屏幕上告诉你“这里有一个复杂模拟系统”。它只是把世界压进几张数据表里。玩家在海上跑久了,会自然感到某些海域顺,某些海域慢,某些路线更舒服。
世界感靠表驱动出来。

## 2.5 SNDT才是剧情逆向的主战场
前面的资源、文本和数据表都很重要,但真正的主战场是Snr0-6.dat这7个文件。它们存的是游戏剧情的"程序",告诉游戏什么时候该说什么话、谁该出现、什么事件该触发。光把文本抽出来不够,必须把这个"程序"读懂,才知道剧情怎么走。
静态结构能稳定看见:

但要把这个"程序"真正读懂,卡了很久。原因藏在一个看似不起眼的细节里:这套程序没有标点符号。
打个比方。你拿到一本写满数字的书,每页都是几千个连续数字,没有空格、没有逗号、没有句号。理论上每条"指令"由几个数字组成,但有些指令是1个数字,有些是2个,有些是3个。你不知道每条指令多长,就不知道下一条从哪里开始。一旦断错一个边界,从那里开始整段都读歪。
我一开始用最简单的办法去猜:假设每个数字都是一条独立指令。但拼出来的根本不通顺,因为很多数字其实是上一条指令的一部分。你以为读到了一句"显示某条对话",实际上那只是上一条指令里夹着的一个参数。
这个项目里Claude卡在这里很久。我自己也被赶进DOSBox里手动玩了一段时间,想用断点观察执行流程反推指令边界。也没破。
后来用Codex接着搞,换了一个思路。
它的办法很笨但很有效:把所有几千页"乱码"扫一遍,找反复出现的相同片段。结果发现一个由9个数字组成的片段,反复出现了3449次。这种规模的重复不可能是巧合,背后一定对应着某种固定的"标准句式"。
然后做交叉验证:这个9数字片段里,把其中几个拿去查"字典"(之前已经抽出来的剧情文本文件),看能不能找到对应的字符串。结果3449个片段全部能查到。假设从"可能"变成了"是"。
突破口一旦打开,剩下的指令长度和语义就能一层层推下去:哪个数字是说话的人、哪个是对应的文本编号、哪个是跳转控制。整套"程序"的语法表,就是这么从一堆乱码里反推出来的。
这件事给了我一个挺直接的提醒:不同AI在不同任务上能力差距很大。Claude在前面的资源、文本、数据表整理上做得很扎实,但碰到这种需要大规模统计、大胆假设、跨文件验证的活时,它倾向于一字节一字节往下确认,遇到边界模糊就停下来。Codex在"先猜一个规律、再拿整个语料库验证"这种回合上更进取。
逆向工程里最典型的卡点不在能不能看到数据,而在数据太多以至于不知道哪里是入口。突破口往往是一个意想不到的统计规律。

# 三、第二层工作:从材料走向可验证拓扑
## 3.1 静态拓扑只能给下限
在解释器没有完全破掉之前,最稳妥的做法是先做静态拓扑下限。
所谓静态拓扑下限,就是只把已经能确认的结构画出来。文件里有哪些chunk,chunk里有哪些subscript,派发表把哪些key连到哪些target offset,哪些地方可能引用了文本,置信度分别是多少。
这个项目已经产出过一套静态拓扑文件:

静态拓扑的价值不在于“最终正确”。
它的价值在于把不知道变成分层不知道。哪些是confirmed,哪些是probable,哪些是noisy。只要标注清楚,研究就不会装成全懂。
这也是AI参与逆向时很关键的工作方式。
AI很擅长把碎片连成图,但它容易把“相似”当成“因果”,把“相邻”当成“跳转”。所以流程上必须逼它输出置信度。每一条边都要问:这个连接是派发表直接给的,还是文本相邻推出来的?这个文本引用是按已知指令边界读到的,还是裸扫扫出来的?
只有这样,AI生成的图才有研究价值。
## 3.2 动态追踪解决“到底怎么执行”
静态拓扑之后,还要做动态追踪。
原因很简单:静态图只能说明文件里有什么,不能说明游戏运行时到底走哪条路。剧情系统是一个小虚拟机,关键问题在解释器。谁读取opcode,谁移动指针,谁判断条件,谁写状态,谁调用文本显示。
这个项目里已经搭了DOSBox-X调试桥。
game_dos/可以启动游戏。scripts/dbg_driver.py可以控制DOSBox-X debugger。scripts/sndt_trace_runner.py可以自动连接调试命令管道,设置断点,采样寄存器、调用栈、反汇编窗口和内存。scripts/dosbox_game_keys.py还能通过AppleScript给DOSBox-X窗口发按键。
这条线的目标很明确:从“人手动玩,AI旁边看”改成“脚本化实验,AI整理证据”。
目前动态追踪已经能自动下断点和采样,但还没有稳定推进到SNDT事件命中点。换句话说,基础设施有了,最关键的解释器循环还没有完全钉死。
这很正常。
真正的逆向工程经常卡在这种地方。资源都解了,文本都读了,结构也能看见,但执行语义还差最后一层。差的这层,恰恰决定你能不能从“资料整理”跨到“逻辑还原”。
## 3.3 最小实验比硬啃全剧情更聪明
直接追完整剧情很容易失控。
游戏状态太多,按键流程太长,进入某个剧情点的条件也可能很复杂。你以为自己在观察一个opcode,实际上可能混进了人物状态、港口状态、任务旗标和UI状态。
更稳的办法是做最小SNDT实验。
思路很简单:选一个已知会执行的脚本外壳,只把局部bytecode替换成最小片段,比如:
0c XX
f2
0x0c显示一条文本,0xf2结束。然后用ls11_encode.py重建SNRDAT.LZW,让游戏加载这个patch,观察解释器如何执行。
这个实验如果跑通,就能测出几件关键事:0x0c的处理函数在哪里,bytecode指针怎样前进,文本ID怎样传入显示系统,结束指令怎样返回上一层。
这比在完整剧情里猜要干净得多。
项目里已经生成过最小SNDT patch artifact,也记录了安装manifest。虽然运行和断点命中还没完全稳定,但方法是对的。逆向工程里最怕一口吃掉整个系统。最小实验能把一个大黑盒切成一连串小黑盒。
AI在这里的作用也很清楚。
它可以根据已有字节模式提出候选opcode表,可以整理每次patch和trace的日志,可以比较不同脚本片段的差异。可它不能替代最后那个实验闭环:改一小段,运行一次,观察一次,修正一次。
## 3.4 约翰·法雷尔开场是最好的样板切片
全局拓扑很大,必须选一个样板切片。
当前最合适的是Snr1里约翰·法雷尔开场段。它同时包含身份变化、资金筹集、船只准备、远方目标、桥人物交叉和后续扩线入口。
这段剧情的最短流程可以压成这样:

步骤 结构作用 被逐出家门 从家内身份变成外部行动者 去公爵府筹资 把贵族关系转成启动资源 通过夫人、洛克、路琪亚和酒馆关系补齐条件 把人物关系转成行动能力 造船完成 从没船变成可出海 寻找约翰·法雷尔 从个人生存扩展到世界目标 卷入日本、卡特琳娜和王室阴谋 从单线成长进入跨线网络
这段最适合展示《大航海时代II》的结构智慧。
开场没有急着把玩家扔进大海。它先压住身份,让你从家里被赶出来。然后它让你找钱、找人、造船。等你拥有船之后,游戏才把目标推远:约翰、东方、日本、卡特琳娜、王室阴谋。
这就是“从局部世界进入全局世界”的设计。
很多现代游戏开场喜欢用大演出告诉你世界很大。《大航海时代II》的做法更经济。它用几个人物、几个地点和几个资源门槛,让世界自己变大。
# 四、真正拆出来的是六条线的关系网
## 4.1 六个主人公属于同一个世界
《大航海时代II》表面上有六条主人公线。
当前恢复出的文本和拓扑显示,这六条线大致可以这样理解:

如果只读攻略,很容易把它们看成六个剧本。
逆向之后会看到另一层:它们共享人物、共享地点、共享目标,也共享一批文本和状态结构。六条线更像是同一个世界的六个入口。
这正是老游戏的高级地方。
设计师没有为每个主人公单独造一个完全隔离的小宇宙。那样内容量会爆炸,也会让世界割裂。他们让不同主人公从不同身份进入同一张关系网。玩家玩一条线时,会在边缘看到另一条线的影子。
这会制造一种很强的世界感:玩家看到的不只是一条主线,还能看到某个世界在不同身份下的切面。

## 4.2 桥节点让世界连起来
当前已经能看出的桥节点很清楚。
约翰是最核心的跨线节点之一。他连接Snr1、Snr4、Snr5,也会被Snr6牵到。公爵夫人连接Snr1和Snr5。卡特琳娜连接Snr1和Snr2。梅尔卡特连接Snr4和Snr5。夏洛克和皮耶德连接Snr5和Snr6。劳拉、莎莎和萨达姆又把家庭、寻亲、贸易和伙伴关系拉在一起。
这类人物已经超过普通NPC的功能。
他们是结构节点。一个桥节点的作用,是让两条看似平行的线发生连接。玩家在A线遇见他,到了B线又以另一种身份遇见他,世界就会突然变厚。
这比“多写几条支线”有效得多。
支线如果没有桥节点,只会变成内容堆叠。桥节点会让内容互相借力。一个人物在不同线里反复出现,玩家会自然意识到:这个世界并不围着我一个人转,别人也在行动。
这种设计今天仍然很有用。
AI叙事、开放世界、交互剧本和多agent产品,都需要桥节点。因为单线生成很容易,难的是让不同线之间有可追踪的关系。桥节点就是压缩复杂性的办法。

## 4.3 港口是状态节点
《大航海时代II》叫“大航海”,地图当然重要。
但逆向之后会发现,港口在系统里的作用远不止地图坐标。港口是交易发生的地方,是任务触发的地方,是情报出现的地方,也是人物关系回流的地方。
一个港口至少有几层身份。
它是市场,有商品、价格和可交易槽位。它是UI入口,有酒馆、码头、造船、王宫、教会等功能。它是剧情开关,某些文本和事件只有到了特定地点才出现。它还是状态汇合点,玩家的资金、船只、声望和任务旗标会在这里被检查。
所以港口承担的功能远高于“背景板”。
港口更像一个状态路由器。玩家带着某个身份、某些资源和某组旗标进入港口,系统决定你能看到谁,能接什么任务,能不能继续推进。
这也是为什么Za_dat.dat和Windcur.dat很有价值。
前者说明每个港口都有自己的经济结构,后者说明海域本身也有规则。港口和航路一起,把世界从“文字剧情”变成“空间系统”。

## 4.4 资源是剧情门槛
很多RPG里,钱和道具只是成长数值。
《大航海时代II》里的资源更像门槛。没有钱,你不能造船。没有船,你不能出海。没有补给和航路能力,你到不了远方。没有声望或许可,你进不了某些政治任务。没有关键关系,你拿不到下一条线索。
资源因此参与叙事。
约翰·法雷尔开场段就是典型例子。被逐出家门之后,剧情并没有直接给玩家一个宏大目标。它先让玩家处理非常具体的问题:钱从哪里来,谁愿意帮你,船怎么准备,怎样获得出海条件。
这些条件解决之后,远方目标才成立。
现代叙事产品经常犯一个错误:先写世界观,再写人物动机,最后才想玩法循环。老游戏的处理更朴素。人物动机、资源门槛和玩法循环是一体的。玩家在操作中获得剧情资格。
这就是系统叙事。
# 五、AI逆向工程真正改变了哪一步
## 5.1 别让AI给结论,让它给账本
传统逆向最痛苦的地方,是数据太多但组织不起来。一个人要看十几个文件、几十种格式、几千条文本、成百上千个跳转候选。时间一长,要么忘记前面做过什么,要么把后来的猜测当成早就确认的事实。
很多人第一次用AI做逆向,会犯一个共同的错误:把整个binary丢过去,直接问”这游戏的剧情拓扑是什么?””这段字节是什么意思?””哪些字节是opcode?”
AI会很流畅地给一个答案。
但这个答案大概率是编的。它会把”看起来像”当成”是”,把几段相似字节扯成一个虚构的解释。等你拿这个答案去验证,会发现一半对一半错,且没法定位错在哪一步。这是AI的幻觉问题在逆向工程里的具体形态。
AI真正能起作用的方式,是让它把”看见但还没理解”的中间地带分层整理出来,每一层都有可以单独检查的产物:
- 材料层:把每个文件分别解出来,输出可读的图像、文本、表格。Kao.lzw → 128张PNG,Message.dat → 1022条文本。
- 索引层:把材料按维度排起来。人物索引、地点索引、文本索引、任务索引各一份。
- 结构层:把脚本块、子脚本、派发表收束成图。比如SNDT拓扑:48个chunk → 186个subscript → 745条派发边。
- 验证层:每条边、每个引用都标”已确认 / 可能 / 待验”三档置信度,等动态实验闭环。
四层的关键在”独立产物”。每一层都能单独存档、单独回头查。如果最后的拓扑图有问题,可以倒推:是文本解码错了,是索引归类错了,是结构推断错了,还是置信度标错了?每一层都能定位,整个流程才能修。
让AI直接给”这游戏怎么工作”,等于让它一次性跨过这四层,中间过程不可见。出错只能整篇推倒重来。让AI分层给账本,错误可以局部修正,最后才能长出可信的拓扑。
这就是AI时代逆向工程的基本原则:不要把AI当oracle,要把它当整理工。它输出的应该是一层层可复查的账本,而不是一个看起来很厉害的结论。

## 5.2 研究的产物变成账本
传统研究最后留下来的东西,通常是一篇博客、一个talk、一篇论文。这些产物一次性、个人化、不容易被下一个项目接力使用。
用AI做研究之后,事情变得不一样。
中间所有产物都是结构化的。每张图、每张表、每段文本、每条边的置信度,都被存成可以单独检查的文件。研究过程被逼着留下账本,而账本最终比结论本身更有价值。
这次项目的核心产物,在底下这套账本里:

账本比文章更可复用。文章只能讲给一个人听,账本可以喂给下一个AI项目继续累积。我把这次的方法账拷过去,下一个老游戏的逆向可以直接走"扫文件 → 跑五维triage → 抽资源 → 建索引 → 推结构 → 标置信度"这套流程。我把这次的设计账拷过去,下一个AI叙事项目可以直接复用"身份 / 地点 / 资源 / 桥节点"这套原语。文章在第二个项目里只能贡献一句"参见前文",账本能贡献一套可执行的起步包。
所以我现在越来越倾向于把AI当成"研究操作系统"。
它把文档、代码、图谱、实验、截图和日志串成一个工作层。人负责目标和判断,AI负责整理和压缩上下文。研究的最终形态从一份漂亮的报告,变成一组可以被复用、被检查、被接力的产物。
## 5.3 它也暴露了AI的边界
这个项目也很清楚地暴露了AI的边界。
AI可以帮忙推测opcode,可以总结字节模式,可以生成拓扑图,可以把文本按人物和地点归类。但只要碰到字节码解释器,它就不能靠语言能力硬编答案。
比如SNDT的核心卡点,是变长opcode。
没有真实指令边界,裸扫文本引用就会产生假阳性。没有解释器循环,就不知道bytecode指针怎样移动。没有动态追踪,就不知道某个条件分支在运行时到底读了哪个状态。
这里没有捷径。
必须反汇编,必须下断点,必须做最小patch,必须观察寄存器和内存,必须把一次次实验记录下来。AI能帮你少走弯路,但不能替你把证据变出来。
这反而让我对AI更有信心。
它最有用的位置,是放大专业能力。不会逆向的人,用AI也很难做出可靠逆向。懂逆向的人,用AI可以更快整理材料、更快发现候选结构、更快写出可复用文档。
AI把门槛降了一部分,但没有取消门槛。
# 六、老游戏设计智慧:用很少的东西做很大的世界
第四章看到的是结构事实:六条线属于同一世界、桥节点连接不同线、港口是状态节点、资源是剧情门槛。这一章把这些事实提炼成可迁移的设计原语,看看老一代设计师在硬约束下到底练出了什么能力,今天能怎么用。
## 6.1 设计是一套状态系统
《大航海时代II》最值得学的地方,是它没有把剧情理解成一条线。
它的底层更像一个状态系统:
主人公身份 + 地点 + 时间 + 任务状态 + 资金 + 船只 + 旗标
-> 决定下一段剧情、对话和事件
这句话很普通,但它是很多交互叙事的核心。
线性剧情只需要回答“下一段是什么”。状态系统要回答“在当前条件下,哪些事可以发生”。前者适合电影,后者适合游戏,也适合今天很多AI产品。
因为AI生成内容最容易失控的地方,就是缺少状态。
一个AI角色可以说很多话,但如果它不记得玩家做过什么,不知道当前资源是什么,不理解地点限制,不知道哪些关系已经改变,它就只是在即兴表演。表演再流畅,也很难形成世界。
老游戏给出的答案很朴素:先把状态做好。
## 6.2 少量桥节点可以制造高密度关系
复杂世界不一定来自海量人物。
《大航海时代II》里恢复出的角色名表有192个角色。这个数字不小,但也没有大到离谱。真正让世界显得复杂的,是这些人物在六条线之间的复用方式。
约翰、公爵夫人、卡特琳娜、梅尔卡特、法布利斯、夏洛克、皮耶德这些人,都是关系密度很高的节点。
他们的作用是折叠世界。
一个人物连接两条线,就相当于让两块内容互相照亮。一个人物连接三条线,世界会突然出现“原来你也在这里”的感觉。玩家不需要看到一千个NPC,只要几个关键人物在不同上下文里反复出现,就会觉得这个世界有内部连续性。
这件事对今天尤其有用。
AI movie和交互叙事如果只追求“生成更多角色”,很快会变成内容垃圾场。更聪明的做法是先设计桥节点。少数高密度人物,比大量低密度人物更能制造世界感。
## 6.3 事件回流比树状分支更耐用
很多人一想到分支剧情,就想到树。
一个选择分成两个,两个再分成四个,四个再分成八个。这个模型看起来很自由,实际很快爆炸。每多一层分支,内容量都要翻倍。最后要么做不完,要么每条线都变薄。
老游戏更常用的办法是回流。
剧情可以分出去,但会在某个人物、地点、资源或目标上重新相交。这样玩家感觉自己走了不同路径,设计师又不需要为每一种路径单独写完整世界。
《大航海时代II》的六线结构就有这种味道。
不同主人公从不同身份出发,有人是贵族少年,有人是军官,有人是商人,有人是制图者。可他们会碰到相同的人物、相似的远方目标、重叠的港口和共同的政治背景。
这比纯树状剧情更高级。
它让分支有差异,也让世界有统一性。玩家不会觉得自己在读六本互不相干的小册子,而是在同一个世界里换了六个视角。
## 6.4 有限资源下的世界感来自关系密度
今天很多人做内容,会本能地想堆规模。
更多城市,更多人物,更多剧情,更多地图,更多道具。规模当然有用,但世界感还可以来自关系密度。老游戏时代更依赖这件事。
一个港口如果同时承担交易、任务、情报、人物会面和状态检查,它就比五个单功能场景更有价值。一个人物如果同时承担导师、资助人、桥节点和后续线索,他就比十个只说一句话的NPC更有价值。
《大航海时代II》的结构告诉我们:复杂性可以来自重用。
同一个地点在不同线里承担不同功能。同一个人物在不同身份下重新出现。同一个资源门槛既限制玩法,也推进剧情。同一个远方目标既是冒险动机,也是跨线连接点。
这就是老设计师在资源约束下练出来的能力。
他们没有无限素材可用,只能让每个元素多承担几层功能。今天做AI产品、互动叙事和游戏原型,反而应该重新学习这种克制。
把这四条加在一起,就是90年代设计师在硬约束下练出来的一套方法:用状态做骨架,用桥节点做交叉,用回流避免分支爆炸,用重用让每个元素干多份活。这四条加起来不靠资源多取胜,靠结构密度取胜。今天素材成本归零,规模随便堆,反而最容易丢的就是这种结构感。下一章讲怎么把它搬到今天的项目里。
# 七、从逆向回到今天:这套方法能迁移到哪里
## 7.1 对AI movie,先做状态,不要先写长剧情
AI movie现在最容易走偏。
大家会自然把注意力放在画面生成、镜头风格、角色一致性和对白质量上。这些都重要,但它们还停留在“片段”层。真正的电影感和世界感,需要状态连续。
《大航海时代II》给出的启发是:先定义人物、地点、资源、关系和历史状态,再让剧情从状态里长出来。
比如一个角色有没有欠债,是否见过某人,是否拥有船,是否到过某港口,是否知道某条线索。这些状态会决定下一场戏能不能发生。没有状态,AI只是在不断生成“看起来像剧情”的片段。
老游戏的状态机,可能比很多今天的AI视频demo更接近真正的交互叙事。
## 7.2 对游戏原型,先做小闭环,不要先铺大世界
sea2_demo最后收束出的MVP规格很值得看。
它没有说要复刻完整原作,也没有说要先做六条全量主线。它把第一版范围压得很小:3个港口、2条航路、1个海上中继点、1个贸易循环、1个事件回流点。
人物也只保留能证明交叉拓扑的人。
这个选择是对的。因为第一版要证明系统能不能跑起来:玩家能不能在港口接任务,能不能做贸易、修船、出航,能不能看到状态变化影响后续事件,能不能在两个桥节点之间来回穿。
如果这个小闭环成立,再扩内容才有意义。
很多独立游戏和AI原型会犯相反错误。还没证明状态系统能跑,就开始铺世界观、角色表和大地图。结果内容越写越多,核心循环却没有成立。
老游戏逆向反而能提醒我们:小世界先跑通,大世界才有资格扩张。
## 7.3 对产品设计,用户也可以被看成状态体
这套方法不只适用于游戏。
很多产品也可以看成状态系统。用户是谁,之前做过什么,当前资源是什么,所在位置是什么,和哪些对象发生过关系,下一步应该看到什么,这些问题本质上和游戏里的事件触发很像。
传统SaaS常常把产品做成页面和按钮集合。
状态驱动的产品更像一个事件系统。新用户、老用户、高价值用户、流失边缘用户、完成过某个任务的用户,应该看到不同路径。用户的历史行为和当前上下文,会决定下一步产品怎样回应。
这也是为什么我觉得老游戏逆向对AI产品有启发。
AI应用如果只是聊天框,很容易变成问答工具。AI应用如果有状态、有关系、有事件回流,就会变成一个能持续推进的系统。用户不必每次从零开始,而是在一条路径上不断积累。
今天大量AI应用还停留在"页面+按钮"或者"输入框+回复",没把用户当成状态体处理。这正是老游戏三十年前就想明白、今天反而最容易丢掉的设计常识。
## 7.4 对AI逆向工程,方法比单个结果更值钱
最后回到逆向工程本身。
5.2节讲的是研究产物形态怎么变了,账本比文章更可复用。这一节换一个角度:这套流程除了用在《大航海时代II》上,还能搬到哪些其它复杂系统上。
这个项目最有价值的地方,超过"我们又解出了一款老游戏"这件事。单个游戏当然有趣,但更重要的是方法。
一套AI逆向工程流程,大概可以这样压缩:

这套流程可以迁移到别的老游戏,也可以迁移到别的复杂系统。
只要一个系统有文本、状态、事件、资源和隐藏规则,它就可以被这样拆。AI负责帮你整理材料、生成候选结构、维护中间账本。人负责决定目标、判断证据、设计实验。
这可能是AI时代逆向工程真正的变化:高手不再只是在脑子里记住所有细节,还能把整个研究过程变成一套可复查、可交接、可扩展的工作流。
# 八、结语:老游戏是样本,逆向是手段
回到引子里讲的两个目的。这次实验给了它们各自一个答案。
先看AI这一关。AI到底能不能帮人做逆向工程,能做到什么程度?
答案是:能,但人必须留在判断层。AI把"看见但还没理解"这一大段中间地带分层接掉,输出可复查的账本。整个项目从盘点67个文件、解几千张图和几千条文本、画SNDT拓扑到压出MVP规格,AI全程在场,每一步都留下了人能回头查的产物。效率比纯人工高一个数量级,但前提是人没有偷懒,把判断权牢牢留在自己手上。
这次还有一条没预料到的发现:不同AI在不同任务上能力差距很大。Claude擅长把杂乱材料分层整理、保持账本,但碰到SNDT变长指令这种需要大胆假设加跨语料库验证的活就停了下来。Codex在统计推断和回合式探索上更进取。把它们当成专业能力不一样的同事,比当成一个万能oracle靠谱得多。
再看老游戏这一关。90年代设计师在极低算力和内存下到底练出了什么?
答案有四条:用状态做骨架,用桥节点做交叉,用回流避免分支爆炸,用重用让每个元素干多份活。一个港口同时是市场、剧情开关、人物会面点和状态汇合处。一个人物连接三四条主线,让世界自己变厚。剧情分支出去之后又在共同的人物和地点上重新汇合。这套方法不靠资源多取胜,靠结构密度取胜。
我们正在进入一个内容生成越来越便宜的时代。素材成本几乎归零,规模可以随便堆。越是这样,结构感越值钱。老游戏真正留下的,是硬约束逼出来的设计纪律:少写一点,复用得更狠一点,让状态自己产生变化。这种纪律放在今天的AI movie、交互叙事、AI产品里反而最稀缺。
老游戏是样本,逆向是手段。真正要带走的是两样东西:一套AI时代研究复杂系统的方法,一套90年代设计师在硬约束下练出来的结构能力。一套讲怎么读懂别人的系统,一套讲怎么用很少的东西做出复杂的世界。这两套加在一起,才是这次实验留下的全部。
## 作者其它文章
- 量子计算机有前途吗?
- 祖父积分学概论
- 我见青山多妩媚:二十世纪数学史(上)
- 一文讲清楚美国医疗系统
- AI如何打进美国教育生态?
- 一篇文章看懂美国教育全生态
- 马斯克把xAI并入SpaceX,到底意味着什么?
- Vibe Learning:AI时代,学习这件事被重新组织了
- 福特经济学和AI经济学
- 数学照妖镜:AI能发现新的数学定理吗?
- 手把手教你分析:你会被AI取代吗?
- 一篇文章讲清大语言模型发展史
- 气吞万里如虎:回顾十九世纪的数学英豪们
- Vibe Reading:AI时代读书的系统化方法
- 长篇分析:Manus案折射出的中国AI创业生态
- 别再被AI新词绕晕了:Prompt、Context、Agent背后的工程主线
- 两万字科普:AI为什么会编程——原理、历史与未来
- 兄弟们,真·Vibe Writing时代到来了
- 全网最详细的AI学习路线图
- 每个人都应该使用的三个最有用的Claude Skill
- SpaceX立志传(一):赌上全部的最后一次发射
- 估值290亿美元的套壳公司,正在被自己的房东杀死
- 黄仁勋和主持人吵红了脸:芯片封锁中国,美国到底能不能打赢?
- AI将如何颠覆教育,普通人又应该如何抢夺教育新的生态位
- 学物理的八方英雄们,物理学已死,请转行搞AI
- 不会编程、没有融资、没有员工,他怎么一个人做到年入2000万
- 兄弟们想清楚:究竟是你为X打工,还是X为你打工?
- 一人公司盈利四亿美元:是骗子,还是可复制的红利?
- 2026第一季度大裁员,AI是背锅侠吗?
- 重返星辰大海:这次绕月飞行有意义吗?
- 张雪峰在美国为什么无法成功
- 2026企业尸检报告:不用AI,你的公司能活过今年吗?
- 兄弟们,我创业失败了,人生完整了
## 相关链接
- [snowboat](https://x.com/snowboat84)
- [@snowboat84](https://x.com/snowboat84)
- [447](https://x.com/snowboat84/status/2057264254319993332/analytics)
- [Romhacking.net](https://romhacking.net/)
- [JohanLi/uncharted-waters-2-research](https://github.com/JohanLi/uncharted-waters-2-research)
- [tzengyuxio/kaodata](https://github.com/tzengyuxio/kaodata)
- [Fmdrv.com](https://fmdrv.com/)
- [Koukai2.com](https://koukai2.com/)
- [kaodata](https://github.com/tzengyuxio/kaodata)
- [uncharted-waters-2-research](https://github.com/JohanLi/uncharted-waters-2-research)
- [量子计算机有前途吗?](https://x.com/snowboat84/status/2056895775578456417)
- [祖父积分学概论](https://x.com/snowboat84/status/2056533111983493136)
- [我见青山多妩媚:二十世纪数学史(上)](https://x.com/snowboat84/status/2055446902171406761)
- [一文讲清楚美国医疗系统](https://x.com/snowboat84/status/2055081426744422697)
- [AI如何打进美国教育生态?](https://x.com/snowboat84/status/2054721509420372180)
- [一篇文章看懂美国教育全生态](https://x.com/snowboat84/status/2054359249917210633)
- [马斯克把xAI并入SpaceX,到底意味着什么?](https://x.com/snowboat84/status/2054000682114613488)
- [Vibe Learning:AI时代,学习这件事被重新组织了](https://x.com/snowboat84/status/2052908751435477046)
- [福特经济学和AI经济学](https://x.com/snowboat84/status/2052551731385602072)
- [数学照妖镜:AI能发现新的数学定理吗?](https://x.com/snowboat84/status/2052174034041995572)
- [手把手教你分析:你会被AI取代吗?](https://x.com/snowboat84/status/2051818364507688978)
- [一篇文章讲清大语言模型发展史](https://x.com/snowboat84/status/2051444935547912236)
- [气吞万里如虎:回顾十九世纪的数学英豪们](https://x.com/snowboat84/status/2050371067278143931)
- [Vibe Reading:AI时代读书的系统化方法](https://x.com/snowboat84/status/2050008577511973253)
- [长篇分析:Manus案折射出的中国AI创业生态](https://x.com/snowboat84/status/2049643679804248305)
- [别再被AI新词绕晕了:Prompt、Context、Agent背后的工程主线](https://x.com/snowboat84/status/2049286033427349809)
- [两万字科普:AI为什么会编程——原理、历史与未来](https://x.com/snowboat84/status/2048919554882215954)
- [兄弟们,真·Vibe Writing时代到来了](https://x.com/snowboat84/status/2047828585537548574)
- [全网最详细的AI学习路线图](https://x.com/snowboat84/status/2047457686070141051)
- [每个人都应该使用的三个最有用的Claude Skill](https://x.com/snowboat84/status/2047110768773197834)
- [SpaceX立志传(一):赌上全部的最后一次发射](https://x.com/snowboat84/status/2046743964192276766)
- [估值290亿美元的套壳公司,正在被自己的房东杀死](https://x.com/snowboat84/status/2046380497627230607)
- [黄仁勋和主持人吵红了脸:芯片封锁中国,美国到底能不能打赢?](https://x.com/snowboat84/status/2046022377830801725)
- [AI将如何颠覆教育,普通人又应该如何抢夺教育新的生态位](https://x.com/snowboat84/status/2044932338262667509)
- [学物理的八方英雄们,物理学已死,请转行搞AI](https://x.com/snowboat84/status/2044584627046920278)
- [不会编程、没有融资、没有员工,他怎么一个人做到年入2000万](https://x.com/snowboat84/status/2044216044575998136)
- [兄弟们想清楚:究竟是你为X打工,还是X为你打工?](https://x.com/snowboat84/status/2043842017260908743)
- [一人公司盈利四亿美元:是骗子,还是可复制的红利?](https://x.com/snowboat84/status/2043493870265422223)
- [2026第一季度大裁员,AI是背锅侠吗?](https://x.com/snowboat84/status/2042766853404307931)
- [重返星辰大海:这次绕月飞行有意义吗?](https://x.com/snowboat84/status/2042405716380835998)
- [张雪峰在美国为什么无法成功](https://x.com/snowboat84/status/2042045634245746743)
- [2026企业尸检报告:不用AI,你的公司能活过今年吗?](https://x.com/snowboat84/status/2041672997959057517)
- [兄弟们,我创业失败了,人生完整了](https://x.com/snowboat84/status/2040948420391940272)
- [Upgrade to Premium](https://x.com/i/premium_sign_up)
- [8:56 AM · May 21, 2026](https://x.com/snowboat84/status/2057264254319993332)
- [447 Views](https://x.com/snowboat84/status/2057264254319993332/analytics)
---
*导出时间: 2026/5/21 09:54:15*