你用画图工具随手画了个涂鸦,保存成PNG发到群里。 你不知道的是,这张图的像素里可能藏着一串只有微软能解读的追踪码。
先说结论
MS Paint 的 AI 生成功能在你保存图片时,会悄悄嵌入一个不可见的水印。这个水印是一个由微软服务器签发的唯一标识符(GUID),通过像素级修改写入图片,肉眼完全看不出来。
关键是:即使图片是在你电脑上本地生成的,这个 GUID 仍然来自微软的服务器。“本地生成"不等于"离线完成”。
什么是追踪水印
追踪水印不是新东西。打印机领域有一个存在了几十年的技术叫 Machine Identification Code(MIC),俗称"黄色追踪点"。
1980年代中期,施乐公司发明了这套编码机制:用直径约0.1毫米的黄色微点,在每张打印页面上重复嵌入打印机序列号、打印日期和时间。这些点小到肉眼几乎看不见,但用高分辨率扫描仪扫一下,再把黄色通道增强,就能清晰看到。
2004年,荷兰当局用这套追踪码破获了一起伪造案,MIC 的存在才第一次被公众知晓。2005年,电子前沿基金会(EFF)破解了这种编码格式,并在2015年披露:所有主要彩色激光打印机制造商都与政府达成了秘密协议,确保打印输出可被司法追踪。
简单说:你用彩色打印机打的每一页纸,都带着你的"指纹"。
MS Paint 怎么藏的
2026年8月,逆向工程师 Xusheng Li 在对 Windows 自带的画图工具(MS Paint)做逆向分析时,发现了一个名为 Watermarker.dll 的文件。
这个文件有 1.67 MB,对于一个"只在图片右下角贴个 Copilot logo"的功能来说,大得离谱。他决定深入看看。
两条水印路径
Paint 有两种 AI 生成功能,对应两条不同的水印路径:
Image Creator(云端生成):图片在微软云端生成、打水印、签名,然后返回给用户。全程在服务器完成。
Cocreator(本地生成):在 Copilot+ PC 上,图片由本地 NPU(神经处理单元)运行 Stable Diffusion 生成。但关键一步——提示词审核——仍然要发到微软服务器。
两条路径最终都会嵌入不可见水印。
水印从哪来
Cocreator 的流程是这样的:
- 你输入提示词(比如"一只蓝色的猫")
- Paint 把提示词发到微软的审核服务器
- 服务器审核通过后,返回两个东西:审核后的提示词 + 一个
watermarkId(GUID格式的唯一标识符) - 本地 NPU 生成图片
Watermarker.dll把那个 GUID 嵌入图片像素- 保存图片
Xusheng Li 实际抓包验证了这个流程。他发送了一个测试提示词,服务器返回的 JSON 长这样:
| |
那个 watermarkId 就是最终嵌入图片像素的东西。
嵌入算法
水印不是简单的文字叠加。它用的是一种基于内容自适应的块域SVD风格算法:
- 一个18字节(144位)的消息体由GUID和校验字节构成
- 每位信息至少嵌入3次(冗余保障)
- 对图片的8×8像素块做量化修改
- 使用3×5矩阵运算和矩阵分解
测试结果:一张 512×512 的图片中,193,376个像素被修改(总共262,144个像素,修改率73.8%)。肉眼看完全一样,但每个像素都微微偏移了。
更狠的是:如果水印嵌入失败,Paint 不会给你一张没有水印的图片——它会直接把这次生成判定为失败。微软宁可不让你用,也不让你拿到一张"干净"的图。
格式限制
你有没有注意到,用 Paint 的 AI 功能生成图片后,保存时只能选 PNG、JPEG、GIF 和 .paint 格式?经典的 BMP 格式不见了。
原因很直接:BMP 格式无法嵌入 C2PA 元数据。微软不允许你用一种"留不下身份证明"的格式保存 AI 生成的图片。
与 AI 生成图片的关系
你可能觉得"我用的是本地工具,应该没事吧"。事实是:在微软的生态里,“本地"不等于"离线”。
即使是 Cocreator 功能声称图片在本地 NPU 上生成,整个流程仍然有两步必须联网:
- 提示词审核:你的提示词必须发到微软服务器审核,服务器决定是否允许生成
- C2PA签名:生成的图片会附带一份由微软签名的 C2PA 内容凭证(Content Credentials),里面包含了水印信息
C2PA(Content Provenance and Authenticity)是一个数字内容溯源标准。在 Paint 生成的图片里,C2PA 元数据中包含一个字段叫 c2pa.soft-binding,算法标识为 com.microsoft.invismark.1,值就是那个 watermarkId。
这意味着:即使有人把图片的文件级元数据(C2PA manifest)剥离掉,只要像素级水印还在,微软仍然可以追溯这张图的来源。
Photos 应用(Windows 自带的照片)也做了同样的事情。它的 Image Creator 和 Restyle Image 功能背后都有本地 Stable Diffusion 操作,也都通过同一个 Watermarker.dll 嵌入水印。
隐私影响
这里有几个问题。
第一,透明度不足。 微软在 Paint 的 Image Creator 支持页面确实提到了"添加 C2PA 内容凭证",但没有明确说明会嵌入像素级的不可见水印。C2PA 元数据可以被文件级操作移除,但像素级水印是永久性的——只要图片内容还在,水印就在。
第二,GUID 可关联。 Xusheng Li 发现,Paint 在发送审核请求时会带上上一次的 lastPromptGenerationId,这意味着微软可以将你的多次生成请求串联起来。不只是单张图可追踪,你的整个生成历史都可以被关联。
第三,这是行业趋势。 不只是微软。Google 有 SynthID 技术,用于在 Gemini 生成的图片、文本和音频中嵌入不可见水印。Adobe、Intel、BBC 等机构都是 C2PA 标准的参与者。AI 生成内容的"可溯源"正在成为行业共识。
第四,“可见水印"和"不可见水印"是两回事。 Paint 有一个设置项让你选择是否在 AI 生成的图片上添加可见的 Copilot logo。但这个设置不影响不可见水印的嵌入。关掉可见水印,不可见水印照样在。
普通用户该怎么看
说几句实在话。
如果你只是用 Paint 画画,不用 AI 功能,目前没有证据表明你的图片会被嵌入追踪水印。 这次发现的水印机制只针对 AI 生成路径。
如果你用 Paint 或 Photos 的 AI 生成功能,你的图片里大概率有不可见水印。 这个水印包含微软签发的唯一标识符,理论上可以追溯到你的账户和生成时间。
这不是阴谋论,是公开的技术事实。 Xusheng Li 的逆向分析过程完全公开,代码、抓包数据、调用链都有据可查。HN 上这条帖子拿了 860+ 分,技术社区基本认可其结论。
你可以做什么:
- 如果你在意隐私,用开源的 Stable Diffusion WebUI(如 ComfyUI、Automatic1111)本地部署,不经过任何云端审核
- 如果你必须用 Paint 的 AI 功能,了解你的图片里有这个水印
- 如果你收到一张 AI 生成的图片想知道它是否带水印,目前没有简单的自检方法——这正是不可见水印的设计目标
结尾
从 1980 年代打印机上的黄色微点,到 2026 年画图工具里的像素级 GUID,追踪技术一直在进化。
不同的是,打印机水印是为了防伪钞,而 Paint 的水印是为了给 AI 生成内容打上"出生证明”。动机不算恶意,但执行方式值得商榷——尤其是在用户不知情的情况下,把服务器签发的标识符刻进每一个像素。
下次你用 AI 画一张图,记得:那不只是你的作品,也是微软的"作品"。
数据来源:Xusheng Li 逆向分析报告(2026年8月)、Wikipedia “Machine Identification Code” 词条、EFF 打印机追踪点研究、C2PA 规范 v2.4