Pro sniffování HTTPS komunikace se hodí program Charles Proxy.
Jeho kořenový certifikát je potřeba dostat do emulátoru mezi uznávané certifikáty, což se provede pomocí změny system.img romky. Postup funguje u verze 2.2, u verze 4.0 jsem nedošel do cíle, ale jít by to mělo taky.
Stručný postup:
Pozn: xda22 je jméno emulátoru.
Podrobně:
emulator -avd xda22 -partition-size 128
adb pull /system/etc/security/cacerts.bks cacerts.bks
keytool -keystore cacerts.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass changeit -importcert -trustcacerts -alias somealias -file charles-proxy-ssl-proxying-certificate.crt -noprompt
. Pokud to dobře proběhlo, tak to potvrdí hláška
Certificate was added to keystore
.
adb remount
adb shell chmod 777 /system/etc/security/cacerts.bks
adb push cacerts.bks /system/etc/security/
adb push Downloads/mkfs.yaffs2.arm /data/data/temp/mkfs.yaffs2
adb shell chmod 777 /data/data/temp/mkfs.yaffs2
adb shell
/data/data/temp/mkfs.yaffs2 /system /sdcard/system.img
quit
adb pull /sdcard/system.img system.img
emulator -avd xda22 -http-proxy http://yourinterfaceip:8888
HOST - Machine running Charles and hosting the proxy CLIENT – User’s machine generating the traffic you will capture
Host Machine
Client Machine:
zdroj: