Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 241781|Resposta: 55

[Programa de Console] .NET/C# usa FiddlerCore4 para interceptar e modificar requisições HTTP

  [Copiar link]
Publicado em 20/12/2020 13:39:53 | | | |
O FiddlerCoreAPIFreeSetup mais recente, capture o novo arquivo dll e use após a instalação, a biblioteca http custom interception processing do Fiddler, o FiddlerCore, está atualmente disponível como uma biblioteca de classes .NET, que pode ser usada por qualquer aplicação .NET. O FiddlerCore foi projetado para aplicações dedicadas que rodam sem interface de usuário, como automação de testes, ou interfaces específicas para interfaces que o Fiddler Addon não se encaixa, como visualização de tráfego WPF.

O FiddlerCore agora mudou para o pagar, mas antes da cobrança, várias novas versões do padrão .NET foram lançadas em beta, que estavam disponíveis e não tinham limite de 30 dias. O SDK completo e a demo estão disponíveis. O endereço de download é o seguinte:

FiddlerCoreAPIFree_4_6_20191_7809.zip download
O login do hiperlink está visível.

Crie um novo projeto de console .NET 4.6.2: HttpCapture, que faz referência à biblioteca de classes FiddlerCore45.dll, que pode ser obtida baixando-a como acima.

O evento do Fiddler é o seguinte:

//
        Resumo:
        Esse evento é acionado quando uma sessão é concluída
        evento estático público SessionStateHandler AfterSessionComplete;
        //
        Resumo:
        Esse evento é ativado quando o Fiddler captura uma mensagem WebSocket
        evento estático público EventHandler<WebSocketMessageEventArgs> OnWebSocketMessage;
        [CodeDescription("Este evento dispara um certificado HTTPS validado.")]
        evento estático público EventHandler<ValidateServerCertificateEventArgs> OnValidateServerCertificate;
        //
        Resumo:
        Esse evento é acionado quando os Cabeçalhos de Resposta estão disponíveis
        evento estático público SessionStateHandler ResponseHeadersAvailable;
        //
        Resumo:
        Esse evento é ativado quando Cabeçalhos de Solicitação estão disponíveis
        evento estático público SessionStateHandler RequestHeadersDisponíveis;
        //
        Resumo:
        Esse evento é ativado quando uma resposta do servidor é recebida pelo Fiddler
        evento estático público SessionStateHandler BeforeResponse;
        //
        Resumo:
        Esse evento é acionado quando um pedido de cliente é recebido pelo Fiddler
        evento estático público SessionStateHandler BeforeRequest;
        //
        Resumo:
        Esse evento é disparado toda vez que o FiddlerCore lê dados da rede para o cliente
        Pedido. Note que esses dados não são formatados de forma alguma e devem ser analisados
        pelo destinatário.
        evento estático público EventHandler<RawReadEventArgs> OnReadRequestBuffer;
        //
        Resumo:
        Esse evento é disparado toda vez que o FiddlerCore lê dados da rede para o servidor
        resposta. Note que esses dados não são formatados de forma alguma e devem ser analisados
        pelo destinatário.
        evento estático público EventHandler<RawReadEventArgs> OnReadResponseBuffer;
        [CodeDescription("Este evento dispara quando o usuário instrui Fiddler a limpar o cache ou os cookies.")]
        evento estático público EventHandler<CacheClearEventArgs> OnClearCache;
        //
        Resumo:
        Sincronize este evento para ser notificado quando o FiddlerCore for anexado como proxy do sistema.")]
        [CodeDescription("Sincronizar este evento para ser notificado quando o FiddlerCore for anexado como proxy do sistema.")]
        [Obsoleto("Por favor, use o Telerik.NetworkConnections.NetworkConnectionsManager.)]
        evento estático público SimpleEventHandler FiddlerAttach;
        //
        Resumo:
        Sincronize este evento para ser notificado quando o FiddlerCore se desligar como proxy do sistema.
        [CodeDescription("Sincronizar este evento para ser notificado quando o FiddlerCore se desligar como proxy do sistema.")]
        [Obsoleto("Por favor, use o Telerik.NetworkConnections.NetworkConnectionsManager.)]
        evento estático público SimpleEventHandler FiddlerDetach;
        [CodeDescription("Este evento é ativado quando uma notificação ao usuário é exibida. Veja CONFIG. Propriedade QuietMode.")]
        evento estático público EventHandler<NotificationEventArgs> OnNotification;
        //
        Resumo:
        Esse evento é ativado quando uma resposta de erro é gerada pelo Fiddler
        evento estático público SessionStateHandler BeforeReturningError;
        //
        Resumo:
        Disparado toda vez que o Fiddler aceita com sucesso uma conexão TCP/IP
        evento estático público EventHandler<ConnectionEventArgs> AfterSocketAccept;
        //
        Resumo:
        Disparado toda vez que o Fiddler estabelece com sucesso uma conexão TCP/IP
        evento estático público EventHandler<ConnectionEventArgs> AfterSocketConnect;

Eventos comumente usados são AntesDeSolicitar, AntesDeResposta e ApósSessãoCompleta.

Se você quiser bloquear requisições HTTPS, precisa instalar um certificado, cujo código é o seguinte:

Anexado está o código para determinar se o certificado existe:

Os resultados que alcançamos foram os seguintes:

1. Interceptarwww.itsvse.comSite request, que retorna diretamente um pedaço de conteúdo JSON.
2. Bloqueie o down.itsvse.com site e, após a resposta, substitua a string "Enviado por" por "Enviado por"

O código é o seguinte:

Depois, configure manualmente o agente IE 127.0.0.1:9099, também com as configurações de código, conforme segue:

Configure o proxy de sistema IE usando .NET/C#
https://www.itsvse.com/thread-9495-1-1.html

As renderizações são as seguintes:



Nota: Ao modificar o conteúdo após a resposta, é necessário configurar uma sessão no evento BeforeRequestsession.bBufferResponse = true;, caso contrário, você não pode modificar o conteúdo da resposta!

Código fonte para download:

Turistas, se quiserem ver o conteúdo oculto deste post, por favorResposta


(Fim)





Anterior:ASP.NET Descompilação online do MVC do código-fonte atual do site
Próximo:O formato de requisição não é reconhecido porque a URL termina inesperadamente com "/itsvse".
 Senhorio| Publicado em 30/06/2023 20:07:39 |
Sobre o certificado:

Publicado em 06/03/2022 10:33:30 |
Muito bom                       
 Senhorio| Publicado em 28/06/2023 17:11:09 |
Resolveu o problema de que o Fiddler não conseguia rastrear localhost local, solicitações de rede 127.0.0.1
https://www.itsvse.com/thread-9137-1-1.html
Publicado em 23/12/2020 20:51:15 |
Ao modificar o conteúdo após a resposta
Publicado em 25/02/2021 19:39:28 |

Ao modificar o conteúdo após a resposta
Publicado em 01/03/2021 13:03:56 |
namespace do FiddlerCoreStartupSettingsBuilder
Publicado em 13/03/2021 15:15:48 |
Aprenda o código-fonte
Publicado em 31/03/2021 17:15:20 |
Estude e dê uma olhada
Publicado em 07/04/2021 18:09:31 |
Depois de procurar por um dia inteiro, finalmente encontrei um que atendia às minhas necessidades
Publicado em 05/05/2021 16:28:11 |
Mover o proxy IE 127.0.0.1:9099 também é possível
Publicado em 04/06/2021 11:27:23 |
333333333333333333
Publicado em 21/06/2021 00:33:29 |
session.bBufferResponse = true; É necessário configurá-lo?
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com