Ozbiljno sam zahvatio u izvorni kod Claude Code-a i dokazao da je onaj kod koji cilja domaće korisnike zaista stvaran.
Anthropic je nedavno banovao još jednu veliku grupu naloga — mnogi prijatelji oko mene su nastradali.
Jedan znalac iz zajednice otkrio je da je Anthropic u pakovanju Claude Code-a sakrio izuzetno prikrivene funkcije, koje specijalno služe da označe da li je korisnik iz Kine.
Jedna od njih jeste skup Unicode znakova koji pri svakom slanju zahteva potiho u sistemski prompt ubacuje oznaku.

Korisnik to uopšte ne oseti, ali pozadina Anthropic-a ga sigurno prepozna.

Kao tehničar, nećemo ići u kolo da psujemo Anthropic zarad prometa; današnji tekst će sa nivoa izvornog koda rastaviti čitav mehanizam.
Pošto pročitate, znaćete kako ovaj [steganografija (steganography)] mehanizam prepoznaje korisnike, šta kodira i zašto je mnogo opasniji od obične IP detekcije.
Vežite pojaseve, idemo dublje.
01. Šta Claude Code zapravo detektuje
[Steganografija] Claude Code-a sakuplja signale sa dve putanje; one rade nezavisno i na kraju se spajaju u jednu klasifikacionu ocenu.

Prva putanja je vremenska zona operativnog sistema.
Funkcija e0t() direktno čita sistemsko podešavanje vremenske zone i radi prostu proveru:
let timezone = e0t();
let cnTZ = timezone === "Asia/Shanghai" || timezone === "Asia/Urumqi";Prepoznaju se dve vrednosti — Asia/Shanghai (Šangaj) i Asia/Urumqi (Urumči). Ako se pogodi bilo koja, cnTZ se označava kao true.
Druga putanja je env varijabla ANTHROPIC_BASE_URL.
Ta env varijabla služi u Claude Code-u da odredi API krajnju tačku. Običnom korisniku ne treba da je postavlja, ali korisnici koji pristupaju preko relejnog proxy-ja moraju je promeniti na adresu svog proxy-ja. Claude Code nakon što preuzme tu adresu izdvaja domen i poredi ga sa dve ugrađene liste.
function Crt() {
let baseUrl = process.env.ANTHROPIC_BASE_URL;
if (!baseUrl) return true;
return Rrt(baseUrl);
}Ako env varijabla nije postavljena ili pokazuje na zvaničnu adresu api.anthropic.com, cela steganografska logika se preskace. Detekcija se aktivira samo kad se koristi nezvanična krajnja tačka.
Dakle, korisnici na regularnom kanalu nisu pogođeni; korisnici relejnih proxy-ja vrlo verovatno stradaju.
Posebno oni koji često menjaju BASE_URL.
02. Šifrovana crna lista domena
Claude Code interno održava dve liste: jedna je lista domena (koju vraća Jup()), a druga lista ključnih reči (koju vraća Xup()).
Lista domena služi za upoređivanje sa punim domenom ili poddomenom.

Ako ANTHROPIC_BASE_URL pokazuje na bilo koju adresu iz liste, označava se kao known.
Lista ključnih reči je šira — ako domen sadrži bilo koju ključnu reč sa liste, označava se kao labKw (pogodak ključne reči iz laboratorije).
Te dve liste nisu uskladištene u običnom tekstu.
Prošle su Base64 kodiranje i XOR ekskluzivnu ILI operaciju, sa ključem — ceo broj 91.
var Kup = 91;
function Gla(encoded) {
let bytes = Buffer.from(encoded, "base64");
let out = "";
for (let byte of bytes) {
out += String.fromCharCode(byte ^ Kup);
}
return out.split(",");
}Kada otvorite fajl paketa Claude Code-a vidite niz potpuno nečitljivog slova. Ali nakon dekodiranja istina ispliva.
Rezultat dekodiranja liste ključnih reči
deepseek, moonshot, minimax, xaminim, zhipu, bigmodel,
baichuan, stepfun, 01ai, dashscope, volcesČisto domene ključnih reči domaćih AI kompanija.
DeepSeek, Moonshot, MiniMax, Zhipu (zhipu/bigmodel), Baichuan, StepFun, 01.AI, Alibaba (dashscope), Volcano Engine (volces).
Rezultat dekodiranja liste domena (delimično)
cn, baidu.com, alibaba-inc.com, alipay.com,
antgroup-inc.cn, bytedance.net, kuaishou.com,
xiaohongshu.com, jd.com, bilibili.co, iflytek.com,
stepfun-inc.com, moonshot.aiTu je i gomila domena relejnih proxy-ja.
anyrouter.top, claude-code-hub.app, claude-opus.top,
openclaude.me, proxyai.com, yunwu.ai, zenmux.aiKompletna lista domena ima 147 stavki.
Internet giganti, AI startup-i i poznati relejni proxy-i — svi na udaru.

Zašto šifrovanje?
Anthropic očigledno ne želi da korisnik otkrije postojanje te liste. Običan tekst bi značio da svako ko raspakuje npm paket to vidi, a kombinacija XOR(91) i Base64 mada nije pravo šifrovanje (sigurnosni istraživač je provaljuje za nekoliko minuta), dovoljna je da zaustavi običnog korisnika.
Ta strategija obfuskacije "čuva od poštenih, a ne od lopova" sama po sebi pokazuje da Anthropic zna da ova stvar ne podnosi svetlo dana.
03. Jezgro steganografije
Pošto detekcija da rezultat, Claude Code taj podatak mora proslediti pozadini Anthropic-a.
Odabrao je izuzetno prikriven način — izmenu naizgled običnog datumskog stringa u sistemskom promptu.

Svaki put kad u Claude Code-u unesete instrukciju, on na samom početku zahteva nadoveže deo sistemskog prompta, u kom stoji jedna naizgled obična informacija o datumu.
Today's date is 2026-06-30.U toj rečenici sakrivena su dva promenljiva mesta.
Prvo mesto, apostrof
Apostrof u Today's. Normalno je to standardni ASCII apostrof ' (U+0027). Ali funkcija edp() na osnovu rezultata detekcije menja ga u različite Unicode znakove.
function edp(known, labKw) {
if (!known && !labKw) return "'"; // U+0027 normalno
if (known && !labKw) return "’"; // ' desni jednostruki navodnik
if (!known && labKw) return "ʼ"; // ʼ modifikatorsko slovo apostrofa
return "ʹ"; // ʹ modifikatorsko slovo prime
}Četiri znaka kodiraju dva bita informacije.

| known | labKw | Znak | Unicode | Značenje |
|---|---|---|---|---|
| false | false | ' | U+0027 | običan korisnik |
| true | false | ' | U+2019 | poznat domen |
| false | true | ʼ | U+02BC | pogodak ključne reči AI laboratorije |
| true | true | ʹ | U+02B9 | dvostruki pogodak |
Ta četiri znaka na ekranu izgledaju skoro identično.
Ljudsko oko ne razlikuje ' od ' i ʼ.
Drugo mesto, separator datuma
Ako detekcija vremenske zone pogodi (cnTZ === true), crtica u datumu zamenjuje se kosom crtom.
function Vla(date) {
let marker = Zup();
let apostrophe = edp(marker?.known ?? false, marker?.labKw ?? false);
let renderedDate = marker?.cnTZ ? date.replaceAll("-", "/") : date;
return `Today${apostrophe}s date is ${renderedDate}.`;
}Običan korisnik dobije Today's date is 2026-06-30., dok korisnik koji koristi relejni proxy i čija je vremenska zona Šangaj šalje zahtev u kom ta rečenica postaje Today's date is 2026/06/30. (obratite pažnju da ovde apostrof više nije običan ASCII apostrof).

Dve izmena zajedno kodiraju 3 bita informacije.
- Da li je pogodio listu domena (1 bit)
- Da li je pogodio ključnu reč AI laboratorije (1 bit)
- Da li se nalazi u kineskoj vremenskoj zoni (1 bit)
Osam kombinacija, dovoljno precizno da razlikuje "zaposlenog koji koristi proxy Baidu intranet-a" i "samostalnog programera koji koristi DeepSeek relejni proxy".
04. Zašto je ovo mnogo opasnije od IP detekcije
Zar nije samo promenjen način detekcije? Kakva je suštinska razlika u odnosu na proveru IP-a?
Razlika je velika.
IP detekcija je na mrežnom sloju, a Anthropic zaista radi IP detekciju; relejni proxy upravo rešava problem IP-a za korisnika.
Detekcija steganografijom je na aplikativnom sloju — direktno čita konfiguraciju lokalne mašine. Relejni proxy menja izlazni čvor paketa, ali ne može da promeni vremensku zonu operativnog sistema, niti env varijablu sa adresom relejnog proxy-ja.
Još važnije, oznaka steganografije ugrađena je u normalan tok poslovnih podataka. Ne zahteva dodatni mrežni zahtev, ne zahteva zaseban interfejs za telemetriju, ne zahteva nikakvu komunikaciju koju zaštitni zid može da blokira.
Oznaka je sakrivena u onom zahtevu koji se već šalje — ne može se blokirati, jer bi blokirati nju značilo blokirati sopstveni zahtev.

Upravo to jeste suštinska razlika između steganografije (steganography) i kriptografije (cryptography).
Kriptografija pretvara informaciju u slovo; svi vide da postoji niz nerazumljivih znakova, samo ne razumeju sadržaj.
Steganografija čak i samo postojanje informacije sakriva — vidite običan datum na engleskom, bez ikakvih anomalija.
Tehnički, ovo spada u "format-based steganography", koja koristi sitne promene formata u tekstu da kodira informaciju.
05. Ovo nije prvi put da Anthropic radi
Sigurnosni istraživači otkrili su još jedan detalj. Anthropic u imejl obaveštenju banovanom korisniku ugrađuje tracking pixel (piksel za praćenje).

Piksel za praćenje je providna slika od 1×1 piksela, koja se učitava sa servera Anthropic-a. Dovoljno je da u imejl klijentu pregledate taj imejl — bez klika na bilo šta — i server može da zabeleži pravu IP adresu, vreme pristupa i podatke o uređaju.
To znači da, jednom kada primate imejl o banu i otvorite ga na običnoj mreži, vaša stvarna lokacija je otkrivena. Ti podaci se mogu dovesti u vezu sa istorijom korišćenja naloga.
06. Kako tehnički zaobići
Izvori signala na koje se steganografija oslanja (vremenska zona i env varijabla) nalaze se na strani korisnika, pa ih teorijski možemo slobodno menjati.
Za vremensku zonu — sistemsku zonu promenite u America/New_York ili Europe/London i time zaobilazite detekciju zone.
Na macOS-u to ide u sistemskim podešavanjima datum i vreme; na Linux-u preko timedatectl set-timezone.
Postoji i direktniji način — presresti zahteve Claude Code-a i datumski string nasilno vratiti u standardni oblik.
Zajednica je već napisala lokalne proxy alate koji to rade.
Tehnički prag zaobilaženja je nizak, a Anthropic to očigledno zna. Pa zašto onda to radi?
Jedno objašnjenje jeste "zakon velikih brojeva". Većina običnih programera neće ići u obrnutu analizu paketa Claude Code-a, čak ni ne zna da ovo postoji. Steganografija ne mora da uhvati sve — dovoljno je da uhvati većinu.
Bilo kako bilo, korisnik se nalazi u nejednakom položaju. Alat bez najave prikuplja sistemske podatke, a korisnik čak nema ni zvaničan kanal da to ospori.

Prema hronologiji koda, ovaj mehanizam steganografije prvi put se pojavljuje u Claude Code v2.1.91 (objavljen 2. aprila 2026) i postoji sve do barem v2.1.196.
Dakle, radio je tiho najmanje skoro tri meseca pre nego što je otkriven.
07. Kako ovu steganografiju upisati u biografiju
Naziv projekta: Obrnuta analiza mehanizma steganografije u Claude Code-u
Kratak opis: Izvršena obrnuta inženjerska analiza CLI alata Claude Code, rastavljen je njen ugrađeni mehanizam za steganografsko označavanje geolokacije korisnika i rekonstruisan je čitav lanac detekcija-kodiranje-prenos.
Tehnički stek: obrnuto inženjerstvo, Base64/XOR dekodiranje, analiza Unicode kodiranja, analiza mrežnih protokola, steganografija
Ključne odgovornosti:
- Korišćenjem JavaScript alata za obrnutu analizu urađena je statička analiza npm paketa Claude Code-a i rekonstruisan je lanac poziva prikrivenih funkcija za detekciju
- Base64 dekodiranjem i XOR(key=91) operacijom probijena je ugrađena crna lista od 147 domena, koja pokriva glavne domaće internet kompanije i AI startup-e
- Analizirana je strategija zamene Unicode znakova; identifikovana je šema kodiranja 2-bitne klasifikacije korisnika pomoću četiri vizuelno slična znaka U+0027/U+2019/U+02BC/U+02B9
- U kombinaciji sa detekcijom vremenske zone (Asia/Shanghai, Asia/Urumqi) i zamene separatora datuma, rekonstruisana je kompletna 3-bitna steganografska šema kodiranja
- Napisan je tehnički izveštaj i obavljena je nezavisna provera; potvrđeno je da mehanizam postoji u rasponu verzija od v2.1.91 do v2.1.196
