Facebook chat file sharing
At the end of the Facebook Hackathon contest, UC Berkeley students showed what could happen to the Internet after the adoption of SOPA, if corporations gained full control over the Internet, Americans would be banned from sharing files and closed to most websites, except for a few large ones (for example, MSN and Facebook). Students developed the Emotiface program, which encodes files in base64 ASCII and transfers them in batches via Facebook chat.
Animated GIF Transfer Demo
One of the developers explains which modules Emotiface consists of:
Animated GIF Transfer Demo
One of the developers explains which modules Emotiface consists of:
- a local python web server that converts files to base64 ASCII and forms packages with the UUID and all other necessary service information;
- a user script in a browser (such as a Greasemonkey script) with an open site Facebook.com takes packets from a local web server;
- The script monitors incoming chat messages (packets) and sends outgoing packets to the chat;
- since Facebook is trying to block automated sending of messages to chat, keydown events are emulated on the local web server using a bash script and AppleScript, they cannot block this method because it is similar to real keystrokes;
- since Facebook blocks about 50% of the packets after the first 15, I had to implement the TCP method to notify each package about the delivery.