Regras de Reescrita e Pontos de Interrupção
A captura permite “observar”, as regras e os pontos de interrupção permitem “alterar”. O Trace Eagle coloca você como dono do seu tráfego: altere requisições sem escrever código, usando regras clicáveis simples e diretas para reescrever milhares de fluxos automaticamente; ou use pontos de interrupção para pausar e editar fluxos um de cada vez; somente para a lógica complexa que as regras genuinamente não conseguem expressar é que você precisa recorrer a scripts / plugins.
1. Regras de Reescrita (clique simples, alterações automáticas)
Seção intitulada “1. Regras de Reescrita (clique simples, alterações automáticas)”A pior maneira de começar a alterar requisições é escrevendo um script. Aqui você não precisa: escolha uma ação em uma folha de referência e preencha um valor, e pronto, é uma regra: simples, intuitiva e aplicada no momento em que você a cria.
As regras são uma por linha, no formato <match> <action>://<value> (por exemplo *.example.com resHeaders://X-Debug: 1). Linhas em branco e comentários com # são ignorados, cada linha é validada individualmente, e as alterações são aplicadas a quente ao salvar; as regras podem ser organizadas em grupos nomeados e ativadas grupo por grupo. A interface vem com uma folha de referência clicável: um clique insere o exemplo correspondente, depois é só editar o valor, sem sintaxe para memorizar.

Condições de correspondência flexíveis
Seção intitulada “Condições de correspondência flexíveis”- Domínio exato:
traceeagle.com(pode incluir um prefixo de caminhotraceeagle.com/path) - Subdomínio curinga:
*.traceeagle.com(corresponde ao domínio apex mais todos os subdomínios) - Regex contra a URL inteira:
regex://… - URL completa exata:
$https://host/path - Porta:
:8080 - Negação: prefixe qualquer correspondência com
!
Ações de reescrita suportadas
Seção intitulada “Ações de reescrita suportadas”Direção da requisição
- Redirecionar / encaminhar: alterar o IP de destino discado (
host), mapear para uma URL completa diferente (map-remote, pode apontar para um servidor de desenvolvimento local), rotear através de um proxy http/socks5 upstream, ou restaurar as características de rede da requisição de um cliente para as de um cliente padrão (reprodução fiel). - Simular dados falsos:
mock://200oumock://200|<body>, retorna uma resposta predefinida sem chegar ao servidor, uma mão na roda quando o frontend está esperando por uma API de backend. - Editar a linha da requisição / cabeçalhos: método, User-Agent, Referer, autenticação Basic, X-Forwarded-For, Content-Type / charset, Cookie, mesclar parâmetros de consulta, localizar e substituir na URL.
- Editar o corpo da requisição: substituição total / localizar e substituir / anexar ao fim / anexar ao início / gravar em um arquivo local.
Direção da resposta
- Editar status / cabeçalhos: alterar o código de status, adicionar ou remover qualquer cabeçalho de resposta, Set-Cookie, abrir o CORS com um clique, forçar o download de um anexo, controle de cache (desabilitar cache ou definir max-age), desabilitar Cookie/compressão/keep-alive, localizar e substituir em valores de cabeçalho.
- Editar o corpo da resposta: substituição total / localizar e substituir / anexar ao fim / anexar ao início / mesclagem rasa de JSON.
- Injetar por tipo: somente quando o Content-Type corresponde, injetar ou substituir scripts, estilos ou trechos em HTML / JS / CSS.
Rede e protocolo
- Gravar em arquivo: além do corpo da requisição / resposta, a requisição / resposta bruta inteira também pode ser gravada em um arquivo local com um clique, para arquivamento ou análise offline.
- Simulação de rede ruim: atraso da requisição / resposta (milissegundos), limitação de largura de banda (com predefinições 2G / 3G / 4G).
- Reescrita de quadros WebSocket: substituição
old=>newpor direção (ambos os sentidos / cliente para servidor / servidor para cliente). - Reescrita de TCP / UDP bruto: substituição por direção em fluxos de bytes não-HTTP / datagramas SOCKS5 UDP.
Valores dinâmicos nas regras
Seção intitulada “Valores dinâmicos nas regras”Os valores das regras podem usar variáveis dinâmicas como ${url} ${host} ${port} ${method} ${status} ${now} ${random} ${randomUUID} ${req.headers.X} ${res.headers.X}, além de valores nomeados personalizados {name} (defina um valor comum uma vez, referencie-o em todos os lugares). Os valores nomeados {name} são usados principalmente em reescritas de requisição / resposta; os valores de substituição de reescrita de quadros WebSocket suportam ${...}.
2. Pontos de Interrupção (edição manual)
Seção intitulada “2. Pontos de Interrupção (edição manual)”Para fluxos que precisam de controle preciso, caso a caso, use um ponto de interrupção para pausar e abrir um editor antes de a requisição ser enviada ou antes de a resposta retornar.
Duas formas de acionar
Seção intitulada “Duas formas de acionar”- Acionado por regra: use uma regra
breakpoint://req|res|bothpara marcar com precisão quais fluxos interceptar. - Interruptor global de interceptação: ative a interceptação para a sessão inteira, depois, opcionalmente, restrinja o escopo com regras de filtro de interceptação (filtrar por domínio / método / estágio); sem regras, tudo é interceptado.
O que você pode alterar depois de interceptado
Seção intitulada “O que você pode alterar depois de interceptado”- Estágio da requisição: método, URL (o host acompanha a URL), cabeçalhos, corpo.
- Estágio da resposta: código de status, cabeçalhos de resposta, corpo da resposta.
- Descartar diretamente: Abort descarta esta requisição / resposta (o cliente recebe um erro de gateway).
- Fluxos que correspondem a múltiplos acertos entram em fila para você tratar: você pode retomar cada um (Resume), descartá-lo (Abort) ou retomar todos de uma vez. Fluxos deixados sem tratamento por muito tempo são retomados automaticamente sem alterações, de modo que o tráfego nunca fica preso indefinidamente.
3. Scripts e Plugins (automação avançada)
Seção intitulada “3. Scripts e Plugins (automação avançada)”Para lógica que as regras não conseguem expressar, delegue a um script ou plugin:
- Scripts JavaScript: defina
onRequest(req)/onResponse(resp)e edite os campos diretamente para surtir efeito. Os auxiliares embutidos incluem log, chamadas síncronas de saída para outros serviços, armazenamento de dados entre requisições (para contadores / tokens em cache), codificação/decodificação Base64 e muito mais. - Plugins de saída HTTP: use uma regra
plugin://namepara entregar a requisição / resposta ao seu próprio serviço de plugin para processamento (chamado via HTTP), e o plugin retorna o conteúdo reescrito (ou o simula diretamente). Independente de linguagem, adequado para equipes implementarem processamento personalizado em qualquer linguagem.
4. Ordem de Processamento
Seção intitulada “4. Ordem de Processamento”Um fluxo passa, nesta ordem, por: regras de requisição, scripts de requisição, plugins de requisição, ponto de interrupção da requisição, encaminhamento / simulação, regras de resposta, scripts de resposta, plugins de resposta, ponto de interrupção da resposta. O padrão é simples: primeiro as regras automáticas, depois os scripts, depois os plugins, e só por último um ponto de interrupção entra em cena manualmente, cada um fazendo o seu próprio trabalho sem atrapalhar os outros.
Voltar para Captura por Proxy · Relacionados: Compor e Reproduzir