Жизнь выдающихся программистов. Джей Фриман (saurik)

hg8kuql4qliwd6g92dzylso86ky.jpeg


Прошлая серия про талантливую программистку Джастин Танни не оставила равнодушной хабрасообщество. Поэтому продолжаем заполнять нижние строчки хит-парада выдающихся программистов 21 века. Это особенные личности, которым карьера как будто не важна. В силу высокого IQ, врождённой любознательности и особого характера они не способны выполнять скучные, рядовые задания. Только интересные или важные. И только по своей воле, не по указанию сверху.

Следующий герой — более публичный и известный персонаж, про него даже есть статья в Википедии. Гений реверс-инжиниринга Джей Фриман известен под ником saurik, а славу ему принёс каталог «запрещённых» приложений Cydia (для взломанных айфонов).

▍ Cydia


Популярное в 2008–2009 годах приложение Cydia — графическая оболочка для стандартного установщика пакетов apt. Она устанавливается на любое устройство iOS после джейлбрейка. В комплекте идут ссылки на каталоги «альтернативного» программного обеспечения, в том числе запрещенного к распространению через App Store, и утилит Linux, как стандартных, так и допиленных под Darwin (опенсорсная эппловская ОС, на её базе работают macOS, iOS, watchOS и другие оболочки).

Линуксовые программы работают под Darwin, потому что это то же самое семейство Unix-подобных и BSD-систем.

Cydia позиционировалась как новая, свободная версия старого установщика пакетов Installer.app, который вышел в 2007 году, потому что в первых версиях iPhone вообще не было штатного способа устанавливать сторонние программы, а сервис App Store отсутствовал в принципе.

В общем, сначала появился Installer.app, потом App Store, а потом Cydia.

pv_dkams2irtp46mi7kbhjjbe2s.jpeg

В 2009 году джейлбрейк айфонов и установка Cydia стали настоящей революцией — про это писали многие технические СМИ, и даже издания национального уровня. В 2012 году состоялись слушания по DMCA, на которых Бюро по авторским правам США продлило мораторий на применение закона DMCA для частных лиц. Другими словами, юристы признали право владельца телефона на джейлбрейк своего устройства. Это его собственность, поэтому он имеет полное право взламывать его, если пожелает.

Это было принципиальное решение, потому что корпорация Apple и другие правообладатели настаивала на обратном — что программное обеспечение и, следовательно, сам смартфон в каком-то смысле принадлежит ей после продажи, а пользователь просто временно пользуется этим программным обеспечением. И якобы Apple может диктовать, какой софт разрешено устанавливать на телефон, а какой нельзя. Притязания Apple были отвергнуты, что стало важным решением для того времени. Джей Фриман тоже присутствовал на тех слушаниях в Лос-Анджелесе и сделал фото с задних рядов:

ap3qjwvq77qlpnutpmhiz_ozxye.jpeg

В 2009 году некоторые инструменты для джейлбрейка iOS сразу шли в комплекте с Cydia. После широкой огласки этот фронтенд и каталог был установлен более чем на 30 млн взломанных устройств. Суточная аудитория в 2009 году превышала 470 тыс. человек.

htaicn4bospsvpny9hcrewz4ho4.jpegВозможно, Саурик сумел заработать на этом проекте какие-то деньги. По крайней мере, он зарегистрировал частную фирму SaurikIT, LLC, запустил для каталога Cydia Store систему приёма платежей по PayPal и брал с платных приложений стандартную комиссию 30%. Через полгода в каталоге зарегистрировались сотни бесплатных и 15 платных приложений, которые удалось продать на общую сумму $220 тыс (например, 3G Unrestrictor). Потом обороты начали расти. В следующие несколько лет Cydia Store известен как крупнейший каталог альтернативных приложений для iOS. Приём платежей работал до декабря 2018 года.

Конечно, Cydia — не первая программа Джея Фримана. Он долго к этому шёл. Ещё в школьно-студенческие годы парень начал с декомпилятора C# и других полухакерских инструментов.

▍ Другие проекты


  • Anakrino — декомпилятор C# для Microsoft .NET. Первая публикация в веб-архиве датируется 28 апреля 2001 года, когда чикагский парнишка в возрасте 19 лет приехал грызть гранит науки на факультет компьютерных наук Калифорнийского университета в Санта-Барбаре. Вот фотография того времени, вероятно, из университетского общежития на 1 курсе (источник):

    _fx3uxrs1mjd3iawiliyi8yft4e.jpeg

    Джей говорит, что с тех пор резко изменил внешний вид и стиль одежды — возможно, университетский стиль жизни, а потом многочисленные выступления перед публикой оказали какое-то влияние.

    Так или иначе, Anakrino стала первой программой, которую он выложил в открытый доступ. Как видим, он изначально выбрал сферу реверс-инжиниринга. Она впоследствии и привела его к известности через джейлбрейки iOS и Android. Однако эту конкретную программу он позже удалил с ftp, включая исходники.

  • Chora/SVN — веб-клиент для системы контроля версий Subversion, разработан в 2002 году в качестве альтернативы ViewSVN.
  • Cycorder — высокоскоростной (MJPEG) рекордер видео для iPhone (см. ниже список приложений и функций для Cydia).
  • Cycript — мост с JavaScript на Objective-C, позволяющий разработчикам исследовать и изменять запущенные приложения на iOS или Mac OS X, используя гибрид синтаксиса Objective-C++ и JavaScript с помощью интерактивной консоли с подсветкой синтаксиса и автозавершением табуляции.

    Инъекция в процессы:

    bash# cycript -p SpringBoard
    cy#

    Кроме Darwin, приложение автономно работает на Android и Linux, предоставляя доступ к Java, но без инъекции в процессы.

    Как можно понять из примеров кода, хакерский инструмент Cycript нужен для изменения поведения приложений, установленных на ваше устройство, то есть для взлома.

    Например, некое приложение пытается залезть в /etc/passwd, чтобы проверить пароль. А мы вместо этого отправляем его за паролем в директорию /var/passwd-fake:

    cy# fopen = dlsym(RTLD_DEFAULT, "fopen")
    (typedef void*)(0x7fff900c34ec)

    Презентация:
  • Cyrket — клиент Android Market для десктопных веб-браузеров. Идейный аналог Cydia, только для Android.
  • FQL/JDBC — драйвер JDBC для Facebook Query Language (FQL). Позволял производить FQL-запросы в стандартном SQL-стиле. Данные возвращаются по умолчанию в формате JSON. К сожалению, Facebook API старше 2.0 больше пе поддерживают FQL.
  • ircWAB — простой IRC-клиент на HTTP, работал в браузере, без использования Java и Flash
  • iPhone Java — порт Java для iPhone (с коннекторами Objective-C). Смысл в том, что после джейлбрейка на устройстве iOS можно запустить компактную Java Virtual Machine и рабочее окружение. В частности, автору удалось запустить на своём телефоне JamVM с определёнными изменениями.
  • Menes/C++ — высокоуровневая библиотека C++, которая используется в инсталляторе Cydia и других инструментах.
  • Nmap+V — оригинальный сканер портов Nmap со вспомогательными XML-скриптами для распознавания протоколов и ускорения сканирования. Когда автор nmap не успел ещё реализовать эту функциональность у себя, он рекомендовал нуждающимся использовать патч от Саурика.
  • Orchid — децентрализованная платформа и рынок VPN (на блокчейне ERC-20, токен OXT). Джея пригласили техническим директором — и он всё сделал.
  • s3fs — высокопроизводительная файловая система для S3 (на уровне ядра Linux)
  • Cydia Substrate — мощная платформа для изменения кода работающих приложений на лету (под iOS и Android), для работы требует рутования или джейлбрейка. С помощью этой платформы создавались моды (изменённые варианты) оригинальных приложений Apple для платформы Cydia. Сам Джей разработал и выпустил с помощью этого модификатора многочисленные версии программных расширений и функций iOS для операционной системы после джейлбрейка, в том числе:
    • Apple File Conduit 2 (AFC2) — полный доступ к файловой системе iOS;
    • Cycorder — бесплатный видеорекордер, упоминался выше;
    • CyDialer — доступ к экрану блокировки, например, для быстрых звонков;
    • Cydget — виджеты для экрана блокировки;
    • Cyntact — добавление картинок (фотографий) в адресную книгу iOS;
    • Cyueue — добавление во встроенный плеер кнопки «Играть следующую песню» до окончания текущей;
    • Five Icon Dock — док на пять иконок;
    • Veency — удалённое подключение к айфону по VNC (видео);
    • WinterBoard — фоновое приложение, которое скачивает и применяет любые темы оформления, включая анимированный фон, значок аккумулятора, разные слайдеры и проч.;
    • Cydia Eraser (Cydia Impactor), чтобы скрывать на телефоне следы джейлбрейка, удалять личные данные, стирать Cydia и возвращать оригинальный номер версии iOS;
    • … и др.

    wa5s3n4_vythudzgayuus8_5vbs.pngВ 2013 году Саурик взломал Google Glass и выпустил Cydia Substrate для Android (справа — фото того времени).
  • Telesphoreo — дистрибутив Linux-программ для установки на iPhone или другой совместимый смартфон (его можно было установить вместе с фронтендом Cydia).
  • Quotes — приложение Facebook для трансляции постов друзей.


▍ Telesphoreo


Стоит пару слов сказать о закрытом проекте Telesphoreo, который ставил целью превратить iPhone в полноценную рабочую станцию Linux.

В 2008 году после массового джейлбрейка айфонов это был не единственный проект подобной направленности. Можно вспомнить ещё CoreOS — iPhoneUnix, который предлагал нормальные рабочие копии под iOS следующих инструментов: chmod, chown, wget, ping и др.

Через интерфейс Cydia можно было установить многие другие стандартные утилиты, bash, coreutils, OpenSSH и др. Telesphoreo планировался как открытый дистрибутив, включающий и другие утилиты, в том числе netstat, passwd, screen, su, uptime, vim, чтобы все они нормально работали и не глючили на iPhone.

Со временем авторы этих проектов свернули свою деятельность и удалили сайты.


Джей Фриман называет себя «серой шляпой», то есть он действует на грани закона, не переступая черту. Входил в группу iPhone Dev Team, которая занималась разработкой джейлбрейков iOS. Вероятно, он причастен к разработке эксплоитов. Но использование готовых эксплоитов для установки на свой телефон любого программного обеспечения, а также видоизменение установленного на своём телефоне софта не нарушает американского законодательства. Также и написание программного обеспечения не может являться нарушением закона согласно Конституции США. Здесь тонкая грань, которую Саурик благоразумно старается не переходить, по крайней мере, публично. Хотя пришлось удалить из открытого доступа половину разработанных инструментов, но сам он на свободе.

Telegram-канал и уютный чат для клиентов

sz7jpfj8i1pa6ocj-eia09dev4q.png

© Habrahabr.ru