
Security researcher, founder of Tencent's Xuanwu Lab @XuanwuLab
Joined January 2009
- Tweets334
- Following250
- Followers17.9K
- Likes87
刚开始接触生物学的时候,我经常想象原始海洋里的有机分子构成核糖核酸,然后诞生了最早的单细胞生物,单细胞生物又聚在一起变成黏糊糊的原始多细胞生物,最终一步一步演化出各种生灵。我也经常想,如果能在实验室里加速重现这一过程,完整观察整个生物演化史就好了。
刚开始接触计算机的时候,我想过一个问题:程序是从哪里来的?后来我知道了编译器,程序从编译器来的。编译器自然也是从其它编译器来的。那么最早的编译器是从哪里来的?后来我逐渐搞清楚了这个问题的答案。但偶尔还是会想一些相关的问题,比如:如果现在全世界的编译器都忽然消失,人类要怎么重建整套体系呢?
最近几年研究 AI 安全问题的时候,我经常想:如果只给予 AI 完成特定工作所需的工具,那么 AI 的能力是不是就会被限制住?是不是就可以阻止 AI 获得强大的网络入侵能力?
2026 年 2 月,我看到马斯克预测到年底 AI 就可以绕过编译过程直接创建二进制文件。当时我做了一些实验,发现虽然 AI 还不能创建完整可运行的程序,但已经可以生成正确的机器码片段了。到了 9 月,我再次实验,发现此时 AI 已经可以用直接创建二进制文件的形式输出不太复杂的程序了。
但用直接输出二进制文件的方式去写大型程序显然不是好的选择,即使能写出来,也难以维护。那么,是不是可以让 AI 重演现代编译器的诞生过程?就像重演从核糖核酸到哺乳动物的生物演化史?
下面这个视频里超级马里奥游戏就是从核糖核酸开始构建的。
AI 先是通过直接输出二进制的方式构建了一个 3584 字节的机器码装配器 A0。然后用 A0 生产了一个更类似汇编器的工具 A1。又用 AI 生产了最基础的 C 编译器 C0。再一步一步迭代,最终演化出了一个完整支持 C89 标准并部分支持 C99 标准的编译器。有了这个编译器,就可以写出超级马里奥游戏,或者是任何网络攻击程序。
对 AI 说:“要有光”,然后整个世界就一步一步诞生了。所以我把这个项目命名为 BitKindle。感兴趣可以测试一下:github.com/tombkeeper/BitKin…
你们可以试一下这个有趣的任务,观察 AI 怎么从零开始创造硅基后代。
------
从零实现一个能自举的 C 编译器。在符合 C89 标准的基础上,尽可能支持 C99 标准。
先实现支持十六进制字节输出、标签定义及地址和相对偏移解析的最小装配器。其程序须直接输出为十六进制机器码的文本。可调用 Python 将十六进制文本转为二进制,但不得用 Python 参与功能实现。
后续允许编写源码、增加中间工具,但所有后续二进制产物只能由此前构建的自制工具生成。
外部工具仅可用于文本编辑、命令执行、测试和检查,不得用于生成或修改编译产物。
最终编译器须用其支持的 C 语言编写,连续编译自身两次,验证产物一致并通过功能测试。交付完整源码、种子十六进制文本及可复现构建步骤。
先告诉我你对实现过程的规划,特别是打算实现哪些中间工具。等我批准后再开始执行。
延续昨天的话题xitter.cf/tombkeeper/status/2097… 刚才先让 AI 不用编译器写一个五子棋游戏。检查中发现 AI 先用 Python 构造了一个汇编器。虽然这不算违规,但接下来我要求 AI 必须直接输出十六进制,调用 OpenGL,写一个哆啦A梦吃铜锣烧的 2D 动画程序。结果 AI 也做出来了。虽然动画有点丑,但程序没问题。
刚才用 GPT-6 Astra 做了个实验。先让它生成 MessageBox 弹框程序,成功了。再让他生成列举系统进程的程序,又成功了。然后我让怹生成通过发送消息实现输入文字的程序,也成功了。最后我让祂生成一个计算器,居然也成功了。
我的人类朋友们,AI 已经可以不依赖编译器直接输出二进制可执行文件了。
Yang Yu retweeted
Ghost Dependencies: An Emerging Supply Chain Security Threat in the Agentic Coding Paradigm - Tencent Xuanwu Lab xlab.tencent.com/en/2026/02/…
Yang Yu retweeted
AI Web Crawler Security White Paper - Tencent Xuanwu Lab xlab.tencent.com/en/2026/02/…
When I first saw the name IShowSpeed, a COM interface immediately came to mind.
interface IShowSpeed : public IUnknown
{
virtual HRESULT STDMETHODCALLTYPE GetCurrentHypeLevel(
/* [out] */ UINT* pLevel) = 0;
...
"Why did the first Michelin-starred restaurants emerge in 1926?"
"Because it was only in 1925 that dry ice began to be sold commercially."
Some ride-hailing drivers use plastic film and aluminum foil tubes to make simple biochemical protection device, so that passengers can also enjoy air conditioning while maintaining isolation from the driver. The spots on the plastic film are traces of disinfectant.
The 'OK' hand gesture has different meanings in different cultures. For Buddhists, it is called Vitarka, which symbolizes Buddha’s Teaching Transmission.
On Windows, to split a long command into several lines, type a caret (^) at the end of the line in CMD, or a backquote (·) in PowerShell.
Stephen Curry said to this boy on China's Twitter-like Weibo: "Keep doing you and don't let anyone tell you that you can't".
Now, The Twilight Zone 2019 episode 3 looks particularly meaningful. #GeorgeFloyd imdb.com/title/tt5307870/

















