Prisma программа что это

Приложение Prisma, вошедшее в подборку «Лучшее 2016», создано командой российских разработчиков специально для ценителей прекрасного, то есть для нас с вами. С помощью уникальных арт-фильтров на основе нейронных сетей оно способно превратить в произведение искусства любой, даже самый неприметный снимок. Мы пробовали на собственных селфи — получилось.

MrLevon , 30.01.2018

Класс

Фильтры для фото очень красивые
Нигде нет таких

Stalinozion , 30.01.2018

Отлично!

Отличная программа

Конфиденциальность приложения

Разработчик Prisma labs, inc. указал, что в соответствии с политикой конфиденциальности приложения данные могут обрабатываться так, как описано ниже. Подробные сведения доступны в политике конфиденциальности разработчика.

Данные, используе­мые для отслежи­вания информации

  • Покупки
  • Идентифика­торы

Связанные с пользова­телем данные

Может вестись сбор следующих данных, которые связаны с личностью пользователя:

prism (программа разведки)

  • Пользова­тель­ский контент

Не связанные с пользова­телем данные

Может вестись сбор следующих данных, которые не связаны с личностью пользователя:

  • Покупки
  • Идентифика­торы
  • Данные об использова­нии
  • Диагностика

Конфиденциальные данные могут использоваться по-разному в зависимости от вашего возраста, задействованных функций или других факторов. Подробнее

Информация

Провайдер Prisma labs, inc.
Размер 221,9 МБ

Совместимость iPhone Требуется iOS 15.0 или новее. iPad Требуется iPadOS 15.0 или новее. iPod touch Требуется iOS 15.0 или новее.

русский, английский, упрощенный китайский, французский

Возраст 12+ Малое/умеренное количество тем, предназначенных только для взрослых Малое/умеренное количество сквернословия или грубого юмора Малое/умеренное количество контента сексуального или эротического характера Малое/умеренное количество использования или упоминания алкогольной и табачной продукции или наркотических средств

Цена Бесплатно
Встроенные покупки

  • Сайт разработчика
  • Поддержка приложения
  • Политика конфиденциальности
  • Сайт разработчика
  • Поддержка приложения
  • Политика конфиденциальности

Источник: apps.apple.com

Я заглянул в приложение Prisma, и вы не поверите, что я там нашёл

2016 год ещё не кончился, но продолжает радовать нас крутыми продуктами по обработке изображений. Сначала все болели FaceSwap, потом появился MSQRD, теперь у нас есть Prisma. Ещё больше радости/гордости, конечно, от того, что последние 2 продукта — наши, родные. MSQRD делают ребята из Беларуси, Prisma же вообще родом из Москвы.

КАК ПОЛЬЗОВАТЬСЯ ПРИЛОЖЕНИЕМ PRISMA / ТУТОРИАЛ

Логично, что у любого популярного продукта сразу начинают плодитьяся конкуренты. Призме в этом плане повезло больше всех — благодаря стечению некоторых обстоятельств, основным конкурентом призме стали Mail.ru Group, которые почти сразу выпустил аж 2 похожих продукта со схожими функциями: Vinci (от команды vk.com) и Artisto (от команды my.com).

А лично мне стало интересно посмотреть на эти «клоны» изнутри. Зачем мне всё это и к каким выводам я пришёл — об это я рассказал на roem.ru, повторяться не вижу смысла. На Хабре же я бы хотел поделиться техникой детального анализа приложений для iOS на примере Prisma.

Что нам предстоит? Во-первых, мы узнаем, что есть приложение для iOS и из чего оно состоит, какую информацию можно оттуда извлечь. Во-вторых, я расскажу как снифать траффик client-server приложений, даже если их авторы этого очень сильно не хотят. По факту я не расскажу вам ничего нового, я не придумал никакого ноу-хау, это просто вектор известных техник и умений на приложения.

Но будет интересно. Погнали.

iOS-приложение, IPA-файл

iOS-приложение представляет собой .ipa-файл. По факту это zip-архив и может открываться любым архиватором (да да, mobilz обещал научить ломать приложения, а на самом деле покажет, как пользоваться архиватором). Сам .ipa-файл проще всего получить с помощью iTunes — в разделе «Программы» есть вкладка AppStore, которая является аналогом AppStore в iPhone. Соответственно, вам потребуется аккаунт (AppleID); загрузив приложение с помощью iTunes мы можем перейти в директорию к нему.


Далее .ipa-файл, как я уже говорил, открывается любым архиватором. Внутри мы найдём помимо прочего директорию Payload и файл iTunesMetadata.plist. В Payload находится наше приложение, а точнее директория с расширением .app, которую MacOS будет пытаться запустить, но нам достаточно просто открыть содержимое. iTunesMetadata содержит метаинформацию из AppStore. Какой аккаунт скачал приложение, в каком разделе приложение находится и т.д. и т. п. Ничего интересного в нём для нашего анализа нет, идём непосредственно к .app. Разберём сразу на конкретном приложении, Prisma 2.3 — Payload/Prisma.app.

Читайте также:
Ппми программа что это

В разных проектах мы можем увидеть разную структуру, но всегда точно будет Info.plist (Payload/Prisma.app/Info.plist). Это основные настройки приложения, такие как минимальная версия для запуска, поддерживаемые ориентации, поддержка iPad и прочее. Тут уже интереснее:

UIRequiredDeviceCapabilities armv7 DTCompiler com.apple.compilers.llvm.clang.1_0 CFBundleInfoDictionaryVersion 6.0 DTPlatformVersion 9.3 DTSDKName iphoneos9.3 CFBundleName prisma UIViewControllerBasedStatusBarAppearance CFBundleIcons CFBundlePrimaryIcon CFBundleIconFiles AppIcon29x29 AppIcon40x40 AppIcon60x60 UIStatusBarStyle UIStatusBarStyleLightContent LSRequiresIPhoneOS CFBundleDisplayName Prisma LSApplicationQueriesSchemes instagram fb fbauth2 fbshareextension fbapi fb-profile-expression-platform vk vk-share vkauthorize DTSDKBuild 13E230 CFBundleShortVersionString 2.3 CFBundleSupportedPlatforms iPhoneOS UISupportedInterfaceOrientations UIInterfaceOrientationPortrait Pushwoosh_APPID 46F12-BE2E4 BuildMachineOSBuild 15G31 DTPlatformBuild 13E230 CFBundlePackageType APPL MinimumOSVersion 8.0 CFBundleDevelopmentRegion en DTXcodeBuild 7D1014 CFBundleVersion 40 UIStatusBarHidden FacebookAppID 582433738573752 UILaunchStoryboardName LaunchScreen UIDeviceFamily 1 Fabric Kits KitName Crashlytics KitInfo APIKey 8e17945e7d29d1c775f321348caef29075f5ab9a FacebookDisplayName Prisma.AI CFBundleIdentifier com.prisma-ai.app DTXcode 0731 NSAppTransportSecurity NSExceptionDomains vk.com NSExceptionRequiresForwardSecrecy NSExceptionAllowsInsecureHTTPLoads NSIncludesSubdomains cdninstagram.com NSExceptionAllowsInsecureHTTPLoads NSIncludesSubdomains CFBundleExecutable prisma CFBundleSignature . DTPlatformName iphoneos CFBundleURLTypes CFBundleURLSchemes fb582433738573752 CFBundleURLSchemes vk5530956 CFBundleURLSchemes prisma

Про ключи вы можете почитать подробнее в официальной документации, нас же интересуют лишь некоторые из них.

Во-первых, мы можем добыть API-ключи для сторонних продуктов (вроде crashlytics), идентификаторы групп/страниц в vk/facebook. Во-вторых, мы можем точно знать детальные настройки урлов, куда ходит приложение:

LSApplicationQueriesSchemes

LSApplicationQueriesSchemes instagram fb fbauth2 fbshareextension fbapi fb-profile-expression-platform vk vk-share vkauthorize

Видим, что приложение захочет работать с инстаграмом, фейсбуком и вконтактом. Эта информация никаким образом, конечно, не поможет «сломать» приложение, но даст нам дополнительную информацию.

NSAppTransportSecurity

NSAppTransportSecurity NSExceptionDomains vk.com NSExceptionRequiresForwardSecrecy NSExceptionAllowsInsecureHTTPLoads NSIncludesSubdomains cdninstagram.com NSExceptionAllowsInsecureHTTPLoads NSIncludesSubdomains

Если не ошибаюсь, флаг появился с 9-ой версии iOS. Рассказывает нам, куда приложение будет ломиться по http-протоколу (https доступен любой домен). Т.е. при всём желании приложение не сможет обратиться на http, если не настроен NSAppTransportSecurity.

Ключ в целом тоже нам особо ничего не даёт, кроме как информации. Но курочка по зёрнышку. Видим, что приложение хочет ломиться по http на vk.com и cdninstagram.com. Ок.

CFBundleURLTypes

CFBundleURLTypes CFBundleURLSchemes fb582433738573752 CFBundleURLSchemes vk5530956 CFBundleURLSchemes prisma

Пожалуй, самый интересный из бесполезных ключей. Опять же, он нам ничего особо полезного не даёт, но рассказывает о зарегистрированных урлах на этом конкретном приложении.

Например, если в мобильном сафари вы наберёте fb582433738573752:// вас перекинет в приложение (если оно установлено, конечно). Данную информацию, повторюсь, тоже можно отнести к условно-бесполезной. Но пару раз я натыкался на приложения, где помимо стандартных урлов соцсетей я находил урлы типа «app-admin» или «app-dev». При переходе на которые можно было получить скрытые настройки приложения. В одном приложении я получил редакторский доступ к одному изданию, в котором можно было публиковать статьи, пихать их на главную, удалять, менять местами итп.

Далее нас интересует директория Frameworks: Payload/Prisma.app/Frameworks

В ней мы найдём ещё немного бесполезной информации об используемых внешних фреймворках и SDK.

Подробнее я напишу чуть ниже про каждый фреймворк, но заранее могу сказать, что, например, отсюда можно тоже выцепить интересную информацию. Среди прочих фреймворков видим FLAnimatedImage, который работает с анимированными GIF — невольно напрашивается вывод, что Prisma всё же будет и с видео.

Также в метафайлах часто можно найти какой-то мусор, забытый разработчиками. Часто я нахожу README.md, .gitignore, лицензии и прочее. Опять же, Prisma хороший пример, т.к. с версии 2.3 в ней появилась просто забытая разработчиками фотка одного из друзей. Те, кто докопаются, прошу не выкладывать имя человека в комментах, он очень просил.

Также находим USERTrustRSAAddTrustCA.cer — уже интересней. Насколько я понял это запароленный сертификат, аналоговый брутфорс профита не дал.

Непосредственно в бинарнике часто находятся скрытые plist, которые могут быть интересными. Также, если приложение собрано на webview-технологиях (типа Cordova), мы найдём config.xml кордовы и, собственно, исходник приложения. Например, приложение Sworkit, которое помимо прочего предлагает пользователям оплатить дополнительные видеоуроки, уже имеет их в исходниках в удобном .mp4-формате. Хочешь удобно — плати. Хочешь неудобно, но бесплатно — читай на Хабре эту статью.

Пожалуй, это основное, что можно добыть из пакета с приложением. Точнее основное, что удалось добыть мне. Уверен, вы ребята умные и найдёте ещё больше полезного — пишите в комментарии и мы добавим это в статью. Но, опять же, всё индивидуально. В некоторых приложениях можно найти очень многое, в том числе и целиком исходники.

Ну и чуть подробнее о самом приложении. Призма (2.3) 17.6Мб. Нативный swift, поддержка русского и английского языка. Фреймворки:

Alamofire.framework — http-клиент
AlamofireImage.framework
AlamofireNetworkActivityIndicator.framework
Bolts.framework — вспомогательный набор инструментов для разработчика
FBSDKCoreKit.framework — facebook
FBSDKShareKit.framework — facebook
FLAnimatedImage.framework — библиотека для работы с видео
KeychainAccess.framework — враппер авторизации. Чаще всего используется для работы с touchid
Obfuscator.framework — обфускатор, тут, думаю, объяснять не нужно
PINCache.framework — key/value хранилище для больших объектов с поддержкой работы в разных потоках.
PINRemoteImage.framework — модуль picache
pop.framework — библиотека для работы с анимацией. Чаще всего используется для UI-анимации.
RHBOrientationObjC.framework — работа с акселерометром, точнее, с ориентацией устройства.
SDWebImage.framework — ещё один http_клиент/кешер для изображений
SwiftyJSON.framework — удобная работа с json
Swinject.framework — DI паттерн разработки
VK_ios_sdk.framework — vk.com

Что в итоге мы имеем? Мы собрали кучу информации о работе приложения и понимаем, чего от него ожидать. Мы нашли некий сертификат и сохранили его себе. Мы узнали, что нас скоро ждёт видео и нашли классную фотку друга основателя Prisma. Двигаемся дальше.

Читайте также:
Еср программа что это

Сниффаем HTTP

Prisma и тут оказалась хорошим примером для статьи. Если те же Artisto и Vinci ходят по голому http и нет труда их сниффать, Prisma ходит по https с проверкой подлинности сертификата. И тут начинаются танцы с бубнами. Но давайте по порядку.

1. Для начала нам нужен http(s)-прокси. Я пользуюсь Charles, он достаточно простой и функциональный.
2. Нам нужно iOS-устройство. Эмуляторы не подойдут.
3. Нам нужна одна сеть между устройствами. Самое простое — Wi-Fi.

На своём терминале запускаем прокси, заодно включаем и https-прокси. На устройстве, соответственно, в настройках Wi-Fi-сети прописываем руками прокси (IP нашего терминала и порт):

Дальше чаще всего достаточно подсунуть в iOS свой сертификат. Как это сделать хорошо написано на том же сайте Charles. Но в случае с Prisma этого сделать не получилось — разработчики не лыком шиты и проверяют подлинность сертификата. Но делается это средствами устройства, а мы тоже хитрюги те ещё. Однако для того, чтобы заставить iOS не проверять сертификат на подлинность, нам потребуется jailbreak.

Действуйте можно было сделать до версии iOS 9.3.3, и то на свой страх и риск — как вариант, используйте тематические ресурсы и внимательно читайте комментарии. В частности, некоторый софт «типа для джаилбрейка» может попросить AppleID вместе с паролем, что чревато исчезновением данных и денег денег с привязанной карты. Все эти тонкости подробно описаны.

Я не буду описывать как делал это я, т.к. разлочка сильно отличается в зависимости от версий устройства и iOS. Единственное, зачем нам это надо в данном случае — https://github.com/nabla-c0d3/ssl-kill-switch2/releases — крайняя версия ssl kill switch. С помощью Cydia (опять же, всю информацию можно найти в сети) ставим любой просмоторщик файлов, например iFile. И с помощью него заливаем .deb-файл последнего релиза ssl kill switch.

Работать ssl kill switch после перезагрузки телефона. Важно не забыть его выключить после всех манипуляций, т.к. в противном случае мы рискуем, ведь наше устройство больше не проверяет подлинность ssl.

Прокси включён, проверка сертификата выключена, погнали смотреть на приложение. Первый запуск — как видим, приложение сначала собирает настройки. Откуда же оно их берёт? Дёргается https://cdn.neuralprisma.com/config.json обычным GET`ом, там стандартные настройки, не интересно. Потом дёргается api3.neuralprisma.com/styles POST-ом с телом

На выходе список фильтров. Уже интересней, поигрался с массивом [«public»]. Пытаясь подставить туда что-то вроде «dev», «new» и прочего, профита я не получил, но может у кого из вас получится. Я рекомендую использовать для этого Postman.

Ладно, идём дальше. Следующий запрос при загрузке фото опять POST на урл api3.neuralprisma.com/upload/image

И всё было в моей жизни хорошо, пока я не увидел заголовок prisma-image-sign с base64 от бинарного md5. Жизнь боль. Все мои мечты о том, что я сейчас перехвачу траффик призмы и научусь делать то же самое, что и приложение, но просто по http… рухнули. Что это значит?

Таким образом разработчики защищаются от таких как я. Посылая фотку по http, приложение также вычисляет какой-то хеш с какой-нибудь солью и добавляет этот хэш в заголовок. Как сгенерить хэш знает только приложение и сервер. Фотка отправляется на сервак, сервак генерит хеш от фотки по тому же алгоритму, сверяет хэши, если они отличаются — значит запрос подделан.

Есть способ обойти это, если вы сильны в ассемблере. Дизассм бинарника + анализ его на тему генерации этого заголовка может дать нам алгоритм. Но учитывая, что там md5 (минимум) + base64, на это может уйти много времени. Ну и не забываем, что всё усложняется ещё и наличием фреймворка Obfuscator.framework. В общем, как я уже писал, жизнь боль.

Читайте также:
Ксенон что это за программа

Вся дальнейшая работа приложения достаточно простая. Картинка отправляется на сервак, в ответ получаем некое имя изображения. При выборе стиля шлются запросы с этим именем приложения + именем стиля, на выходе профит. А ведь победа была так близка.

Ну да ладно, давайте не будем отчаиваться и разберём возможность перехвата API на примере другого подобного приложения Vinci. Как уже говорил, там всё ходит по голому http, поэтому нам даже не придётся коверкать наше устройство. Просто прописываем прокси сервер и смотрим что куда ходит при работе с приложением. Все запросы можно эмулировать в Postman, о котором я уже писал, или реализовать на каком-нибудь серверном языке.

Всё достаточно просто. При запуске первым запросом Vinci собирает доступные стили, далее регистрирует девайс, нам это пофиг. Затем я загрузил фото, отправляется POST-запрос на /preload с фото, с любым фото, в ответ мы получаем некий хэш нашего фото:

Ну и далее, как видно, получаем уже готовое изображение, обращаясь по урлу http://vinci.camera/process/2_gNmHxDdthLsmPtuXGxRzQnKjbbspfO/21, где 2_gNmHxDdthLsmPtuXGxRzQnKjbbspfO хеш фото, а 21 — номер фильтра, которые можно добыть из http://vinci.camera/list

Вот и всё. Итого, чему мы научились сегодня? Мы научились собирать информацию о приложении по метафайлам самого приложения и научились сниффать трафик приложения, даже если всё API ходит по https с проверкой подлинности сертификата. Мы научились собирать информацию из API: что, куда, зачем, а также я показал некоторые «тупики».

За сим не буду отвлекать вас от увлекательных анализов приложений, если кто что интересное найдёт, скидывайте в комменты, вместе посмеёмся.

Кстати, интересный факт. Те же SQLinj. В вебе их сейчас уже сложно встретить, любой разработчик понимает всю опасность инъекций. Но вот мобильные разработчики, которые часто приходят в мобильную разработку не из веба (а даже когда из веба — доверяют своим API, типа «да кто его знает наше API-то, только наше приложение!») частенько забывают про веселье, что может их ждать при полном доступе к базе удалённым пользователем.

  • Информационная безопасность
  • Разработка мобильных приложений
  • Отладка

Источник: habr.com

Prisma — чудо-приложение, которое превратит твои фото в шедевры живописи

Скоро фотографии из этого приложения заполонят ленты соцсетей. Оно за считанные секунды превращает твое фото в картины! Бесплатно! Пока только на iOS. На Android появится в июле.

17 июня 2016 6

Обновление 1! Prisma выпустила новую версию — она стала еще эффектнее.

Обновление 2! Mlvch вышел для Android . Так что, если тебе нужна Prisma на андроид-устройстве, можешь пока попробовать Mlvch.

Приложение Prisma («Призма») пока выгодно выделяется скоростью и бесплатностью. Поэтому сконцентрируемся на нем.

В Prisma все просто до эффекта волшебства. Выбираешь существующее фото или делаешь новое — выбираешь стиль — секунд через пять получаешь готовое артфото — публикуешь его в «Инстаграме» (запрещенная в России экстремистская организация) либо другой соцсети, или сохраняешь на телефон, или пробуешь другой стиль.

Сейчас в приложении можно создавать фотокартины на основе 21 произведения искусства: «Секущая линия» Кандинского, «Go for Baroque» Роя Лихтенштейна, «Над городом» Марка Шагала, «Крик» Эдварда Мунка и другие. Создатели планируют добавлять новые шедевры по одному каждый день.

Такой шикарный эффект достигается благодаря использованию нейросетей: фото полностью перерисовывается на основе заданной картины.

Пока есть только версия для айфонов. Prisma на Android обещают в начале июля.

Особенно нравятся художественные фото девушкам. Попробуй на своих знакомых и не благодари потом.

Приложение Mlvch (угадай, от какой фамилии образовано название) похвастаться такой скоростью не может. В режиме Pro превращение фото может занять три минуты, в зависимости от очереди. Зато создатели обещают более глубокую проработку фотографии, чем у Prisma, и более художественный результат. Да еще есть ограничение на пять бесплатных фото в день, за остальные надо платить от 25 рублей за снимок. (Также есть безлимитный и более быстрый режим Light, но в нем всего 5 стилей и качество обработки не дотягивает до Pro и Prisma.)

Однако оценить качественное отличие Mlvch с такими временными и финансовыми условиями сложно — трудно догадаться, какой стиль подойдет конкретному фото. Для Анны Хилькевич мы выбрали неудачный стиль.

Источник: www.maximonline.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru