So it has been quite a while since I have published the BabyPingViewer app on the app store. The reception was great, yet there is one recurring question that people raise: Since BabyPing has modified their way to create a password for the admin user, now depending on the specific model of the camera, there is no more a standard password that you can use. Which is great, but which leaves you with the issue to detect the password if you want to use another app than the one that comes with the camera. Here’s a short description how you can get to the password.
This description assume you have a Mac computer; for a windows computer the steps will be equivalent. First of all, you need to download and configure some software.
- Go to http://squidman.net/squidman/ and download SquidMan. Squid is a proxy server. A proxy server will allow you to route the traffic between your IPhone (or IPad) through your Mac to the camera. SquidMan is a convenient installer that does mostly everything you need for you.
- Go to https://www.wireshark.org/download/osx/Wireshark%201.12.1%20Intel%2064.dmg and download Wireshark. Wireshark is a network traffic monitor. Using Wireshark, you’ll be able to see the traffic that is now routed through your computer, and from that you’ll be able to read the password that the BabyPing app uses with your camera.
- Download XQuartz-2.7.7.dmg. XQuartz is a so-called X-Windows environment that Wireshark needs when running on a Mac. In previous versions of Mac OS X it was part of the operating system delivery; today you need to install it manually.
Next, you’ll need to identify some things. First of all, we need the IP Address of your Camera. You can find it out from the BabyPing app itself. Then, we need to know the IP address of your Mac. You can find it out opening a Terminal window and typing
ifconfig | grep inet.
For the reminder of this discussion, we assume the IP of your Mac to be 192.168.1.68 and that of your BabyPing camera to be 192.168.1.77.
While we are at it, this is also a good moment to type this into your terminal window:
sudo ln -s /opt/X11 /usr/X11
This helps because recent versions of Mac OS X not only have removed XWindow, but also the previously always existing link to its location in a given directory – /usr/X11. Using the above command, we manually re-establish that link.
With this information, install SquidMan and do the following settings: Open the preferences page of SquidMan through the application menu and look at the “General” tab. There should be a field HTTP Port: set it to 8080:
Next, open the “Clients” tab and press the “New” button, then add a client network such as 192.168.1.0/24 – assuming, as we did, your IP addresses are in the 192.168.1.x network. The result should look like this:
Click the “Save button, then press the “Start Squid” button in the main program window:
Once you have done that, configure your IPhone to utilize your Mac as a proxy. To do so, go to the WLAN settings of your IPhone. We’ll assume, for the matter of this demonstration, that your WLAN has the name “Just2Me2” – in that case, you can go to the preferences of that WLAN by tapping on the (i) next to its name, and scroll all the way down where you find these proxy settings that you adjust as shown here:
You can then just tap the Wi-Fi button in the upper left corner to navigate away from this screen. Please make sure, when all is done at the end, to reset these settings to what they were before (e.g., setting the Proxy settings from “Manual” back to “Off”).
Now is a good time to verify if the IPhone can still see the internet (which will now be routed through your Mac): Open your browser and navigate to some page. If it works, you’ve done it right. Then, exit (completely) the original BabyPing app so that it does not do any traffic for the moment. We assume you have already configured the app, of course, otherwise there would be no settings to learn from. At this point, stop the application on the IPhone – don’t just send it to the background, but stop it.
Next, start Wireshark. It can take a while to launch. Once it did, look at this screenshot:
Assuming your Mac is on Wifi, you want to click on the “Wi-Fi en0” link on the left side, then use the second button in the toolbar to fire up the capture settings window. In that window, enter exactly what is shown in the screenshot:
host 192.168.1.77 and port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420
What this does is that it configures Wireshark to only listen to traffic with your Camera (which, as we had assumed, has the IP 192.168.1.77; if your’s is different, change that IP in the line above) and from that, only to HTTP traffic.
Then, click the “Start” button. The capture window should open as shown here:
Before doing anything on your IPhone, enter the filter as shown above into the Filter field, i.e.:
ip.dst == 192.168.1.77 and tcp and http
This tells the capture window to also only show HTTP traffic with the camera even if it did capture some more.
Then, go to your IPhone and start the standard BabyPing App and have it connect to your camera. You should pretty quickly see some traffic as shown in the above screenshot. Click on any of those lines in the capture window, then open the “Hypertext Transfer Protocol” line by clicking on the triangle to the left, and navigate down to where you should see a line that reads “Authorization…” The next line contains the Credentials. In the above screenshot you see that your username is admin, and your password the entire string from j6h78….9n1m. That’s what you want to copy and enter into the BabyPing Viewer App.
So stop the BabyPing original app, open the BabyPing Viewer app and configure the camera accordingly. When you then connect the camera, you should first of all get an image, but also you should see some more traffic in the still running Wireshark window.
When all is done, stop Wireshark, stop SquidMan, unconfigure the Proxy setting in your IPhone, and you should be good to go.