понятно. задача реверс-инжиниринга приложения из AppStore сама по себе нетривиальна.
такой способ отправки писем хорош для секций отзывов/пожеланий к приложению. даже если кому-то вдруг понадобится этот служебный email и он сможет получить его, то онаружится это довольно быстро, а лечится апдейтом приложения.
собственно, использование любых запароленных сервисов из iOS приложений подвергается той же опасности.
Одно дело когда пароль вводится в приложении, а потом попадает в какой-нибудь криптоконтейнер. А другое дело захардкоденный пароль. Ради моего любопытства пожалуйста возьмите свой EmailSender.app распакуйте и поищите свой логин и пароль в чистом виде среди файлов. Если же вы выполните мою просьбу, то скажите результаты.
я вам и так скажу, что в чистом виде он там не найдется. я вам как раз говорю о захардкоженых паролях для сервисов, которые используют именно приложения, а не пользователи.
раз уж вы так увлеклись, попробуйте получить подобный результат с каким-нибудь приложением из AppStore (найти строчку "#include" в нем, например)
не сомневаюсь, что как-нибудь это можно сделать, но сам никогда этим не занимался.
получается, чтобы получить этот доступ к этому аккаунту нужно:
1) заинтересоваться вашим приложением
2) сообразить, как вы отсылаете email
3) получить файл приложения
4) декомпилировать его каким-либо способом
да, думаю, все это можно сделать. и использовать такой подход стоит там, где вам не страшно потерять этот служебный email, иначе говоря, где это никому и не нужно будет.
'#include' я конечно не найду, т.к. исходников внутри нет. А вот захаркоденные строки вполне, если компилятор никак над блоком DATA в бинарнике специфически не работает(не сжимает, не шифрует).
По крайней мере мне так кажется, если есть кто компетентный в этом вопросе, то с радостью выслушаю комментарии. :)
Фишка в том, что дешифровать особо не нужно. Берем джаилбрайкнутый девайс, запускаем офицально купленное приложение, подключаемся дебагером, в этот момент приложение уже расшифрованно, делаем дамп. Это в кратце. Гуглите встолону взлома приложений для ios.
Я изучал данный вопрос в противоположную сторону, т.е. защиту от взлома. Сам лично не ломал приложения. Но гугл говорит именно так. Это конечно в случае, когда в приложении нет никакой своей защиты.
Поиск по нешифрованым строкам, это первое что делает взломщик приложения. А имея необходимое ПО бинарник действительно открывается за пару минут. Поэтому минимальной шифрацией строк не стоит брезговать никогда. Особенно это относится к пользовательским данным, которые любят хранить в нешифрованном виде в UserDefaults, куда на джейленых девайсах может получить доступ любое приложение злоумышленника (или непонятно кем крякнутые птицы с вредноносным кодом).
И ещё:
1) если пароль попадает в чужие руки, то может попасть и важная почта(логины/пароли), адреса ваших пользователей(+ в спам) и тд
2) если «лечить» апдейтом, то пользователи получат негативный опыт, если они не успели обновиться
3) если один раз добыли из вашего пароль EmailSender.app, то ничто не мешает повторять каждый раз, а пользователи будут наслаждаться гонкой версий с новыми логинами/паролями
1) я подразумевал не в приложении важную информацию, а на gmail аккаунте
2), 3) да, мне очень интересно действительно ли это надо лечить или все придумано до нас. потому и поднял вопрос
Ну так ведь действительно – неправильно. Пароль, как писали выше, в чистом виде выдрать элементарнейшее занятие.
А насчет «я не знаю как правильно делать» давайте для начала копнем глубже:
> Проблема
> Хочу отправлять письмо из приложения под iOS без выхода из приложения (не использовать mailto URL) и без > открытия дополнительного экрана (не использовать MFMailComposeViewController).
user case:
сделать возможность отправлять отзывы/пожелания по приложению на определенный email.
при этом необходимо, чтобы пользователь не видел, что это за email. и для удобства нужно, чтобы из приложения пользователь не выходил, дополнительные экраны не появлялись.
Пишем письма из iOS приложения