Разработчик Сюшэн Ли раскопал ранее неизвестную функциональность в недрах приложений Paint и «Фотографии» от Microsoft. Речь о водяных знаках с GUID. То, что программы дорисовывают видимый логотип Copilot на изображения, к созданию которых приложила руку нейросеть, было известно и раньше. А вот невидимый водяной знак и механизм его встраивания обнаружились впервые.
Источник изображения — tomshardware.com
Сразу оговоримся: обе метки нужны исключительно для того, чтобы идентифицировать изображения, созданные с участием ИИ. Путать этот GUID с нашумевшей телеметрией GDID, привязанной к конкретному устройству, не стоит — это разные вещи.
По словам Ли, к разбору его подтолкнуло обычное любопытство. То, что генерация изображений умеет обращаться к удалённому API, сюрпризом не было. Вопросы появились, когда в каталоге приложения обнаружились четыре файла моделей для локальной обработки: один в формате, похожем на ONNX, и ещё три — зашифрованные файлы того же вида.
Расшифровав все четыре файла, исследователь добрался до библиотеки watermarker.dll. Сначала он решил, что она отвечает только за видимую метку — тот самый логотип Copilot в правом нижнем углу, который ставится вызовом функции AddPerceptibleWatermark. Но размер библиотеки показался подозрительно большим, и при более глубоком анализе нашлась вторая функция — для встраивания невидимого знака.
Называется она WmkWriteWatermark, и её вызов в процессе генерации через Stable Diffusion фактически обязателен. Если по какой-либо причине маркировка не удаётся, генерация завершается ошибкой — картинки вы просто не получите.
Технические детали скрытой метки выглядят интереснее всего. По утверждению разработчика, в пиксели подмешивается выданный сервером GUID. И на этом сбор идентифицирующих данных не заканчивается. «Paint делает больше, чем изменяет пиксели, — отмечает он. — Он также прикрепляет к сохранённому файлу Content Credentials по стандарту C2PA. Отвечающий за это код живёт в ProvenanceHelper.dll, опирающейся на provenancesdk.dll».
Отдельный вывод, который стоит выделить: даже когда генерация идёт локально, сам запрос всё равно уходит на серверы Microsoft для модерации. Полностью офлайновым такой сценарий назвать нельзя. В приложении «Фотографии» действует тот же механизм GUID, но ведёт себя мягче: изображение вернётся пользователю даже при сбое маркировки — система просто запишет ошибку в журнал.
Предполагается, что вся эта скрытая машинерия «может быть связана со статьёй 50 EU AI Act, требования прозрачности которой вступили в силу 2 августа 2026 года и обязывают снабжать созданный ИИ контент обнаруживаемой машиночитаемой меткой — но не идентификатором GUID, привязанным к конкретному запросу».
Именно в этой оговорке и заключается суть претензии. Требование закона — сделать факт генерации распознаваемым. Реализация Microsoft идёт дальше и добавляет уникальный идентификатор сессии, по которому теоретически можно связать конкретное изображение с конкретной генерацией. Для пользователя разница между «это сделал ИИ» и «это сделал ИИ вот в этот раз по вот этому запросу» довольно принципиальная.









