Как стать автором
Обновить

Комментарии 10

Ну а собственно как найти такой скрытый функционал? Исходный код не проверяют, да его никто и не отдаст никогда. Могут быть антивирусом паттерны какие-то можно ещё найти, но это когда есть с чем сравнивать. Тут явно не тот случай. Вся защищённость и свалиться к тому, что удалили как только узнали. Кстати детские игры очень часто с мелкими глюками и ещё и весят как слон, там все в одних картинках.

НЛО прилетело и опубликовало эту надпись здесь
Разработчиков никто не заставляет использовать «новомодные» фишки llvm-байткода. Можно приложение сразу в нативный код компилировать. Если леняться это делать — CCЗБ.

Для watchOS и tvOS bitcode enabled обязателен.

В смысле, крутят биткод как хотят? Какая по вашему информация доступна в биткоде?

Вся информация, необходимая для компиляции приложения под любую поддерживаемую архитектуру:


Bitcode is an intermediate representation of a compiled program. Apps you upload to iTunes Connect that contain bitcode will be compiled and linked on the App Store. Including bitcode will allow Apple to re-optimize your app binary in the future without the need to submit a new version of your app to the store.

Все вызовы апи они проверяют если эти вызовы случились. Приложение должно запросить доступ (к камере, фото, местоположению и пр.) — если юзер его предоставил, то апи становится доступен.


Как можно вызывать приватный апи я не понял. На то он и приватный. Или я не понимаю о чем речь.


И то как работает оплата проверяют тоже только по тому, что видят на экране у себя. Если заложить логику, что надо три раза перевернуть телефон и смотреть на север в четный день недели, то откроется какой-то ещё экран — они не смогут его найти никак, кроме как перебрав все эти варианты.


Про байт-код у вас какое-то странное представление. Эдак любое приложение можно отреверсить.

Особенности objc позволяют обращаться к приватным апи (можно вызвать любой, даже приватный метод, зная его сигнатуру). По поводу проверки — я ловил реджект за голый импорт HealthKit библиотеки (собирались прикрутить новый функционал в следующей версии приложения). Ревьюер потребовал описание того, как и зачем мы используем HealthKit, хотя обращений к самой библиотеке в приложении ещё не было. У меня вообще есть подозрение, что ревьюеры гоняют билды на устройствах с расширенной прошивкой, позволяющей в рантайме видеть обращения как к приватным апи, так и к стандартным фреймворкам, сниффить сетевые запросы и так далее.

А. Теперь про приватные понял что имели в виду.


Про видимость — насколько я понимаю вам в манифесте в любом случае надо было объявить, что вы хотите данные о здоровье получать, вот ревьюверы и удивились — в манифесте есть, в самом приложении ничего не видно. Или в манифесте тоже нет?

На момент получения реджекта был просто импорт библиотеки. Вызовов не было, соотвественно никакие данные не получались, поэтому не было и ключей в плисте (манифесте). На самом деле, это один из последних примеров просто. Были и другие, которые если честно приводили в замешательство, складывалось ощущение, что ревьюер чуть ли не исходники смотрел. Но я думаю это как раз связано с включённым биткодом(нынче отправляют не скомпилированный бинарник, а промежуточный биткод, а финальная компиляция происходит уже на серверах Apple). А реверснуть биткод имея на руках dsym файлы думаю не должно составлять большой проблемы. Но утверждать не могу — не очень разбираюсь в этой области.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Другие новости

Изменить настройки темы

Истории