Sirified: A Windows-based Siri Proxy Cloud Service
Important: Sirified Project has been canceled and will be outsourced soon.
Sirified is a Siri Proxy Server based on Windows Server 2008 R2 and .NET 4.0 technologies. It is hosted in SoftLayer's Cloud Platform. It provides a unique set of features with it's exclusive hardware and software package.
We have two Programs for Subscription:
A. Siri Program:
Support: All iDevices with Spire installed.
Features:
1. Fast and reliable 1 Gbps Internet Connection.
2. Secure connection between your iDevice and the cloud using SSL/TLS.
3. Cloud-based nearly unlimited hardware resources expansion.
4. Two step installation procedure without any advanced tricks.
5. Dedicated iPhone 4S keys so no more failures due to expired keys.
6. Custom Sub-Domain for Spire Link. For Example: MyNickname.Sirified.com.
7. Connection Recorder for Developers (Coming Soon).
8. More is yet to come!
The Offer: $5.00 monthly or $60.00 Yearly.
B. Feeders Program:
Support: iPhone 4S
Features:
1. Earn $10.00 monthly.
2. Free Siri Proxy Slot.
3. Two step installation procedure without any advanced tricks.
General Notes:
1. Money-back grantee.
2. Free 24 hour Siri Slot. Just to make sure we aren't scam
Apple’s Siri – The Missing Documentation
Let's face it: Apple's Siri is an amazing evolution to Voice Recognition technologies but it was implemented in a very restrictive manner. Siri is exclusive to iPhone 4S and everyone who is Geek enough it trying to set it free, accordingly this is my take for pushing this efforts forward: The Missing Siri Protocol Documentation.
Before we start, you must know some facts about Apple's way in breaking some standards:
- HTTP Protocol: Apple breaks it by using ~20 GB Content-Length header and removing the Content-Encoding header. Also Apple uses Connection: Close header as a HTTP response to state that the Server is okay to open a Siri connection.
- Deflate Algorithm: Apple uses zlib implementation for deflate algorithm and breaks it by using Sync Flush option which removes the checksum and decompressed data size from Header and Trailer of the compressed data. Also Apple removes the entire zlib Header from all of the compressed packets except the first one.
- HTTP Streaming: Apple breaks it by using a single Always-on HTTP connection between it's Server and Siri Client, other than that, all the data is a compressed binary stream without any HTTP warping. In fact, the data is sent "pure" without any kind of warping what-so-ever.
- Property List: Apple uses Plists as it's main data container, even the audio files are split into many Plists and stored inside it with a key called Speech Packet and a value of a Byte Array. This Byte Array is one part of the audio file that's being transmitted.
The above points ensures one thing: Any software that works on HTTP layer will break when dealing with a Siri connection. The only way to deal with Siri is using any software that works on the TCP layer. Also if you're considering WireShark or any other Packet Sniffing Software I'll inform you upfront: It's useless! because Apple uses SSL. The entire Siri connection is encrypted end-to-end so all your going to see is Packets of Digital Noise!
Now, Let's start:
Part 1: The Connection from Siri Client to Apple Server:
1.0 iDevice initiate a HTTPs Request to guzzoni.apple.com with four specific Headers encoded in ASCII.
ACE /ace HTTP/1.0 Host: guzzoni.apple.com User-Agent: Assistant(iPhone/iPhone4,1; iPhone OS/5.0.1/9A405) Ace/1.0 Content-Length: 2000000000 X-Ace-Host: 2b861830-4146-11e1-b86c-0800200c9a66 \r\n (Empty Line)
1.1 The HTTP Method is Adaptive Communication Environment (ACE). This means it's a programmable HTTP connection and not our typical GET or POST Methods. Anyway, it has no effect at all other than breaking HTTP compliant software. Also Apple uses it to ignore any non-ACE HTTP Requests.
1.2 The custom User-Agent identify Siri as Assistant and stating the requesting device hardware and Operating System with it's version. Also Apple uses it to ignore any non-Siri approved hardware like iPods, iPads or iPhones before 4S.
1.3 The insane Content length have no effect on Siri inner-works, it is just here to break your HTTP-Layer software. This specific header forces anyone trying to play with Siri to go down to TCP layer and get his hands dirty with SSL/TLS.
1.4 The X-Ace-Host is the most interesting header, It is a Unique Identifier generated by Apple Server for each Siri-Approved device. It changes daily by a request from Apple Server to Siri Client device after a connection has been established with the old X-Ace-Host. Apple Server has the option to force the Siri Client device to drop the connection with old X-Ace-Hot and re-connect with the new one, but Apple Server usually accept the connection as being the last one with the old X-Ace-Host.
1.5 The line is an empty line. It is important because it marks the end of the Headers and the start of the Binary encoded data.
2.0 The Binary data starts with a four bytes Magic Code, to understand it we will convert it to Hexadecimal
Raw: 1010101011001100111000000010 Hex: AACCE02
2.1 This code marks the start of the Compressed Binary data.
3.0 The compressed binary data in hexadecimal:
78DA62626060724E2AC8C92C2E3130B8C2C8C4CCC2CAC6CE119A9C93585C1C9A98 6159C7B2F6F7DB8A8F63C3750C28C85D3DAFE954E227257BA85927A5DFC45832F3 7F7DF97960C8CBD6E6164E3503BA9FEF25CDBE35B3D1CCE54291CDC79AC4CA32C8 981834190419C41964199418FC1862199A18AA191A18B611AC33A86AB0C7F20763 231422DE76740014CAC00000000FFFF626260608C232D04A516971465268322172 8A2E268606CEAA46B64626AA26B626162A06BE96C6AA8EB68E1E8626CE96A666C6 26E8E232D5DE4E48A2942326D092865C50B48A1AA4DCD4DCCCC510E4E4D2C4ACE8 61FC48C0A00000000FFFF020631C36458105F860431346821C10C0E6060183AB91 A993A3BBAB9EA9ABA9899EA9A189ABAE85A9A3999E91A9B5B98989BB8381BB9999 AC638E7009DE49C9F57925A5182234039F845A5156C3DCC58EEA1C00000000FFFF
3.1 The Header of the compressed data starts with 78DA which is the Header of a zlib compressed data.
3.2 The Trailer of the compressed data ends with 0000FFFF which is the Trailer of zlib when the option Sync Flush is used while compressing the data.
3.3 Sync Flush option means that we don't have the Chechsum or the size of the uncompressed data.
3.4 The compressed data is actually a Binary Stream of data which will be uncompressed to another Binary Stream of data! There is no files to search for yet.
4.0 The uncompressed binary data in hexadecimal:
020000009862706C6973743030D301020304050655616365496455636C61737355 67726F75705F102441383841343443382D423135352D343946372D383643312D45 37464230374136353639455F100F5365745265737472696374696F6E735F101463 6F6D2E6170706C652E6163652E73797374656D080F151B21485A00000000000001 01000000000000000700000000000000000000000000000071020000009362706C 6973743030D301020304050655616365496455636C6173735567726F75705F1024 33443536313935322D344637432D344539452D393034372D464236353642383844 3836325C436C656172436F6E746578745F1014636F6D2E6170706C652E6163652E 73797374656D080F151B2148550000000000000101000000000000000700000000 00000000000000000000006C
4.1 The first 5 Bytes when converted to hexadecimal will have the parttern of 0200XXXXXX.
4.2 When with convert the hexadecimal number XXXXXX into a 32-bit Integer it will tell us the length of the next binary data which represent a binary Propriety List.
4.3 Since we know the length of the binary data to read in advance, we can easily now de-serialize the Plists. In the above sample data, we have two Plists.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>aceId</key> <string>B2ED6435-9F83-4E42-8E3F-03ABE52807D6</string> <key>class</key> <string>LoadAssistant</string> <key>group</key> <string>com.apple.ace.system</string> <key>properties</key> <dict> <key>assistantId</key> <string>34923801-1956-4911-a7d3-1cb5de46b5ba</string> <key>sessionValidationData</key> <data> AoRtzxP6LG/0lQrZXPOmqAtrBaBTRzxXeDg9sxIn+qByAAAA4AMAAABJAAAA gMrURnb01X7gHigsBfLGoVPXRZcozLMCG4CbLGR369bSPGeRm8BGwzUsPWzn 3J2SlKmAtzc4ZG2F9EX+7pqcolyLCqA/0BCVXB4TguyxWkCIGGgwuxmiCO2l QMqox1MAYG+pJrh/5zMu0Q2HK1inqjimgAP2ubDmBEUy2hMmwL5kAAAAAAAA AE8BvASX9FH7UQCHAYj0TP5bBbxoRDIAAAA2BASNv6TFiWOxLWSIVAGcARRC Txf22u3q76yhiosQ8117o1Y9RPmT263ZENsNbapJ9+gRg5m/ </data> <key>speechId</key> <string>d5da031e-edbc-43a9-aaa0-b33310ecf4d5</string> </dict> </dict> </plist>
4.4 The entire communication between Siri Client and Apple is done in this form. A series of compressed binary Plists.
Note: I'm in the process of documenting the Plists exchanged between Siri Client and Apple Server. Till now I found more then 22 different kinds of Plists which are holding all kinds of data, from Commands to Contacts, GPS, Authorization data, etc.
5.0 After the last Plist, the next 5 Bytes will look like this in hexadecimal:
0300000001 0300000002 0300000003 0300000004 0300000005 0300000006
5.1 The new pattern is 0300XXXXXXX and following the same conversion as before, we will find this pattern always incremented by 1.
5.2 This pattern is in fact the Pings the Client send to Apple Server when it finishes sending some of the data and waiting fora respond.
Note: I'll keep updating this post until i finish documenting the entire protocol. Sorry because it will take my days to finish it since my daily job consumes a lot of my brain cycles
How-To Bypass Egypt Block for Facebook & Twitter
I've Created a FREE VPN Server for ALL Egyptians to bypass Internet Blockage in Egypt and to "Empower The Revolution" of #Jan25
This (Virtual Private Network) VPN Connect creates an Unblockable and Secure Connection to our Server in USA to bypass ALL Internet Blockage in Egypt (Example: Facebook, Twitter and Dostor).
Special Thanks for the team members: @Wael_Aziz and @Sherif_ and @Hend_Hafez
Announcements:
Update 1: Egypt Revolution 2.0 Completed Successfully. "FreeEgypt" Public User now Canceled.We are planing to convert it to a Commercial Premium Service with very low cost. Sadly, we can't give an ETA for this move, but hopefully it will be very soon. The good news is: We will continue providing FREE Accounts that aren't Anonymous upon request for a limited time. You can easily request this Free Account by sending an E-Mail to: vpn [at] texnomic.com
Update 2: Egypt Revolution 2.0 Completed Successfully. The entire VPN Server Project is now canceled.
World Cup 2010 Live Streaming Service [Update 4]
Today I'm launching a new service for all the football fans, A Live Streaming for FIFA World Cup 2010. All you need to do is to check the "World Cup 2010 Live Streaming" page in my blog. I'll keep updating it with the best streaming resources available in the cyberspace. In case anything went wrong, just keep refreshing the page and know for sure I'm running like crazy behind the scenes to update the page with a better source
Update #1: Starting from June 19, 2010, Texnomic Blog launched its own Streaming Server in order to provide the only 24/7 Live Streaming Coverage for the FIFA World Cup 2010 directly from Aljazeera Sports Channel in Arabic and English.
Update #2: Due to the "blocking" issue with many live streaming providers (Example: UStream, Justin.tv & Livestream) Texnomic Blog will broadcast the Matches only.
Update #3: To workaround the "Blocking" issue and the long time it took to recover from it, We've created two channels. The first one is called the "Main Channel" and the second one is called the "Backup Channel". The broadcast will work initially on the Main Channel and if it got blocked, we will shift the broadcast to the Backup Channel in few seconds.
Update #4: Thank you everyone for watching! See you after 4 years
The First Non-Latin (Arabic) Top-Level Domains
A new chapter in the Internet History was written yesterday: May 5, 2010. The Internet Corporation for Assigned Names and Numbers (ICANN) launched the first Non-Latin Top-Level Domains (TLD). This first Non-Latin TLDs are in Arabic Language, and they are: السعودية. (Al-Saudiah), امارات. (Emarat) and مصر. (Misr).
What TLD means is the Dot + "Something" that we use everyday, like: Texnomic.com or Nilesolutions.net. Why this is huge? because this is the first time since the invention of the Internet that the Website addresses can be written in other languages from English. To better understand this, check this Website Address:
This is equivalent to: www.mcit.gov.eg
I'm very glad to say that Egypt have the first full Arabic Domain Address with Arabic TLD
George Azmy: My PC is blind!
George Azmy is one of my favorite Stand-up comedians. While scanning YouTube for his videos, I came across this one. He is talking about an experience with his PC that made him sure he have a blind one, in "I'm a Mac, I'm PC" fashion:
I know for sure this a comedy act, but this argue is valid. Why Windows-based PCs looks like they are blind compared to Apple Macs ? The answer is simple yet so many people don't know it.
Microsoft Windows have 98% of the Worldwide PC Market-Share, to put it in numbers, There are over 1 Billion PCs in the world, accordingly, Windows is working on 980,000,000+ PCs. Windows 7 alone have 100 Million PCs. According to his numbers (Which are not 100% accurate but yet very close) Think about how many hardware components Windows needs to support ? considering that any PC must have at least 8 hardware components: { Motherboard, Sound Card, VGA Card, CPU, RAM, Hard disk, Keyboard + Mouse and Monitor }.
Keep in mind that we are not talking about peripherals yet, like Flash Memory or Printers. Windows Ecosystem is so huge, the Windows 7 Logo Program have over 20,000 certified products, 13,000 of them are devices and components. Think about how many other devices that's not certified but just works!
So what about Apple Macs ? Well, Apple have a super-tiny market-share with a super-tiny Ecosystem, most of this Hardware Ecosystem is already controlled by Apple. Accordingly, Apple do a very simple move, it includes all device drivers inside Mac OS X, so that anything to Mac is a simple Plug & Play act. Yes, that's it!
In my opinion, Microsoft done an amazing and wonderful work since Windows Vista, it introduced Windows Update for Drivers. This dynamic way of Centralizing, Managing, Updating and On-demand delivery for Device Drivers is the true magic. Take that Apple Fan-boys
and for George Azmy, Windows was blind, before Vista
Remote Desktop with Nokia Smart Phones
I consider my smart phones as my main portable computers because I've always hated Laptops due to couple of reasons:
- They are heavy, ranging from 2 to 4 KG that I have to carry most of the time.
- Under powered yet super expensive compared to the price of a Desktop PC.
- Battery, Battery and Battery low! (4 hours of browsing is the paradise itself).
- A Bag and ton of accessories is a must (aka Charger and Converters).
- Track-pad is a usability joke! = A mouse to carry.
- Hard drive is going to die whatever you do or pay more money for a SSD.
- Enough for now
To overcome this Laptop mania we are living now, I've configured all my home infrastructure to be remotely and securely accessed by different methods, the most important one of them is the Remote Desktop Connection that's built-in inside every Windows version (Yes, for free!). I've found a company called Telexy that has created a number of remarkable apps for Symbain^1 Platform (formally S60v5), one of them is SymRDP.
SymRDP provide a Remote Access solution based on Microsoft Remote Desktop Protocol. This App only works on Touch-Based Nokia Smart Phones, namely: 5800, N97 and X6. To keep it short, I've created this video to explain how to setup and use this great App.



