Comments 22
А скажите, и в магазине можно также стенку приподнять?
Интересный перевод. А можно подробнее о прослушке SSL-трафика? Уж очень интересно.
0
Charles генерирует сертификаты для доменов (заданных в настройках) и скармливает их вашему приложению вместо настоящих сертификатов. Ваше приложение общается с Charles с использованием этого «фейкового» сертификата и ошибочно думает, что это всё безопасно. Между тем, Charles «всё видит» (т.к. у него есть закрытый ключ к своему же сертификату) и соответственно показывает. А дальше канал между Charles и сервером шифруется «настоящим» сертификатом. То есть, сервер тоже ничего не подозревает. (Хотя, например, некоторые поддомены apple.com всё же чувствуют подмену.)
0
Цель данного урока — не сделать вас хакером => тогда «не сделать вас крэкер» а не хакером
0
UFO just landed and posted this here
Что значит
Зачем давать информацию не полностью? Если вы уже решили рассказать, как хакеры делают свое дело (за что, кстати, спасибо, статья понравилась), то будьте так добры, расскажите полностью.
В статье пропущена кое-какая инфа, необходимая для взлома реального приложения на девайсе.
Зачем давать информацию не полностью? Если вы уже решили рассказать, как хакеры делают свое дело (за что, кстати, спасибо, статья понравилась), то будьте так добры, расскажите полностью.
0
На мой взгляд, статья опоздала, как минимум, года на два… Сейчас не всё так просто и легко.
Всем разработчмкам известно что приложение в AppStore шифруется и, для того, чтобы получить дамп классов утилитой class-dump-z, его сначала необходимо дешифровать, а для этого нужен джейлбрейк на iOS… Следовательно необходим iOS 6 версии. Приложения работающие эксклюзивно на iOS 7 можно уже исключить из «группы риска». Но и в iOS 6 версии дешифровать удается далеко не все приложения.
Всем разработчмкам известно что приложение в AppStore шифруется и, для того, чтобы получить дамп классов утилитой class-dump-z, его сначала необходимо дешифровать, а для этого нужен джейлбрейк на iOS… Следовательно необходим iOS 6 версии. Приложения работающие эксклюзивно на iOS 7 можно уже исключить из «группы риска». Но и в iOS 6 версии дешифровать удается далеко не все приложения.
+1
Если речь о банальном дампе классов и их методов, то для этого дешифровывать и не нужно. С джейлбрейком можно загрузить в приложение MobileSubstrate библиотеку, которая делает дамп всех зарегистрированных классов и их методов. Или же использовать вот это github.com/limneos/weak_classdump Это не говоря о том, что в данном случае возможности mobilesubstrate библиотек и cycript этим далеко не ограничиваются.
0
Хороший перевод. Спасибо.
Очень интересная тема, но из-за большого объема работы просто нет времени в этом копаться, а в действительности очень хочется.
Очень интересная тема, но из-за большого объема работы просто нет времени в этом копаться, а в действительности очень хочется.
+2
Когда я экспериментировал с изучением файлов приложений и настроек, был удивлён, сколько программ хранят важные данные в открытом виде. Highscore в NSUserDefaults, список купленного в plist, да чего только не находил.
+1
Такая же история с Mac OS приложениями. Чего там только нет
Кстати, посмотреть все NSUserDefaults всех приложений можно набрав в консоли
Кстати, посмотреть все NSUserDefaults всех приложений можно набрав в консоли
defaults read
+2
Консольных команд для разных нужд в OS X очень уж много. Я как-то пытался самые интересные расписать, но с тех пор нашёл ещё кучу.
А вот если хочется поломать «по-взрослому», то тут на помощь приходят предзагружаемые либы, с помощью которых можно переопределять системные вызовы. Этот метод активно используется в процессе Jailbreak'а девайса, к примеру.
А вот если хочется поломать «по-взрослому», то тут на помощь приходят предзагружаемые либы, с помощью которых можно переопределять системные вызовы. Этот метод активно используется в процессе Jailbreak'а девайса, к примеру.
0
Просто скажите, можно ли надежно защитить in-app покупки в iOS приложении?
0
Автоматического обфускатора на данный момент нет в природе. Есть некие компании, типа Arxan и irDato, у которых есть свои тулзы для этого, за денюжку.
Трудный и гемморойный способ, самому переопределять все классы, методы и проперти, типа такого (взято с stackoverflow):
Мне больше интересна реализация идеи шифровать данные по уникальному ключу. В таком случае либо ключ придется хранить рядом или при переносе приложения на другой девайс данные не расшифруются, если брать скажем в качестве ключа id устройства. Держать данные на своем сервере или в облаке для не онлайн игр тоже не очень.
Трудный и гемморойный способ, самому переопределять все классы, методы и проперти, типа такого (взято с stackoverflow):
#ifndef DEBUG
#define MyClass aqwe
#define myMethod oikl
#endif
@interface MyClass : NSObject {
}
- (void)myMethod;
Мне больше интересна реализация идеи шифровать данные по уникальному ключу. В таком случае либо ключ придется хранить рядом или при переносе приложения на другой девайс данные не расшифруются, если брать скажем в качестве ключа id устройства. Держать данные на своем сервере или в облаке для не онлайн игр тоже не очень.
+1
Есть еще вот такая штука morpher.com/ Единственное, не умеет шифровать пока что селекторы obj-C, т.е. методы будут как на ладони. Но методы можно и вручную вызывать, используя С-строки в качестве имен, которые этот обфускатор уже шифровать умеет. А вообще, проще критически части кода писать на С/С++ — имен методов и классов в бинарнике не будет, да еще и обфускатор с таким кодом куда лучше справляется, чем с obj-C.
0
Статья с сайта Рэя узнается по использованию мемов. Классный сайт, а особенно раздел tutorials. Я вот c# в рабочее время занимаюсь, а в свободное читаю его статьи. Для расширения кругозора, — отличный вариант.
0
Only those users with full accounts are able to leave comments. Log in, please.
Ломаем iOS-приложение. Часть 1