Como desenvolvedor Android, eu quero inspecionar o tráfego de rede no meu dispositivo Android. Com seus próprios aplicativos, na verdade, existem muitas ferramentas que ajudam a depurar o tráfego HTTP(s). No entanto, como você pode monitorar outros vários aplicativos, como por exemplo: Youtube, Twitter, etc.?
Este artigo irá ajudá-lo a fazê-lo usando a ferramenta mitmproxy.
Em suma, o mitmproxy é um proxy interativo man-in-the-middle para HTTP e HTTPS com uma interface de console, e mais importante, é gratuito!
Você pode ler este documento para entender como ele funciona.
Prerequisites
- Mitmproxy tool
- Android Emulator with root permission
Important Note: Quando você criar o emulador, você deve escolher “(Google APIs)” no Target (android version), não escolha “(Google Play)” ou você não será capaz de obter acesso adb root.
Idea
Idealmente, instalamos o certificado mitmproxy CA manualmente como um CA adicionado pelo usuário e feito!
Felizmente, desde o Android 7, os aplicativos ignoram os CAs adicionados pelo usuário, a menos que estejam configurados para usá-los. E a maioria dos aplicativos não optam explicitamente pelo uso de certificados de usuário. Então, precisamos colocar nosso certificado mitmproxy CA na loja de certificados do sistema como uma CA confiável.
Agora vamos começar!
>
Criar certificado mitmproxy
- Instalar mitmproxy
brew install mitmproxy
- Gerar certificado
mitmproxy
Renome certificado
- Entrar sua pasta de certificados
cd ~/.mitmproxy/
- >
- Certificados de CA no Android são armazenados pelo nome de seu hash, com um ‘0’ como extensão. Agora gere o hash do seu certificado
openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.cer | head -1
- Por exemplo, a saída é
hash_value.
Podemos agora copiarmitmproxy-ca-cert.cer
parahash_value.0
e o nosso certificado de sistema está pronto a usar
>
>>574747>>
Inserir certificado no sistema certificado armazenar
>
- >
- Enter pasta do emulador dentro do SDK do Android
cd .../Android/SDK/emulator/
- >
- Receba uma lista dos seus AVDs com
emulator -list-avds
./emulator -list-avds
- Inicie o seu emulador androide com
-writable-system
opção em ordem para escrever para/system
./emulator -avd <avd_name_here> -writable-system
- Restart adb como raiz
adb root
- Remontar a partição do sistema como escrevível
adb shell "mount -o rw,remount /"
- Push your certificado para o sistema armazenar certificado e definir permissões de arquivo
adb push ~/.mitmproxy/hash_value.0 /system/etc/security/cacerts
adb shell "chmod 664 /system/etc/security/cacerts/hash_value.0"
- Reboot seu emulador
adb reboot
Agora instalamos o certificado CA no Emulador.
>
Configurar Proxy no Emulador
- Configurações do Emulador Aberto, adicionar proxy manual com hostname: 127.0.0.1 e porta 8080
Lançamento da ferramenta e veja a magia!
Pode iniciar qualquer uma das três ferramentas do terminal:
- mitmproxy -> dá-lhe uma TUI interactiva
- mitmdump -> dá-lhe uma saída de terminal simples e simples
- mitmweb -> dá-lhe uma GUI baseada no browser
Por exemplo, eu abro a aplicação Youtube e monitorizo o tráfego como abaixo.
- Executar
mitmproxy