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
- Android emulator (of een fysiek Android device verbonden met adb)
- mitmproxy (voor mitmweb)
- apk-mitm
- adb (van platform-tools)
Stap 1. APK patchen
- Download de app die je wil reverse engineeren van de Play Store (al bij de hand? Ga naar stap 4)
- Vind het pad van de apk:
adb shell pm list packages -f -3
, optioneel met grep erachteraan. Dit geeft bijvoorbeeldpackage:/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
- Download de apk naar de huidige map:
adb pull <apk-path> .
(let op de punt aan het einde) - Gebruik apk-mitm om de apk te patchen:
apk-mitm <local-apk-path>
- Installeer de apk op het apparaat:
adb install <patched-apk-path>
Stap 2. Afvangen van verkeer
- Start de mitm:
mitmweb
- Configureer de proxy op het apparaat (Als dit niet werkt in de instellingen van de emulator, kan je ook de proxy instellen in de instellingen-app. Zie https://stackoverflow.com/a/78154250)
Stap 3. CA certificaat installeren op Android
- Open http://mitm.it/ in de browser van het apparaat (Als dit niet werkt, heb je waarschijnlijk de proxy niet goed ingesteld)
- Download het certificaat
- 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.