За моніторингом 1M AI News, нова функція для «бестія/домашнього улюбленця» (buddy-система) у Claude Code вийшла усього кілька годин тому, і спільнота розробників уже знайшла метод повторного витягування (re-draw) у витоках коду. Відкриті інструменти та посібники поширено на таких платформах, як Linux.do, V2EX, GitHub тощо.
Наразі відомо щонайменше два шляхи повторного витягування. Один — для алгоритму генерації «домашніх улюбленців», який використовує фіксоване значення salt. Це значення, жорстко вшите як 15 символів у компільований результат Claude Code, можна змінити простим заміщенням на рядок такої ж довжини, щоб змінити випадкове зерно. Після грубого перебору знаходять значення, що відповідає потрібному «домашньому улюбленцю», і записують його. Інший шлях використовує відмінності в процесі автентифікації: коли підписаний користувач входить у систему звичайним способом, сервер надсилає accountUuid як «зеренце» для «домашнього улюбленця», і його неможливо підмінити. Але під час автентифікації через змінні середовища це значення не записується у локальну конфігурацію, і система натомість бере поле userID, яке можна вільно редагувати.
Спосіб зміни salt є найвразливішим: під час наступного оновлення Claude Code його буде перезаписано. Зміна userID для підписаних користувачів теж має «термін придатності» — Anthropic може доповнити логіку запису accountUuid зі шляху змінних середовища, щоб це заблокувати. Для користувачів API (які проходять автентифікацію за допомогою власного API Key) accountUuid природно відсутній: вони можуть напряму змінювати userID, тож «вікно» є відносно довшим. Проте Anthropic також здатен заблокувати це, генеруючи стабільний ідентифікатор через хеш API Key. Каркасні (skeleton) дані не зберігаються локально — під час кожного запуску вони обчислюються в реальному часі, тож будь-який серверний патч може одразу набрати чинності.
Крім того, userID використовується не лише для «домашніх улюбленців». Витік коду показує, що телеметричне відправлення та групування для A/B-тестування також читають це значення: після зміни воно може спричинити збої в експериментальних функціях або розрив у даних використання.