Bekijk Android app-verkeer zonder root

Screenshot van Firefox browser die de webapplicatie mitmweb laat zien.

Altijd al eens willen weten hoe een app communiceert met zijn server? Met behulp van apk-mitm en mitmproxy kan je het verkeer van een app afvangen en analyseren zonder root. In deze tutorial leg ik uit hoe je dit doet.

Vereisten

Stap 1. APK patchen

  1. Download de app die je wil reverse engineeren van de Play Store (al bij de hand? Ga naar stap 4)
  2. Vind het pad van de apk: adb shell pm list packages -f -3, optioneel met grep erachteraan. Dit geeft bijvoorbeeld package:/data/app/~~9Jg8vCv5DYdaNbVeICtEqA==/nl.voedingscentrum.slimkoken-SzgrrdeyVzQfDNDQvi091g==/base.apk=nl.voedingscentrum.slimkoken. Het pad is dan vanaf /data t/m .apk. Of met RegEx: \/data.*apk
  3. Download de apk naar de huidige map: adb pull <apk-path> . (let op de punt aan het einde)
  4. Gebruik apk-mitm om de apk te patchen: apk-mitm <local-apk-path>
  5. Installeer de apk op het apparaat: adb install <patched-apk-path>

Stap 2. Afvangen van verkeer

  1. Start de mitm: mitmweb
  2. Configureer de proxy op het apparaat: specificeer het IP-adres van je host in je Android-apparaat-proxyinstellingen. (Problemen? Zie probleemoplossing)

Stap 3. CA certificaat installeren op Android

  1. Open http://mitm.it/ in de browser van het apparaat (Als dit niet werkt, heb je waarschijnlijk de proxy niet goed ingesteld)
  2. Download het certificaat
  3. Installeer het certificaat in de instellingen van het systeem

Nu kan je het verkeer van de app zien in het mitm-dashboard! Succes met reverse engineeren.

Probleemoplossing

Probleem: Kan proxy niet bereiken vanaf Android.
Oplossing: zorg dat de proxypoort (standaard 8080) niet geblokkeerd is in je firewall.

Probleem: Proxy werkt niet in de instellingen van de emulator.
Oplossing: je kan ook de proxy instellen in de instellingen-app. Zie https://stackoverflow.com/a/78154250.