Comments 33
А разве «случайный» дебаг приложения не выявит пароль и последующую потерю gmail аккаунта?
что вы имеете в виду? можно подробнее — как вы бы получили из такого приложения login/password аккаунта?
Я бы таким вряд ли бы занимался, но если бы возникла необходимость, то начал бы со слов «iphone app reverse engineering» в поисковике.
Я бы таким вряд ли бы занимался, но если бы возникла необходимость, то начал бы со слов «iphone app reverse engineering» в поисковике.
понятно. задача реверс-инжиниринга приложения из AppStore сама по себе нетривиальна.
такой способ отправки писем хорош для секций отзывов/пожеланий к приложению. даже если кому-то вдруг понадобится этот служебный email и он сможет получить его, то онаружится это довольно быстро, а лечится апдейтом приложения.
собственно, использование любых запароленных сервисов из iOS приложений подвергается той же опасности.
такой способ отправки писем хорош для секций отзывов/пожеланий к приложению. даже если кому-то вдруг понадобится этот служебный email и он сможет получить его, то онаружится это довольно быстро, а лечится апдейтом приложения.
собственно, использование любых запароленных сервисов из iOS приложений подвергается той же опасности.
Одно дело когда пароль вводится в приложении, а потом попадает в какой-нибудь криптоконтейнер. А другое дело захардкоденный пароль. Ради моего любопытства пожалуйста возьмите свой EmailSender.app распакуйте и поищите свой логин и пароль в чистом виде среди файлов. Если же вы выполните мою просьбу, то скажите результаты.
я вам и так скажу, что в чистом виде он там не найдется. я вам как раз говорю о захардкоженых паролях для сервисов, которые используют именно приложения, а не пользователи.
Взял ваши исходники, открыл проект, установил release, project->build. Далее нашел EmailSender.app, зашел внутрь.
$ grep "@gmail.com" EmailSender
Binary file EmailSender matches
Проверил вручную в Hex Viewer'e, нашел строки в чистом виде.
$ grep "@gmail.com" EmailSender
Binary file EmailSender matches
Проверил вручную в Hex Viewer'e, нашел строки в чистом виде.
раз уж вы так увлеклись, попробуйте получить подобный результат с каким-нибудь приложением из AppStore (найти строчку "#include" в нем, например)
не сомневаюсь, что как-нибудь это можно сделать, но сам никогда этим не занимался.
получается, чтобы получить этот доступ к этому аккаунту нужно:
1) заинтересоваться вашим приложением
2) сообразить, как вы отсылаете email
3) получить файл приложения
4) декомпилировать его каким-либо способом
да, думаю, все это можно сделать. и использовать такой подход стоит там, где вам не страшно потерять этот служебный email, иначе говоря, где это никому и не нужно будет.
не сомневаюсь, что как-нибудь это можно сделать, но сам никогда этим не занимался.
получается, чтобы получить этот доступ к этому аккаунту нужно:
1) заинтересоваться вашим приложением
2) сообразить, как вы отсылаете email
3) получить файл приложения
4) декомпилировать его каким-либо способом
да, думаю, все это можно сделать. и использовать такой подход стоит там, где вам не страшно потерять этот служебный email, иначе говоря, где это никому и не нужно будет.
'#include' я конечно не найду, т.к. исходников внутри нет. А вот захаркоденные строки вполне, если компилятор никак над блоком DATA в бинарнике специфически не работает(не сжимает, не шифрует).
По крайней мере мне так кажется, если есть кто компетентный в этом вопросе, то с радостью выслушаю комментарии. :)
По крайней мере мне так кажется, если есть кто компетентный в этом вопросе, то с радостью выслушаю комментарии. :)
apple шифрует бинарник. Но задача его дешифровки занимает пару минут и можно спокойно всё смотреть в hex редакторе
чем дешифруете? поделитесь опытом.
Фишка в том, что дешифровать особо не нужно. Берем джаилбрайкнутый девайс, запускаем офицально купленное приложение, подключаемся дебагером, в этот момент приложение уже расшифрованно, делаем дамп. Это в кратце. Гуглите встолону взлома приложений для ios.
куда гуглить — это очевидно. мне интересен ваш практический опыт. действительно ли за две минуты подобное делали.
Я изучал данный вопрос в противоположную сторону, т.е. защиту от взлома. Сам лично не ломал приложения. Но гугл говорит именно так. Это конечно в случае, когда в приложении нет никакой своей защиты.
Поиск по нешифрованым строкам, это первое что делает взломщик приложения. А имея необходимое ПО бинарник действительно открывается за пару минут. Поэтому минимальной шифрацией строк не стоит брезговать никогда. Особенно это относится к пользовательским данным, которые любят хранить в нешифрованном виде в UserDefaults, куда на джейленых девайсах может получить доступ любое приложение злоумышленника (или непонятно кем крякнутые птицы с вредноносным кодом).
Ради справедливости стоит заметить, что легко нашелся в чистом виде в неподписанном приложении, собранном для эмулятора.
Возможно ситуация поменяется к лучшему, если попробывать найти в подписанном приложении из AppStore.
Возможно ситуация поменяется к лучшему, если попробывать найти в подписанном приложении из AppStore.
И ещё:
1) если пароль попадает в чужие руки, то может попасть и важная почта(логины/пароли), адреса ваших пользователей(+ в спам) и тд
2) если «лечить» апдейтом, то пользователи получат негативный опыт, если они не успели обновиться
3) если один раз добыли из вашего пароль EmailSender.app, то ничто не мешает повторять каждый раз, а пользователи будут наслаждаться гонкой версий с новыми логинами/паролями
1) если пароль попадает в чужие руки, то может попасть и важная почта(логины/пароли), адреса ваших пользователей(+ в спам) и тд
2) если «лечить» апдейтом, то пользователи получат негативный опыт, если они не успели обновиться
3) если один раз добыли из вашего пароль EmailSender.app, то ничто не мешает повторять каждый раз, а пользователи будут наслаждаться гонкой версий с новыми логинами/паролями
1) где вы тут нашли важную почту, логины, пароли и адреса пользователей.
2) давайте для начала убедимся, что это нужно вообще лечить
3) см.2
2) давайте для начала убедимся, что это нужно вообще лечить
3) см.2
Пока диалог напоминает «Я не знаю как правильно делать, но вы делаете неправильно». :)
Кто-нибудь предложит «правильный» путь?
Кто-нибудь предложит «правильный» путь?
Если вы обратите внимание, то первый комментарий в вопросительной форме. Я ничего не утверждал.
Ну так ведь действительно – неправильно. Пароль, как писали выше, в чистом виде выдрать элементарнейшее занятие.
А насчет «я не знаю как правильно делать» давайте для начала копнем глубже:
> Проблема
> Хочу отправлять письмо из приложения под iOS без выхода из приложения (не использовать mailto URL) и без > открытия дополнительного экрана (не использовать MFMailComposeViewController).
предложите use case для этой задачи.
А насчет «я не знаю как правильно делать» давайте для начала копнем глубже:
> Проблема
> Хочу отправлять письмо из приложения под iOS без выхода из приложения (не использовать mailto URL) и без > открытия дополнительного экрана (не использовать MFMailComposeViewController).
предложите use case для этой задачи.
ну, «элементарнейшее» — это сильно сказано:)
user case:
сделать возможность отправлять отзывы/пожелания по приложению на определенный email.
при этом необходимо, чтобы пользователь не видел, что это за email. и для удобства нужно, чтобы из приложения пользователь не выходил, дополнительные экраны не появлялись.
user case:
сделать возможность отправлять отзывы/пожелания по приложению на определенный email.
при этом необходимо, чтобы пользователь не видел, что это за email. и для удобства нужно, чтобы из приложения пользователь не выходил, дополнительные экраны не появлялись.
Элементарно — рассылка email группе друзей.
Sign up to leave a comment.
Пишем письма из iOS приложения