Ir para o conteúdo
CatSuite

Idioma

Escolha se o site segue o navegador ou se deve forçar português do Brasil ou inglês.

Baixar grátis

Extensões

Extensões do CatSuite

Como funcionam as extensões .catplug: motor QuickJS isolado, permissões, ciclo de vida, pontos de integração e limites da API v1.

3 min de leitura

Extensões são pacotes .catplug com código JavaScript executado pelo QuickJS 2026-06-04, incorporado por JNI em um serviço Android isolado. Cada extensão tem seu próprio ambiente, seus dados em SQLite e suas permissões.

O que uma extensão pode fazer #

  • Observar requests e responses com cat.events.on.
  • Alterar mensagens antes do encaminhamento com cat.proxy.onRequest e cat.proxy.onResponse.
  • Enviar requests para destinos declarados com cat.http.send.
  • Consultar APIs externas com credenciais protegidas com cat.external.call.
  • Registrar comandos, menus de mensagem e abas nativas.
  • Salvar dados e registrar achados com evidência.
  • Participar de fluxos visuais como etapas e parsers.

O que uma extensão não pode fazer #

Não há Node.js, DOM, fetch, acesso geral a arquivos ou execução de processos. Use cat.http.parseUrl para URLs e cat.bytes para converter UTF-8. TLS usa a validação de certificados do Android e o SDK não pode desativá-la.

Pontos de integração #

Os hooks cobrem o proxy, o Proxy de Rede, o Repetir, o Intruso e o Descobridor. Toda mensagem informa sua origem em source:

sourceOrigem
proxyTráfego do navegador interceptado
network_proxySessão do Proxy de Rede
repetirEnvios do Repetir
intrusoEnvios do Intruso
descobridorEnvios do Descobridor
extensionRequests enviadas por extensões
laboratoryTráfego simulado do laboratório

Requests de uma extensão não voltam aos próprios handlers; outras extensões podem processá-las conforme o escopo. Quando extensões processam o tráfego do proxy, as regras de substituição aplicáveis são executadas antes dos handlers, e a edição manual prevalece.

Ciclo de vida #

  1. Criar ou importar — em Configurações → Extensões, use o botão Criar (modelo básico ou exemplo Aurora), importe um .catplug ou crie o pacote na IDE web ou no CatSuite Studio para VS Code.
  2. Validar — pacote, manifesto e código são validados antes de qualquer troca.
  3. Aprovar — instalações começam desativadas. Ao ativar, você revisa capacidades e destinos.
  4. Executar — hooks, comandos, menus e abas entram em ação.
  5. Atualizar — permissões ou destinos ampliados exigem nova aprovação.

Limites da API v1 #

RecursoLimite
Extensões ativas4
Memória por ambiente32 MiB
Handler de alteração100 ms, síncrono
Chamadas HTTP simultâneas2 por extensão
Prazo HTTP total120 segundos
Resposta HTTPaté 8 MiB, com preview para o JavaScript
Preview editávelaté 32 KiB
Script de entradaaté 128 KiB
Pacote10 MiB comprimido, 40 MiB expandido e 500 arquivos
Dados por extensão10 MiB, com 128 KiB por valor

Corpos maiores, incompletos, comprimidos ou contínuos ficam somente para leitura. SSE e WebSocket preservam seu transporte, e túneis HTTPS sem descriptografia não fornecem conteúdo HTTP.

Primeira extensão #

main.jsJavaScript
cat.commands.register('lab.ola', {'pt-BR': 'Dizer olá', en: 'Say hello'}, () => {
  cat.log({'pt-BR': 'Olá do laboratório.', en: 'Hello from the lab.'});
  return {ok: true};
});

Declare a permissão commands no manifesto e rode o comando no simulador da IDE de extensões.

Continue #