Introdução — Charles Proxy para interceptar requisições e respostas

Gabriel Prado
Feb 20 · 3 min read

Charles é um proxy HTTP, ele encarrega-se de interceptar as requisições entre os dispositivos e a internet. Tornando-se possível modificar requisições e respostas. Lembrando que com o plano gratuito só será possível utiliza-lo por 30 minutos a cada sessão.

Introdução Interface:

O Overview é composto por :

  1. URL: endereço em que a chamada está sendo executada;
  2. Notes: informações sobre a requisição;
  3. Response Code: código HTTP (2XX,4XX,5XX);
  4. Protocol: protocolo utilizado para realizar a requisição HTTP/1.1;
  5. Content-Type: para indicar qual tipo de dado será enviado;
  6. Keep Alive em caso de HTTP/1.1: se deve manter a conexão TCP viva para envio de requisições e respostas.
  7. Timing: início da requisição, tempo de execução, tempo de TLS handshake
  8. Size: tamanho da requisição e da resposta recebida do servidor.

O Contents é composto por respostas e requisições:

  1. Headers/Raw: cabeçalho contendo mais informações sobre a requisição;
  2. Json/Text/Raw: contendo informações sobre o resultado da requisição;

Configuração do Projeto:

Devemos criar um arquivo res/xml/network_security_config.xml que irá conter as seguintes informações:

Esse arquivo será responsável por conceder permissões em modo debug ao certificado que será instalado no emulador ou dispositivo real. Após criar o arquivo, será necessário incluí-lo no AndroidManifest:

Configuração do Charles Proxy:

Após realizar o download e instalação, devemos executar o Charles e selecionar a aba “Help”, “SSL Proxying” e “Save Charles Root Certificate”. Assim, iremos realizar o download do certificado que será instalado no dispositivo.

Após o download ser concluído, devemos instalar o certificado no celular e obter o IP Local, através do “Help”, “Local Ip Address”… esse IP será utilizado para configurar o Proxy no dispositivo.

Para exibir em formato de texto os conteúdos criptografados pelo certificado SSL, será necessário adicionar o endereço e a porta que será interceptada. Também é possível interceptar todos os endereços através do uso genérico *:* (IP:PORTA).

Configuração do Dispositivo:

No caso de emuladores, devemos alterar as configurações de Proxy no AVD.

Após essa alteração, devemos ir em Network & Internet, Mobile Network, Advanced e Access Point Names, após isso será necessário criar uma nova APN e configurar os campos:

  1. Name: nome para identificação;
  2. APN: nome para identificação;
  3. Proxy: IP que foi obtido na etapa de configuração do Charles Proxy;
  4. PORT: 8888 que é utilizada pelo Charles.

Finalização:

Podemos realizar testes executando as requisições e acompanhando através do Charles Proxy.

Android Dev BR

Artigos em português sobre Android, curados pela comunidade…

Gabriel Prado

Written by

Desenvolvedor Android Senior no Mercado Bitcoin— https://github.com/sp4wna1/

Android Dev BR

Artigos em português sobre Android, curados pela comunidade Android Dev BR. Junte-se a nós: slack.androiddevbr.org.

More From Medium

More on Android from Android Dev BR

More on Android from Android Dev BR

Automação com Makefile no Android

More on Android from Android Dev BR

More on Android from Android Dev BR

Lições aprendidas com um aplicativo pessoal

32

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade