--- name: AA Persistence + Broadcast + Bookmarklet 2026-05-08 description: Persistência cookies em disco nas 2 VMs, /api/aa/cookies-broadcast no gateway, bookmarklet em http://75.119.132.37/aa-broadcast.html. Patchright testado e bloqueado pelo Akamai 2.0 endpoint-specific (TLS/JA3 + ausência de GPU) type: project originSessionId: a2386a9d-27fc-4f26-a9f6-24a703864a3f --- # AA cookies — sessão 2026-05-08 ## Mudanças aplicadas ### 1. Persistência em disco no aa-solver (adv-22 + adv-23) - Arquivo: `/opt/aa-solver/cookies.json` (JSON com `version`, `ts`, `abckValue`, `cookies[]`) - Salva no `POST /set-cookies` e em cada `warmup` que detecta `_abck~0~` válido (auto-refresh) - Carrega no startup via `loadCookiesFromDisk()` antes do primeiro warmup - Cookies sobrevivem reboot do solver - Hash novo do `aa-solver.mjs`: `a625f1992ca684c45a24353e690d7653` (567 linhas) - Backups originais: `aa-solver.mjs.bak-pre-persist-1778260753` (adv-22), `bak-pre-persist-1778260780` (adv-23) ### 2. Endpoint broadcast no api-gateway (`/opt/skymilhas/server.js` PM2 #52) - `POST /api/aa/cookies-broadcast` — recebe `{cookies: "raw_string"}`, fan-out paralelo pra 100.91.20.22:9093 + 100.123.139.93:9093 `/set-cookies`. Retorna 200 se ambas OK, 207 se parcial. CORS aberto. - `GET /api/aa/cookies-broadcast` — status agregado (count, abckValid, abckExpired, persisted) das 2 VMs. - API key obrigatória via `?api_key=` ou header `X-API-Key`. - Backup original: `/opt/skymilhas/server.js.bak-pre-aa-broadcast-1778261...`. Hash novo: `ebbfc19dc4e849f833ce5c72d0f70815`. ### 3. Detecção proativa `_abck~-1~` - `searchAA` loga warning antes da busca se cookies têm `_abck~-1~` - `/cookies-status` retorna agora `abckValid`, `abckExpired`, `needsRefresh`, `persisted`, `ageMin` - Erro de busca com cookies expirados retorna mensagem clara: `'searchData não capturado (abck EXPIRADO ~-1~ — re-inject cookies)'` + `debug.abckExpired`, `debug.cookiesAgeMin` ### 4. Bookmarklet (página HTTP intermediária) - Página: `http://75.119.132.37/aa-broadcast.html` (servidor frontend, public root) - Bookmarklet `javascript:` que captura `document.cookie` e abre `window.open('http://.../aa-broadcast.html?cookies=...')` - Nova aba HTTP faz fetch POST `/api/aa/cookies-broadcast` (HTTP→HTTP cross-origin permitido, CORS liberado) - Limpa URL via `history.replaceState` pra não vazar cookies em histórico/screenshot ## Tentativa de bypass automático (falhou) ### Patchright instalado em adv-22:/opt/aa-solver/node_modules/patchright (1.59.4) - Teste `patchright-quick.mjs` em `/tmp/` - Resultado: `_abck=...~-1~...` na primeira request, WebGL canvas retorna null - Akamai 2.0 endpoint-specific da AA detecta: - TLS/JA3 fingerprint do Chrome em Linux (handshake difere de Chrome Windows real) - Ausência de GPU física (WebGL retorna null no SwiftShader) - Bloqueio acontece **antes** do JS de stealth rodar — `addInitScript` não tem efeito - Conclusão: bypass automático sem cookies precisa GPU passthrough na VM (Hyper-V GPU partition, 4-6h setup) ou reverse engineering do sensor v2 K2Er/BEQp/SScB (semanas) ### Stealth CDP-level (`aa-stealth-test.mjs`) — também falhou - Spoofing WebGL renderer/vendor, navigator.platform, webdriver, userAgentData, plugins, languages, hwc, screen - Resultado idêntico ao patchright: bloqueio TLS antes do JS ## Why Jesiel exigiu solução automática, sem manualidade. Tentamos patchright + stealth CDP — ambos falham por limitação de hardware (sem GPU) e TLS fingerprint do Linux. A única solução técnica viável hoje é cookies do Chrome real do Jesiel (PC com GPU + Windows TLS). O bookmarklet reduz fricção pra "1 clique no favorito" enquanto na página www.aa.com. ## How to apply - Quando AA cair: Jesiel clica no bookmarklet 📨 Enviar cookies AA enquanto está em aa.com → distribui automaticamente - Status agregado: `curl http://173.208.187.154:3001/api/aa/cookies-broadcast?api_key=... ` (sem POST → GET) - Cookies sobrevivem reboot solo (persistência em disco) — só precisa re-inject quando `_abck` virar `~-1~` (taxa de sucesso cai) - Auto-refresh: warmup a cada 4min sincroniza valores frescos do `_abck` se ainda valido - A pendência arquitetural pra automação 100% sem PC: GPU passthrough nas VMs Hyper-V (não tentado nessa sessão)