Pull to refresh

Файлообмен через чат Facebook

Reading time1 min
Views2K
В финале конкурса Facebook Hackathon студенты UC Berkeley показали, что может произойти с интернетом после принятия SOPA, если корпорации получат полный контроль над интернетом, американцам запретят файлоообмен и закроют доступ к большинству веб-сайтов, кроме нескольких крупных (например, MSN и Facebook). Студенты разработали программу Emotiface, которая кодирует файлы в base64 ASCII и передаёт их пакетами через чат Facebook.

Демо передачи анимированного GIF



Один из разработчиков объясняет, из каких модулей состоит Emotiface:
  • локальный веб-сервер на python, который конвертирует файлы в base64 ASCII и формирует пакеты с указанием UUID и всей остальной необходимой служебной информацией;
  • пользовательский скрипт в браузере (вроде скрипта Greasemonkey) с открытым сайтом Facebook.com забирает пакеты с локального веб-сервера;
  • Скрипт отслеживает входящие сообщения в чате (пакеты) и отправляет в чат исходящие пакеты;
  • поскольку Facebook пытается блокировать автоматизированную отправку сообщений в чат, на локальном веб-сервере эмулируются нажатия клавиш (keydown event) с помощью bash-скрипта и AppleScript, такой способ они не смогут заблокировать, потому что он аналогичен реальному нажатию клавиш;
  • поскольку Facebook блокирует около 50% пакетов после первых 15-ти, пришлось реализовать метод TCP для уведомления о доставке каждого пакета.
Emotiface на github. Неужели что-то подобное действительно придётся использовать в будущем?
Tags:
Hubs:
+24
Comments35

Articles

Change theme settings