I am trying to reverse engineer the whatsapp protocol. I tried to use Charles Proxy (i imported the charles proxy cert).
The problem is I only see one request (the one whatsapp uses to get all contacts which are using whatsapp). All other communication is invisible to me.
I use charles as SOCKS proxy ( http://snipplr.com/view/16563/how-to-connect-to-a-socks-proxy-from-an-unjailbroken-iphoneipod-touch/ ).
How does whatsapp bypass the iPhone proxy settings? I thought all SDK classes should respect these settings.
Whatsapp protocol isn't really implementing ssl. It only use port 443 to pass proxies. All of the data passes including msgs and contacts are in plain text for everyone to see.
You can create an ad-hoc wireless hotspot on your computer (make sure it's connected to the internet using an ethernet cable otherwise u'll be offline) connect to that network from ur iphone, on ur computer start any packet sniffer (I personally use wireshark) and filter tcp port 443. viola, you'll get both requests and response from the whatsapp servers without intercepting the data.
Never done this but I think you can just use iPhone settings (settings->general->network->vpn->add vpn configuration->proxy settings(manual)) to proxy all of the network under port 443 to a server u own there u'll need to run a proprietary program that handles the requests and sends them (handled) to whatsapp servers.
From what I recall some of the data inside the protocol is encoded (substitutions/base64/other basic encodings).
About your question regarding proxy passing I hope my answer about how to sniff will solve your problem.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With