16 KiB
Ревью ChatGPT/Outlook авторег-репозиториев (октябрь 2026)
Deep code-review 6 реп. Вердикты + что забирать в стек. Все пути локальные: tmp/plotnyj_autoreg/.
1. gptfree-register (hyhang915) — ЦЕННОСТЬ: ВЫСОКАЯ, донор кода №1
Протокольный регистратор ChatGPT, последний коммит 2026-07-23. Flask-консоль :8866.
Механика:
- NextAuth CSRF →
chatgpt.com/api/auth/signin/openai auth.openai.com/api/accounts/passwordless/send-otp→/api/accounts/email-otp/validate→/api/accounts/create_accountс заголовкамиopenai-sentinel-token/openai-sentinel-so-token- Sentinel-токен генерируется ЛОКАЛЬНО: bootstrap
sentinel.openai.com/backend-api/sentinel/sdk.js→ динамический fetch актуального sdk.js → исполнение в Node jsdom VM (core/sentinel_vm/runtime_worker.js,core/gpt_trial_protocol/sentinel_http.py). Эмуляция антибот-SDK OpenAI без платных решалок — ключевой трюк репо.
«SKIP SMS» = режим Agent Identity (core/agent_identity.py): телефон не обходится, а становится НЕ НУЖЕН для Codex-пути. После create_account: генерация Ed25519-ключа → POST auth.openai.com/api/accounts/v1/agent/register c Bearer access_token + {abom:{agent_version:'0.138.0-alpha.6', agent_harness_id:'codex-cli', running_location:'local'}, agent_public_key:'ssh-ed25519 ...'} → agent_runtime_id → auth.json {auth_mode:'agent_identity'} → авто-импорт в sub2api POST /api/v1/admin/accounts/import/codex-session.
Полный HTTP add-phone тоже есть (core/chatgpt_register.py:224-310): /api/accounts/add-phone/send {phone_number}, /phone-otp/resend, /phone-otp/validate + core/sms_provider.py — sms-activate-протокольный клиент (smsbower/smshub/tiger-sms/onlinesim, динамический прайс через getPrices).
Зависимости: Python 3.11+, Node.js. Почта: НЕ темп-почты, а пул Outlook-аккаунтов email----password----ms-client-id----ms-refresh-token (чтение OTP через Microsoft Graph, публичный Thunderbird client_id 9e5f94bc-e8a4-4e73-b8be-63364c29d753) или iCloud Hide-My-Email relay. Прокси: HTTP-пул. YesCaptcha — только для браузерного режима (в протокольном не нужна).
Экспорт (12+ форматов, core/account_exports.py): sub2api JSON, codex RT txt, at_5parts/at_5dashes/at_6dashes (email|password|access_token|client_id|refresh_token), CPA zip, any2api admin.json, json/csv. Codex refresh_token — отдельный OAuth PKCE флоу, публичный Codex CLI client_id app_EMoamEEZ73f0CkXaXp7hrann.
Риски (октябрь 2026): хардкод agent_version 0.138.0-alpha.6 (OpenAI поднимет мин. версию Codex — отвалится); fallback sentinel sdk 20260219f9f6 (митигируется динамическим fetch); главный неизвестный — проходит ли create_account без phone-gate (в pipeline.py:620 уже было состояние add_phone_required). Проверяется только живым прогоном 1–2 аккаунтов с Outlook-RT + резидентным прокси.
Red flags: чисто. Все внешние домены: openai/chatgpt/sentinel, graph.microsoft, login.microsoftonline, sms-платформы, yescaptcha, stripe/paypal, meiguodizhi.com (фейк-адреса США), ip-api/ipify, npmjs. Телеметрии/чужих ключей нет; обфускация только в вендоренном sdk.js самого OpenAI.
Забрать в стек: sentinel_http.py + core/sentinel_vm/*, agent_identity.py, add-phone endpoints, sms_provider.py, gateway_push.py + account_exports.py, email_provider.py.
2. chatgpt2api (yukkcat) — ВНЕДРЯТЬ как upstream пул-шлюза
v3.2.3, коммит 2026-09-09 (свежий, CHANGELOG активен август–сентябрь; v3.2.3 добавил gpt-image-2.5/flare/sunburst). AGPL-3.0 (внутреннее использование ок). FastAPI + curl_cffi + SQLAlchemy, docker.
- Пул: БД (SQLite/Postgres), аккаунт = access_token (ключ) + refresh_token + id_token + email/plan/quota/status/proxy/group. Auto-refresh: JWT-skew 24ч,
POST auth.openai.com/oauth/token grant_type=refresh_token, client_idapp_2SKx67EdpoN0G6j64rFvigXD(публичный ChatGPT web). Ротация round-robin, 429/Retry-After обрабатываются, «限流»-статус после подтверждения. - Антибот: PoW (
OpenAI-Sentinel-Proof-Token, скрипт chatgpt.com sentinel/sdk.js) + turnstile-эмуляция + impersonate chrome110 / Chrome 142 UA. - Модели: текст
gpt-5.6,auto(годятся любые живые аккаунты включая free); картинкиgpt-image-2,gpt-image-2.5,-flare,-sunburst,codex-gpt-image-2+ план-префиксы (только Plus/Team/Pro codex-аккаунты); PPT/PSD:/v1/ppt/generations,/v1/psd/generations,/v1/editable-file-tasks. Эндпоинты:/v1/chat/completions,/v1/responses,/v1/messages(Anthropic-compat),/v1/search,/v1/images/generations|edits(до 10 референсов). - Импорт наших токенов:
POST /api/accounts(Bearer CHATGPT2API_AUTH_KEY){"accounts":[{"access_token","refresh_token","email","type":"free|Plus","proxy","source_type":"web"}], "target_group_id":...}или просто{"tokens":[AT,...]}. Также умеет тянуть из CPA (/v0/management/auth-files) и sub2api (login → batch-export). - Запуск:
docker compose up -d, порт 3000,CHATGPT2API_AUTH_KEY= админ-ключ и дефолтный Bearer для /v1. Python ≥3.13 без докера тоже. - Требования к аккаунтам: OAuth AT+RT (cookies не принимаются), phone не проверяется; для картинок нужны аккаунты с image-квотой (Plus); прокси на аккаунт обязательны при массовом пуле (бан-риск в README).
- Red flags: минимум — только публичные client_id/auth0Client, апдейты с github allowlist, коммерческие ссылки автора в README. Секреты при импорте маскируются в логах.
Вердикт: готовый пул-шлюз. Схема: наши авторег-аккаунты (free на текст, Plus на картинки) → POST /api/accounts → /v1 канал в общий ротатор.
3. gpt-auto-register (7836246) — МУСОР
Selenium + undetected-chromedriver, коммит 2026-07-31. SMS-модуля нет вообще (grep phone/sms = 0) — только email-OTP с Cloudflare temp-email worker. Phone-gate не обрабатывается. Мёртвые маркеры: chat.openai.com (редиректит с 2023), Chrome/120 UA, expiry_year: 2025. Plus-trial через Stripe требует РЕАЛЬНУЮ карту (plaintext в config.yaml). Экспорт только email----password----дата----статус — токенов нет. Забирать нечего, кроме селекторной цепочки Stripe checkout + cancel_subscription (browser.py:651-1450) если понадобится авто-отмена Plus.
4. outlook-auto-register (lxf746) — единственный живой Outlook-протокол
Создан 2026-08-24, последний коммит 2026-09-23 (метод жив на момент клона). 989⭐ за месяц — возможен star-бот; shallow-клон 1 коммит.
Протокол: OAuth PKCE → signup.live.com/signup?lic=1 (ServerData) → API/CheckAvailableSigninName → login.microsoftonline.com/9188040d-6c67-4c5b-b112-36a304b66dad/api/v1.0/risk/initialize → preload humanSensorUrl + PX-коллектора (collector-pxzc5j78di.hsprotect.net, PerimeterX app PXzC5j78di) → risk/verify #1 (px metadata + msaRiskVerifySignature) → при riskChallengeRequired: captcha press/silent → risk/verify #2 (challengeSolution) → API/CreateAccount → login.live.com/oauth20_authorize.srf + ppsecure/post.srf → proofs (recovery email: IMAP-пул или Cloudflare catch-all worker; скип = мёртвые аккаунты) → опционально Passkey-skip + mail OAuth refresh_token (Graph/REST/login_exe Thunderbird scope). Arkose pubkey B7D8911C-5CC8-A9A3-35B0-554ACEE604DA. Web-консоль FastAPI :8890 (SSE-логи, dry-run default), SQLite-пул прокси (sticky, success-rate), keepalive/rescue.
SMS не нужен — вместо него recovery-email proofs. Но ANTIBAN.md: на свежем аккаунте Microsoft может запросить phone при триггере риск-контроля.
Критично: «чистый протокол без браузера» — маркетинг. Их же исследование (docs/px_hold_research.md, 2026-08): _px3 press-токен криптографически не подделать (AES-CBC+PBKDF2 на сервере PX, HMAC от UA, WASM PoW), silent-путь MS не пускает. Нужен либо платный солвер — captcha.run (press-фаза ОБЯЗАНА идти через ту же живую sticky-прокси, иначе списание без результата), CapSolver (AntiPerimeterXTask + FunCaptchaTask), EzCaptcha, OffCaptcha — либо бесплатный локальный harvester (их px_swiftshader_solver: headless Chromium + SwiftShader + CDP-клик 1–3с; тестировался на macOS) или BitBrowser-путь (Windows-friendly, локальный API :54345). 2captcha и Turnstile/reCAPTCHA-сайдкары НЕ подходят — тут PerimeterX + Arkose.
Экспорт: email----password----client_id----refresh_token (graph) / 6 сегментов (+recovery_email----recovery_password, Thunderbird scope IMAP/POP/SMTP+EWS+Mail.Read/Send — «формат продавцов») / dual (+login RT). Keepalive ротационно обновляет RT, пишет .refreshed/.dead.
Red flags: встроенные реферальные отчисления (CAPTCHA_RUN_DEVELOPER_ID, дефолтный OFFCAPTCHA_SOFT_ID, IPWO реф-код) — автор монетизирует ваши captcha-траты; часть тулов macOS-only (Swift).
Запуск сегодня (~30 мин): captcha-ключ или BitBrowser + CF catch-all worker под proofs + жилые {sid}-прокси (страна выхода = mkt/lc), 1 акк = 1 IP, ≤2 акка/IP/день, concurrency 1–2, jitter 3–8с, dry-run первым прогоном.
5. freeAgentIdentity (asz798838958) — это aBaiAutoplus
Коммит 2026-08-25, AGPL-3.0, 1487⭐. Outlook НЕ регистрирует — регистрирует ChatGPT (чистый протокол: curl_cffi + Sentinel в локальном Node V8 пуле, Codex client_id/scope → токены) и Cursor/Kiro (Camoufox). Outlook-ящики только ПОТРЕБЛЯЕТ как почтовый пул (local_ms_pool: Graph, fallback IMAP; api_mailbox HTTP; domain_imap_catchall; Inbucket). Авто-привязка TOTP 2FA, 401-верификация живости, протокольный recovery-логин, refresh токенов. Прокси: Mihomo-пул с pulse-расписанием. Экспорт: JSON/CSV/sub2api/agent-identity sub2api/CPA/Any2API (Kiro-Go, Grok). 2captcha — нативный провайдер; свой бесплатный Turnstile-солвер на :8889 (Camoufox/patchright, GET /turnstile?url&sitekey → taskId, GET /result?id → token) — совместим с нашим sidecar :8877 по API. Запустится сегодня (Python 3.11 venv + Node 18 + Camoufox fetch ~100MB + APP_PASSWORD), но t-online пул 17K подключается только через IMAP→HTTP-шим под api_mailbox.
6. outlookEmailPlus (ZeroPointSix) — ВНЕДРЯТЬ как mail-слой
v2.9.10, Apache-2.0, 2017⭐, активная разработка. Mail-менеджер для регистраций: Flask + Ant Design Pro фронт + MV3 extension.
- Outlook через MS Graph (
graph.microsoft.com/v1.0/me/messages, $batch) c OAuth refresh_token (встроенный token tool, «Get Authorization Link»), не ломающийся IMAP; Gmail/QQ/163/custom — generic IMAP (connection reuse). - HTTP API
/api/external/*с X-API-Key — ровно то, что нужно фермам:GET verification-code(regex + AI-fallback),GET verification-link,GET wait-message(sync/async probe),messages/latest,health/capabilities/account-status. - Mail pool:
POST pool/claim-random|claim-domain|claim-release|claim-complete,GET pool/stats— project_key-изоляция + success-reuse (успешный ящик сразу обратно в available). Идеально под фермы conol/miarouter/llmtr/omnirush. - Temp-mail плагины (CF Worker multi-domain, GPTMail, Moemail, hot-reload), Telegram-push, APScheduler polling, Docker+Watchtower hot-update.
- Риски: фронт требует Node-сборки (API работает headless), demo-пароль в доках.
План: docker-compose → external_api_key → перевод ферм с ad-hoc IMAP-ридеров на /api/external/*.
Captcha-solver (waguriagentic) — обновить sidecar
Наш клон на 3dc52fe (20.07), upstream d68510df (14.10), ~21 коммит вперёд (сентябрь мёртвый, активность 07–14.10). Приоритет подтянуть:
2c642cfafix(turnstile): interactive widget render + telemetry abort — прямо повышает acceptance бесплатных Turnstile-токеновd68510dfport CloakBrowser → 154.0.8037.57.2- aliyun-фиксы: x-region header (токен переносим между сессиями!), real_page mode, page-mount waits
- deploy: container image + geoip extra, PyPI mirror/fallback, resume partial wheels, resource-aware concurrency
Новых типов капч нет (arkose FunCaptcha ONNX был до нашего клона).
СТАТУС 14.10 — ВЫПОЛНЕНО: cs_sidecar подтянут 3dc52fe → d68510d (stash/pop, локальные патчи сохранены: mistral→:16432 qwen3-vl-plus, HUMANIZE=0), доустановлены geoip2+socksio. ВНИМАНИЕ: новая версия ввела Bearer-auth гейт на все API-пути — без SOLVER_ALLOW_UNAUTHENTICATED=1 все фармы ловили бы 401. Watchdog tmp/tk_watchdog.py пропатчен (добавлены SOLVER_ALLOW_UNAUTHENTICATED=1 + SOLVER_BIND_HOST=127.0.0.1), перезапущен. Пруф: /health 200, 11 типов, единственный listener 127.0.0.1:8877.
Итоговая схема стека
Outlook-ящики: outlook-auto-register (PX captcha.run/BitBrowser + CF catch-all proofs)
↓ email----pass----client_id----refresh_token
Mail-слой: outlookEmailPlus /api/external/* (claim pool + verification-code)
↓
ChatGPT-рег: gptfree-register (sentinel VM + Agent Identity → Codex auth.json без phone)
↓ access_token + refresh_token
Пул-шлюз: chatgpt2api docker :3000 (POST /api/accounts, auto-refresh, gpt-5.6 + gpt-image-2.5)
↓ /v1 OpenAI-compat
Ротатор: общий gateway (карантин по chat-403, не models-200)