一个逆向知识库要怎么组织,才不会变成收藏夹

大部分技术收藏最后都变成了坟场:链接堆了几百条,真要用的时候一条也想不起来。我做 open-reverselab 的时候,先想清楚的不是写什么,而是它要在什么时刻被用到。

答案是:卡住的那一刻。人卡住的时候不会去读一本书,只会问一个很具体的问题——这个壳是什么、这段汇编在算什么、这个协议字段为什么对不上。

按「卡点」组织,而不是按「技术栈」

所以目录不是「Android / iOS / PE / 密码学」这样切的,那是书的目录,不是查询路径。真正管用的切法是按现象切:

  • 拿到一个包,先怎么判断它有没有壳、是哪种
  • 抓不到包的时候,依次怀疑什么
  • 一段代码看起来像加密,怎么快速判断是标准算法还是自造的

每篇下面才是具体平台的做法。这样在卡住的时候,从症状能一路走到手段。

让 agent 能查,比让人能查更值钱

写到一半我发现,这套东西最大的用户其实不是我,是 agent。于是加了一层 MCP server,把知识库和常用工具都暴露成可调用的接口:查文章、跑 Frida 脚本、做 PE 静态分析、解析常见的打包格式。

这带来一个约束:每篇文章都要有机器可读的结构化头部(适用平台、前置条件、产出物)。写的时候麻烦,但它逼着我把「这篇到底解决什么问题」写清楚,人读起来也更快了。

走过的弯路

最早我把 CTF 题解和方法论混在一起,结果是两边都不好用。题解需要完整复现过程,方法论需要抽掉具体细节。后来彻底分开:方法论文章里只引用题解,不展开。

另一个弯路是追求覆盖度。有段时间想把每个方向都补齐,写了一批自己没实操过的内容,后来全删了。知识库的可信度是一次性的,掺一篇没验证过的就全毁了。