Skip to content

Repository files navigation

Cookie Injector

Extensão Chrome (Manifest V3) que injeta cookies via chrome.cookies API em qualquer domínio. Você cola as linhas de cookies copiadas direto da aba Application → Cookies do DevTools e a extensão pré-visualiza ou injeta os cookies.

⚠️ Aviso de segurança

Cookies de sessão são credenciais de autenticação. Qualquer pessoa com esses valores pode acessar a conta correspondente. Nunca faça commit de cookies reais neste repositório (público) nem os compartilhe. O arquivo cookies.json aqui contém apenas valores de exemplo (placeholders).

Arquivos

  • manifest.json — definição da extensão (MV3); permite http://*/* e https://*/*.
  • popup.html / popup.js — interface: cola, pré-visualiza e injeta cookies.
  • cookies.json — exemplo de formato (somente placeholders).

1. Instalar a extensão no Chrome

Como a extensão não está na Chrome Web Store, ela é carregada em modo de desenvolvedor (a partir do código-fonte):

  1. Clone ou baixe este repositório para uma pasta local.
    git clone https://github.com/luancamara/cookie-injector.git
  2. Abra o Chrome e acesse chrome://extensions (digite na barra de endereço).
  3. Ative o Modo do desenvolvedor (interruptor no canto superior direito).
  4. Clique em Carregar sem compactação (Load unpacked).
  5. Selecione a pasta do repositório (a que contém o manifest.json).
  6. A extensão Cookie Injector aparecerá na lista. Fixe-a na barra de ferramentas clicando no ícone de quebra-cabeça 🧩 → alfinete 📌.

Ao instalar, o Chrome exibirá o aviso "Ler e alterar todos os seus dados em todos os sites" — isso é esperado, pois o injetor precisa acessar cookies de qualquer domínio.

2. Copiar os cookies do navegador de origem

Os cookies são copiados direto do DevTools do navegador onde a sessão já está ativa:

  1. Abra o site do qual você quer copiar os cookies (ex.: já logado na conta).

  2. Abra o Developer Tools:

    • Windows/Linux: F12 ou Ctrl + Shift + I
    • macOS: Cmd + Option + I
    • Ou: clique direito na página → Inspecionar.
  3. Vá até a aba Application (em telas menores pode estar no menu »).

  4. No painel esquerdo, expanda Storage → Cookies e selecione o domínio desejado. A tabela de cookies aparece à direita.

  5. Clique em qualquer célula da tabela para focar nela, depois:

    • Ctrl + A (Cmd + A no macOS) para selecionar todas as linhas.
    • Ctrl + C (Cmd + C no macOS) para copiar.

    Isso copia todas as colunas (Name, Value, Domain, Path, Expires, Size, HttpOnly, Secure, SameSite…) separadas por TAB — exatamente o formato que a extensão espera.

3. Injetar os cookies no navegador de destino

  1. No navegador de destino (com a extensão instalada), abra a extensão Cookie Injector clicando no seu ícone.
  2. Cole (Ctrl + V / Cmd + V) o conteúdo copiado na caixa de texto.
  3. Clique em:
    • Só pré-visualizar — para conferir quais cookies foram reconhecidos antes de gravar nada.
    • Injetar agora — para gravar os cookies via chrome.cookies API. O log mostra ✓ para cada sucesso e ✗ para falhas.
  4. Recarregue o site de destino — a sessão deve estar ativa.

⚠️ Cookies de sessão são credenciais. Copie/injete apenas cookies de contas que são suas e em máquinas confiáveis.

Origem em VDI/Citrix com extensões bloqueadas

Se a VDI permitir a extensão ObservePoint Debugger (daejfbkjipkgidckemjjafiomfeabemo), ela pode servir como exportadora:

  1. Na VDI, abra o DevTools (F12) → aba ObservePoint → seção Cookies.
  2. Atualize a lista e use Export cookies to Excel. A extensão gera Cookies.xlsx com valores e atributos, inclusive HttpOnly.
  3. Transfira o arquivo para a máquina de destino.
  4. No Cookie Injector, clique em Importar Cookies.xlsx, selecione o arquivo, confira a pré-visualização e use Injetar agora.

O arquivo é processado localmente e apenas em memória: a extensão lê somente o ZIP/XML necessário para a aba Cookies, não executa fórmulas, macros nem links externos e não envia o arquivo a nenhum servidor. O limite é 5 MB. Como alternativa, ainda é possível abrir a planilha, copiar a tabela inteira e colá-la no Cookie Injector.

Envio pelo navegador (sem instalar a extensão na VDI)

O frontend estático em Vercel permite selecionar o Cookies.xlsx e informar o mesmo código exibido em Parear / ver segredo. A planilha é lida localmente, convertida para o protocolo do transplante e cifrada no navegador antes de seguir diretamente por POST HTTPS para uma Function na Vercel. A Function abre a conexão com o relay e encaminha somente roomId e o envelope já cifrado; ela não recebe o Excel, o código de pareamento nem cookies em claro. Não existe banco ou armazenamento desses dados. O horário usado no envelope vem da Function, evitando rejeição quando o relógio da VDI está incorreto. Após o envio, a tela informa se havia um destino conectado ou se o ciphertext ficou temporariamente armazenado para entrega posterior.

Todas as extensões conectadas com o mesmo código recebem e injetam o pacote. O código é uma senha-mestra: não o compartilhe, não o salve no navegador e rotacione-o se houver qualquer exposição. Para gerar o site estático localmente:

npm run build:web

O conteúdo copiado não é persistido pelo Cookie Injector. Não envie essa planilha por e-mail, Drive, chat ou outro serviço: ela contém credenciais de sessão em texto claro. Cookies particionados preservam Partition Key e Cross Site em Chrome 130 ou mais novo; linhas com chave de partição inválida são ignoradas com aviso. Depois de validar o transplante, apague o Cookies.xlsx da VDI e limpe a área de transferência dos dois ambientes.

Onde o Chrome guarda os dados na VDI Windows

Veja o caminho efetivo em chrome://version, no campo Profile Path. No caminho padrão, os cookies ficam em:

%LOCALAPPDATA%\Google\Chrome\User Data\Default\Network\Cookies

Outros perfis usam Profile 1, Profile 2 etc. no lugar de Default; abas/janelas ficam em Sessions\, local storage em Local Storage\leveldb\, session storage em Session Storage\ e IndexedDB em IndexedDB\.

Copiar esses arquivos da VDI para o Mac não é um transplante confiável: o banco de cookies é SQLite e os valores são protegidos por credenciais/chaves do Windows (DPAPI e, em versões atuais, proteções vinculadas ao aplicativo). O caminho suportável é exportar os valores pelo navegador de origem e recriá-los pela API de cookies.

4. Transplante automático de sessões (novo — v1.4)

Além do fluxo manual acima, a extensão transplanta todas as sessões do perfil de uma máquina sua para outra automaticamente: você dispara na origem e a máquina de destino (com a mesma extensão e o mesmo segredo) recebe e injeta sozinha, sem nenhum clique. Isso cobre justamente o que o Chrome Sync não sincroniza (cookies).

Como funciona

  • Um relay (Cloudflare Worker + Durable Object) fica no meio só para repassar bytes.
  • O conteúdo trafega criptografado de ponta a ponta (AES-GCM); a chave é derivada (HKDF) de um segredo compartilhado que vive só nas suas máquinas. O relay nunca vê seus cookies.
  • A origem sempre inicia o envio. O destino mantém um WebSocket vivo no service worker, recebe o pacote, decifra e injeta, e mostra uma notificação.
  • Se o destino estava offline, o relay guarda o último pacote por ~2 min (TTL) e entrega assim que ele reconectar.

Pareamento (uma vez)

  1. Na máquina A, abra a extensão → Parear / ver segredo. Um segredo é gerado.
  2. Copie esse segredo e cole na máquina B (mesmo botão → campo "entrar no mesmo canal") → Usar este segredo. Repita nas demais máquinas suas.
  3. Pronto: todas no mesmo canal privado. Para trocar o segredo depois, use Rotacionar segredo (e repareie as outras máquinas).

Enviar

Na origem, clique Transplantar sessões. Em segundos a(s) outra(s) máquina(s) recebem e injetam; uma notificação confirma quantas sessões entraram. Recarregue um site logado no destino para conferir.

Relay (Cloudflare) — já publicado

O relay já está no ar em wss://cookie-injector-relay.luancamara.workers.dev (Worker + Durable Object SQLite, plano gratuito) e a extensão já aponta para ele em src/constants.js. Não é preciso fazer mais nada para usar.

Para republicar após mudar o código do relay:

cd relay
npm install
npx wrangler deploy   # requer `npx wrangler login` uma vez

Para apontar para outro relay sem editar o código, defina um override em chrome.storage.local na chave relayUrl.

⚠️ Segurança

O segredo é uma senha-mestra: quem o tiver acessa todas as suas sessões. Trate como senha — não versione, não compartilhe. O transplante foi desenhado para as suas próprias máquinas; enviar para terceiros equivale a compartilhar login.

Desenvolvimento / testes

npm install      # vitest
npm test         # roda os módulos puros (crypto, protocolo, injeção, relay-core...)

About

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages