Last week, the guys at Applidium posted an article on their blog with the technical details to the Siri HTTPS server (the blog post has since been taken down). Along with the article, they published some proof of concept code written in Ruby. That code can be found here. Anyway, I thought it’d be fun to port that code to Python and thus pysiri was born.
pysiri requires a Mac in client mode and record mode but works platform independent in server mode.
plutil in client mode which means you need to be running on a Mac.
py-audio (http://code.google.com/p/py-audio/), and the
speexEnc binary (compiled from the sources found
https://github.com/applidium/Cracking-Siri) for record mode.
biplist (https://github.com/wooster/biplist) for server mode.
The compiled code included in this project will work on an x86_64 Mac. You’ll need to compile the code yourself if you’re on something else.
To get Siri authentication keys for your iPhone 4S, you’ll need to install the
ca.crt CA certificate to your iPhone. The easiest way to install it is to email
ca.crt file to yourself. Open the email on your iPhone 4S and install it.
After installing the certificate, run this script as root with the
sudo ./siri.py --server --save-keys
Change the DNS server on the iPhone to the IP of the computer running this script
Settings -> Wi-Fi -> <blue arrow on connected network> -> DNS)
Open Siri and say something. You should see your speech packets scroll by.
Exit the script with
Ctrl+C (you’ll probably have to press it twice) and your
keys will be displayed at the bottom of the console. They’ll also be saved in a
pickle file in the current directory (where they’re used in the client
application of this script).
cat commentsComments powered by Disqus