Pull to refresh

Comments 33

А разве «случайный» дебаг приложения не выявит пароль и последующую потерю gmail аккаунта?
что вы имеете в виду? можно подробнее — как вы бы получили из такого приложения login/password аккаунта?
Я бы таким вряд ли бы занимался, но если бы возникла необходимость, то начал бы со слов «iphone app reverse engineering» в поисковике.
Я бы таким вряд ли бы занимался, но если бы возникла необходимость, то начал бы со слов «iphone app reverse engineering» в поисковике.
понятно. задача реверс-инжиниринга приложения из AppStore сама по себе нетривиальна.
такой способ отправки писем хорош для секций отзывов/пожеланий к приложению. даже если кому-то вдруг понадобится этот служебный email и он сможет получить его, то онаружится это довольно быстро, а лечится апдейтом приложения.
собственно, использование любых запароленных сервисов из iOS приложений подвергается той же опасности.
Одно дело когда пароль вводится в приложении, а потом попадает в какой-нибудь криптоконтейнер. А другое дело захардкоденный пароль. Ради моего любопытства пожалуйста возьмите свой EmailSender.app распакуйте и поищите свой логин и пароль в чистом виде среди файлов. Если же вы выполните мою просьбу, то скажите результаты.
я вам и так скажу, что в чистом виде он там не найдется. я вам как раз говорю о захардкоженых паролях для сервисов, которые используют именно приложения, а не пользователи.
Взял ваши исходники, открыл проект, установил release, project->build. Далее нашел EmailSender.app, зашел внутрь.

$ grep "@gmail.com" EmailSender
Binary file EmailSender matches

Проверил вручную в Hex Viewer'e, нашел строки в чистом виде.
раз уж вы так увлеклись, попробуйте получить подобный результат с каким-нибудь приложением из AppStore (найти строчку "#include" в нем, например)
не сомневаюсь, что как-нибудь это можно сделать, но сам никогда этим не занимался.
получается, чтобы получить этот доступ к этому аккаунту нужно:

1) заинтересоваться вашим приложением
2) сообразить, как вы отсылаете email
3) получить файл приложения
4) декомпилировать его каким-либо способом

да, думаю, все это можно сделать. и использовать такой подход стоит там, где вам не страшно потерять этот служебный email, иначе говоря, где это никому и не нужно будет.
'#include' я конечно не найду, т.к. исходников внутри нет. А вот захаркоденные строки вполне, если компилятор никак над блоком DATA в бинарнике специфически не работает(не сжимает, не шифрует).

По крайней мере мне так кажется, если есть кто компетентный в этом вопросе, то с радостью выслушаю комментарии. :)
apple шифрует бинарник. Но задача его дешифровки занимает пару минут и можно спокойно всё смотреть в hex редакторе
чем дешифруете? поделитесь опытом.
Фишка в том, что дешифровать особо не нужно. Берем джаилбрайкнутый девайс, запускаем офицально купленное приложение, подключаемся дебагером, в этот момент приложение уже расшифрованно, делаем дамп. Это в кратце. Гуглите встолону взлома приложений для ios.
куда гуглить — это очевидно. мне интересен ваш практический опыт. действительно ли за две минуты подобное делали.
Я изучал данный вопрос в противоположную сторону, т.е. защиту от взлома. Сам лично не ломал приложения. Но гугл говорит именно так. Это конечно в случае, когда в приложении нет никакой своей защиты.
Поиск по нешифрованым строкам, это первое что делает взломщик приложения. А имея необходимое ПО бинарник действительно открывается за пару минут. Поэтому минимальной шифрацией строк не стоит брезговать никогда. Особенно это относится к пользовательским данным, которые любят хранить в нешифрованном виде в UserDefaults, куда на джейленых девайсах может получить доступ любое приложение злоумышленника (или непонятно кем крякнутые птицы с вредноносным кодом).
Ради справедливости стоит заметить, что легко нашелся в чистом виде в неподписанном приложении, собранном для эмулятора.

Возможно ситуация поменяется к лучшему, если попробывать найти в подписанном приложении из AppStore.

думаю, там тоже можно это сделать, просто сложнее будет.
И ещё:
1) если пароль попадает в чужие руки, то может попасть и важная почта(логины/пароли), адреса ваших пользователей(+ в спам) и тд
2) если «лечить» апдейтом, то пользователи получат негативный опыт, если они не успели обновиться
3) если один раз добыли из вашего пароль EmailSender.app, то ничто не мешает повторять каждый раз, а пользователи будут наслаждаться гонкой версий с новыми логинами/паролями
1) где вы тут нашли важную почту, логины, пароли и адреса пользователей.
2) давайте для начала убедимся, что это нужно вообще лечить
3) см.2
1) я подразумевал не в приложении важную информацию, а на gmail аккаунте
2), 3) да, мне очень интересно действительно ли это надо лечить или все придумано до нас. потому и поднял вопрос
1) — под конкретное приложение надо заводить отдельный аккаунт и больше его ни для чего не использовать.
Пока диалог напоминает «Я не знаю как правильно делать, но вы делаете неправильно». :)
Кто-нибудь предложит «правильный» путь?
Если вы обратите внимание, то первый комментарий в вопросительной форме. Я ничего не утверждал.
Ну так ведь действительно – неправильно. Пароль, как писали выше, в чистом виде выдрать элементарнейшее занятие.

А насчет «я не знаю как правильно делать» давайте для начала копнем глубже:

> Проблема

> Хочу отправлять письмо из приложения под iOS без выхода из приложения (не использовать mailto URL) и без > открытия дополнительного экрана (не использовать MFMailComposeViewController).

предложите use case для этой задачи.
ну, «элементарнейшее» — это сильно сказано:)

user case:
сделать возможность отправлять отзывы/пожелания по приложению на определенный email.
при этом необходимо, чтобы пользователь не видел, что это за email. и для удобства нужно, чтобы из приложения пользователь не выходил, дополнительные экраны не появлялись.
Мне кажется надуманно как-то. Если нужен фидюэк, то лучше чтобы пользователи отправляли его со своего мыла, знаем кому отвечать.
и email получателя в этом случае вам тоже нужно будет раскрыть.
Мы не прячимся от наших клиентов;)
значит в вашем случае можете обойтись без этого решения.
Элементарно — рассылка email группе друзей.
UFO just landed and posted this here
Еще год назад вставлял эту библиотеку в своё приложение для отправки небольшого файла (до мегабайта). Работало и работает до сих пор без проблем.
Sign up to leave a comment.

Articles