Как купить про версию приложения бесплатно
Ни один разговор о взломе и модификации приложений не обходится без упоминания дизассемблера, дебаггера, формата исполняемых файлов и вездесущей IDA Pro. Однако в случае с Android все намного проще, и здесь для вскрытия и даже внедрения кода в приложение совсем не обязательно использовать все эти инструменты. Код можно легко декомпилировать обратно в Java и модифицировать, используя пару простых инструментов и текстовый редактор.
Этой статьей мы начинаем цикл, посвященный вскрытию и модификации приложений для Android. Первая часть — вводная, поэтому никакого хардкора: мы разберемся в устройстве пакетов APK, научимся разбирать APK на части, декомпилировать его код, вносить правки и собирать обратно, и в качестве примера взломаем одно популярное приложение из маркета. Вторая статья будет целиком посвящена внедрению бэкдора/вируса в чужое приложение. Это уже не просто правка нескольких строк, а глубокая модификация. Третья статья — методы обфускации и их обхода. Все больше разработчиков используют нетривиальную обфускацию, чтобы осложнить жизнь реверсерам. Мы распутаем их код и опять же внесем правки в приложение.
WARNING
Это ознакомительная статья, призванная всего лишь показать процесс взлома приложений. Она не призывает тебя заниматься варезом и лишать доходов людей, потративших многие недели на создание приложений. ASAP Launcher — великолепное приложение без навязчивой рекламы, почти вся полезная функциональность доступна бесплатно. Поэтому вместо того, чтобы использовать крякнутую версию, лучше купи полное приложение и поддержи разработчика. Оно обойдется тебе всего в 100 рублей.
Снаряжаемся
Для выполнения описанных в статье действий понадобится ряд инструментов, и главный инструмент — это Linux. Да, многие из названных далее программ могут работать и в Windows, но в любых операциях, связанных с Android и его приложениями, лучше не полагаться на детище Билли. В Linux практически все сделать проще, командная строка здесь в разы удобнее (она нам ох как понадобится), а некоторые инструменты просто недоступны для других ОС.
После установки Linux в виртуалку или второй системой сразу устанавливаем средства разработки на Java и виртуальную машину. В Ubuntu это можно сделать с помощью одной команды:
Также нам нужны четыре инструмента для распаковки и декомпиляции приложений:
-
— швейцарский армейский нож для распаковки и запаковки приложений; — декомпилятор байт-кода Dalvik в код на Java; — дизассемблер кода Dalvik (не пугайся, с настоящим ассемблером он имеет мало общего); — утилита для подписи пакетов.
Для удобства создадим в домашнем каталоге подкаталог Android и скачаем эти инструменты в него:
Добавим в конец файла
/.bashrc следующие строки:
Они нужны для того, чтобы вместо длинных и неудобных команд вроде java -jar
/Android/sign.jar можно было набрать просто sign.
Вскрываем подопытного
Теперь нам нужно найти приложение, которое, во-первых, нетрудно расковырять, а во-вторых, которое несет какую-то пользу и достаточно известно. То есть брать простейшую софтину только для того, чтобы было не очень сложно разобраться в ее коде, мы не будем, а вместо этого устремим свой взор на топ Play Store. Практически идеальный кандидат на эту роль — выпущенный два месяца назад ASAP Launcher, удобнейший домашний экран с массой полезных и неординарных функций.
Для удобства переименуем пакет в asap.apk:
Разархивируем с помощью unzip:
Да, APK — это обычный архив ZIP, но тем не менее он имеет четкую структуру:
- META-INF — каталог, содержащий файлы MANIFEST.MF, CERT.MF и CERT.RSA. Первые два — список всех файлов пакета и их контрольных сумм, последний содержит открытый ключ разработчика и созданную с помощью закрытого ключа цифровую подпись файла CERT.MF. Эти данные нужны, чтобы при установке пакета система смогла выяснить, что пакет не был модифицирован и действительно создан его автором. Это важно, так как, поскольку нет возможности подделать цифровую подпись пакета (для этого нужен закрытый ключ), модифицированный пакет придется подписывать другим ключом;
- res — ресурсы приложения. Здесь находятся иконка (mipmap), переводы строк (values), изображения (drawable), а также описания интерфейса приложения (layout). Все их можно модифицировать, чтобы изменить внешний вид приложения. Правда, файлы XML придется сначала «разжать» — для улучшения производительности они хранятся в бинарном формате;
- classes.dex — код приложения в форме байт-кода виртуальной машины Dalvik. Обычно приложения содержат только один такой файл, но, используя директиву multiDex, разработчик может заставить среду разработки разбить его на множество более мелких для улучшения производительности или преодоления ограничения на 65 536 методов в одном dex-файле;
- AndroidManifest.xml — манифест приложения, описывающий его структуру, включая активности, сервисы, обработчики интентов и так далее. Опять же в формате бинарного XML.
Также пакет может содержать другие каталоги, например assets (любые файлы, включенные разработчиком, в данном случае — шрифты и база данных) и lib (нативные библиотеки, созданные с использованием Android NDK).
Изучаем код
Само собой разумеется, просто разархивировать пакет недостаточно. Чтобы разобраться в работе приложения, необходимо декомпилировать файл classes.dex.
Для этого мы воспользуемся jadx-gui. Запускаем, выбираем asap.apk и видим слева список пакетов Java, включенных в APK. В данном случае это пакеты android.support — официальная библиотека Google, реализующая поддержку функций новых версий Android в старых (например, чтобы получить Material Design в Android 4.1), com.google.android.gms — Google Mobile Services, com.nispok.snakbar — реализация GUI-элемента snakbar, а также несколько других.
Основной код приложения содержится в пакете com.citc.asap, именно такое имя носит и само приложение в Google Store и на устройстве. Открываем его и видим больше десятка каталогов и множество исходников Java. Наша задача — сделать приложение «оплаченным», не платя за него. Но как найти нужный файл, реализующий проверку на оплату? Скорее всего, он будет содержать в имени слово billing. Пробегаемся по исходникам в поисках нужного нам файла и натыкаемся на исходник BaseBillingFragment в подкаталоге (пакете) fragments:
Это очень простой класс Java, в котором есть интересный метод:
Все, что он делает, — просто возвращает значение поля mHasPrime, однако интересен он не этим, а своим именем. Дело в том, что платная (точнее, оплаченная) версия ASAP называется Prime, и очевидно, что метод hasPrime как раз и нужен для проверки оплаты приложения. Чтобы подтвердить свою догадку, сохраним декомпилированные исходники (File -> Save all) в каталог и попробуем найти в них вызовы hasPrime():
Совпадений немного, основной «пользователь» hasPrime() — это SettingsFragment, то есть исходник, отвечающий за формирование окна настроек. Учитывая, что Prime-версия отличается от бесплатной именно тем, что в ней разблокированы дополнительные поля настроек, уже сейчас мы можем быть на 90% уверены, что hasPrime() — нужный нам метод. Скорее всего, именно с его помощью приложение выясняет, куплена ли Prime-версия. Осталось только убедиться в этом окончательно, подменив код метода на свой.
Вносим правки
Метод hasPrime() очень прост: он возвращает значение поля mHasPrime, которое имеет тип boolean. Нетрудно предположить, что в случае, если приложение оплачено, hasPrime() вернет true, иначе вернет false. Наша задача — сделать так, чтобы метод всегда возвращал true и остальная часть приложения думала, что приложение оплачено, и разблокировала дополнительные опции в окне настроек.
К сожалению, сделать это с помощью прямой правки исходного кода не получится: приложение нельзя скомпилировать обратно. Однако никто не запрещает дизассемблировать код, внести правки и собрать его вновь. И как раз здесь нам понадобится apktool. Дизассемблируем APK:
В текущем каталоге появится подкаталог asap. Открываем файл asap/smali/com/citc/asap/fragments/BaseBillingFragment.smali и находим hasPrime() . Декларация метода будет выглядеть так:
Это и есть дизассемблированный листинг, и, как ты видишь, он на порядок проще, чем дизассемблированный код нативных приложений. В целом здесь все тривиально:
- .method protected hasPrime()Z — объявляет protected-метод, который возвращает значение типа boolean (Z);
- .locals 1 — говорит виртуальной машине, что метод использует в своей работе один регистр (в данном случае он будет содержать возвращаемое значение);
- .prologue и .line 167 — директивы, необходимые для отладки, на ход исполнения не влияют;
- iget-boolean v0, p0 . — получает значение поля типа boolean и записывает в регистр v0, регистр p0 — это нулевой параметр, он всегда равен имени класса (this);
- return v0 — возвращает значение регистра v0;
- .end method — закрывает тело метода.
Теперь мы должны изменить данный метод так, чтобы он возвращал true независимо от значения поля mHasPrime . Мы могли бы сделать это вручную, но проще написать новый метод на Java:
И пропустить его через компилятор и дизассемблер:
На выходе получаем следующий ассемблерный код:
Ты уже должен сам догадаться, что он объявляет константу v0 со значением 1 и возвращает ее (в Dalvik тип boolean — это int, который может иметь значение 1 — true или 0 — false). Осталось только вставить этот код вместо оригинального и собрать пакет обратно:
Пакет появится в каталоге asap/dist . Переименуем его, чтобы не запутаться:
И подпишем с помощью тестового ключа:
В результате в текущем каталоге появится файл asap-fake-hasPrime.s.apk. Остается только закинуть его на карту памяти и установить, удалив перед этим оригинальное приложение.
Выводы
Взломать приложение для Android очень и очень просто. Да, я не спорю, нам попался удобный и простой пример для модификации, но опять же повторюсь — это весьма популярное приложение, о котором рассказывали на большинстве сайтов, посвященных Android.
Большинство других приложений вскрыть так же просто, однако есть достаточное количество экземпляров, пропущенных через обфускаторы и различные системы защиты. С ними все несколько сложнее, и таким приложениям будет посвящена третья статья цикла. Во второй статье мы рассмотрим, как тот же самый метод модификации использовать для внедрения собственного кода.
Евгений Зобнин
Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.
В Google Play доступны десятки тысяч качественных приложений и игр, но лучшие из них либо платные, либо условно бесплатные, то есть содержат контент, за который вас все же попросят заплатить. Конечно, можно попытаться найти эти приложения на пиратских ресурсах с риском нахватать вирусов, но лучше воспользоваться легальными методами, о которых мы расскажем сегодня.
Amazon Underground
Amazon Underground — собственный магазин контента от компании Amazon, в котором постоянно доступно несколько тысяч «действительно бесплатных» игр и приложений. Их покупку и приобретение любого контента в них спонсирует компания Amazon. К чести Amazon нужно заметить, что программы здесь действительно качественные — среди них много популярных и дорогих наименований. Единственный недостаток — Amazon Underground не работает в России официально, но это ограничение можно обойти.
myAppFree
myAppFree — приложение, которое изначально присутствовало только на Windows Phone, но недавно появилось на Android. Каждый день в нем проводится акция по бесплатной раздаче платного приложения или игры в течение 24 часов, а в дополнительных разделах можно найти программы, которые продаются со значительными скидками.
Аналогичным образом устроены прочие сервисы для поиска скидок — например, «Приложение дня», AppSales, AppGratis и Best App Sale. Последнее приложение показывает скидки не только в Google Play, но и в других магазинах: Steam, Xbox, GOG, Origin, PlayStation Store, Gamersgate и многих других. К сожалению, некоторые недобросовестные разработчики используют эти сервисы для продвижения не самого качественного контента или завышают начальную стоимость приложения для того, чтобы скидка казалась более привлекательной.
Google Play
Не забывайте иногда заходить в приложение Google Play на Android или на его версию в вебе. Компания Google очень часто проводит распродажи с большими скидками или раздачу платных игр и приложений. Как правило, акции бывают приурочены к какому-либо празднику или событию, но случаются и стихийные акции, цель которых — продвижение какого-либо контента или повышение популярности Google Play среди пользователей Android.
Бесплатные альтернативы
Если вам позарез нужно какое-либо конкретное приложение, но оно стоит дорого, а денег на его покупку у вас нет, не спешите бежать к пиратам. Возможно, вам удастся найти его бесплатную альтернативу. Для этой цели можно воспользоваться веб-серисом AlternativeTo. Введите в поисковую строку сайта название нужного вам приложения, и сервис моментально покажет альтернативы. Результаты поиска можно отфильтровать так, чтобы в нем показывались только бесплатные наименования.
Если Вам нравится то, что мы делаем, и то, как мы это делаем, сделайте выбор в пользу профессиональной версии программы.
Проект развивается благодаря платным пользователям. Все улучшения делаются в первую очередь для тех, кто поддержал проект материально и выбрал профессиональную версию программы.
Все подписки кроме бессрочной продляются автоматически, если их не отменить в приложении плей маркет на вкладке Подписки.
Чтобы узнать стоимость в другой стране перейдите на вкладку Получить PRO и выберите нужный вариант подписки. Goole Play отобразит полную стоимость со всеми налогами в валюте вашего способа оплаты.
В PRO версии вы получите больше функций и снятие всех ограничений:
Список доп. функций будет увеличиваться с выходом новых версий.
Если деньги списались, а PRO версия не активировалась
Проверьте видит ли гугл плей подписку (если не бессрочная) на вкладке Подписки в меню приложения Google Play. Может помочь перезагрузка устройства и вход в программу с включенным интернетом. Очистка кэш и данных Google Play с последующим перезапуском программы (интернет должен быть включен и разрешен приложению и гугл плей).Очистка кэша Google Play Маркета
На своем устройстве откройте меню Настройки.
Перейдите в раздел Приложения или Менеджер приложений. Название этого раздела зависит от вашего устройства.
Откройте вкладку Все и найдите в списке приложение Google Play Маркет.
Откройте меню приложения и нажмите кнопку Остановить.
Повторите предыдущие действия, выбрав на шаге 3 вместо приложения Google Play Маркет пункт Сервисы Google Play.
Отменить подписку или узнать сколько осталось времени
Подписку можно отменить в любой момент до наступления очередного срока оплаты, как указано в Справочном центре. Изменения вступят в силу в следующем расчетном периоде. Например, если отменить ежемесячную подписку, она перестанет действовать начиная со следующего месяца. Плата за текущий расчетный период не возвращается. Исключение составляют некоторые случаи, перечисленные в правилах компании Google по возврату платежей (например, повреждение Контента).
Ввод индекса сопряжен с разными тонкостями, ведь в США, например, индекс 5-значный, в России – 6-значный, а в некоторых странах СНГ он включает в себя буквы. Иногда ваш индекс не подходит по непонятным причинам, ведь вы ввели все правильно, а Google все равно не хочет принимать информацию.
1. Вводим индекс областного центра. Согласно отзывам в Сети, многие пользователи, которые столкнулись с ошибкой при введении правильного индекса, решили проблему, введя индекс областного центра.
2. Чистим кэш. Иногда проблему помогает решить очистка кэша. Такой же способ используют, если Google не принимает индекс при регистрации в AdSense и других сервисах. Для этого нужно зайти в «Настройки», потом в раздел «Приложения», а там нажать на Play Market. Помимо описаний на экране, здесь будет кнопка «Очистить кэш». Такую же операцию можно проделать с другими сервисами Гугл.
3. Меняем порядок чисел. Некоторые пользователи утверждают, что порядок расположения цифр в индексе нужно поменять для Google. Т. е. если вы привыкли вводить соответствующие цифры под область, район, город и адрес проживания, то можно попробовать сначала ввести код адреса, потом города, района, а только после него написать код области.
4. Метод подбора. Если вы живете в Московской области, и ваш обычный индекс не прошел проверку, попробуйте ввести индексы для других районов и адресов. Некоторые пользователи утверждают, что такой метод подбора им помог, хотя реальный индекс и не соответствовал данным, которые они ввели.
5. Случайное число. В крайнем случае попробуйте ввести самую простую комбинацию чисел, вплоть до 123456. Согласно отзывам в Сети, этот метод также помог некоторым пользователям, которые сталкивались с проблемой.
После загрузки бесплатной игры из Play Store, ее открытия и игры вы можете обнаружить, что только первая глава является бесплатной. После этого вы должны оплатить покупки в приложении.
Поистине, это раздражает. И вы не единственный, кто столкнулся с такой ситуацией. Многие приложения, которые можно бесплатно загрузить в Google Play, интегрированы в варианты покупки приложений, такие как монеты и бонусы в мобильных играх.
Есть ли способ получить бесплатную покупку приложений? В этом посте мы собираемся показать вам, как этого добиться. Помните, что наш учебник предназначен только для обмена опытом и навыками.
Часть 1 : Лучшие приложения 5 для бесплатных покупок приложений на Android без рута
Мы все знаем, что мобильная ОС Android имеет открытый исходный код и легко модифицируется. Это означает, что есть возможность бесплатно установить платные приложения или бесплатно совершить покупки в приложении. Все, что вам действительно нужно, это хакерское приложение. В этой части мы определим и покажем вам несколько лучших хакерских приложений.
Топ 1: AppSara V2.0
1. Взламывайте практически все игры и приложения, доступные в Google Play Store.
2. Легкий и работает в фоновом режиме, прерывая ваши игры.
3. Бесплатные покупки в приложении, такие как монеты, деньги, драгоценные камни и т. Д.
4. Наслаждайтесь полноценными приложениями или играми в обход платежной системы.
5. Совместим со всеми устройствами под управлением Android 2.2 и выше.
Плюсы
1. Это взломанное приложение не требует root-доступа.
2. Интерфейс прост и удобен в использовании.
3. AppSara абсолютно бесплатна для использования.
Минусы
1. Он недоступен в Play Store, поэтому его необходимо загрузить с веб-сайта.
2. Это приложение не предлагает поддержку на английском языке.
Топ 2: LuckyPatcher
1. Бесплатно при покупке приложения, удалив подтверждение лицензии платных приложений и игр.
2. Запретите Google Play, чтобы изучить историю покупок в приложении.
3. Измените приложение, имеющее опцию покупки приложения, и удалите сигнал фильтрации лицензий.
4. Поддержка практически всех мобильных игр с покупками в приложении.
5. Блокируйте рекламу, появляющуюся в ваших приложениях и играх.
6. Установите модовый Play Store.
Плюсы
1. Это взломанное приложение легкое и не занимает много места.
2. Он предоставляет более широкий спектр функций, таких как приложения резервного копирования.
Минусы
Он доступен только на устройствах Android с root-доступом.
Топ 3: CreeHack
1. Загрузите и установите каждое приложение и игру, не платя ни копейки.
2. Совместим со всеми планшетами Android и смартфонами.
3. Включите бесплатные покупки в приложении, такие как драгоценные камни, монеты и многое другое, минуя процесс оплаты.
4. Редактируйте игры для Android по своему желанию, например, удаляйте определенные функции из мобильной игры.
5. Хорошо работает как на рутованных, так и на некорневых устройствах Android.
Плюсы
1. Это взломанное приложение не просит пользователей просматривать рекламу, принимать участие в опросах или отвечать на дополнительные вопросы.
2. Краткий интерфейс делает его очень простым в использовании.
3. Это с открытым исходным кодом.
Минусы
Вы должны установить его из Интернета, что небезопасно.
Топ 4: свобода
1. Взломать приложения и игры бесплатно в приложениях покупок.
2. Обнаружение всех приложений и мобильных игр, загруженных на ваше устройство автоматически.
3. Избавьтесь от вариантов покупки в приложении одним нажатием.
4. Поддержка всех планшетов Android и смартфонов.
5. Улучшена поддержка последних версий Google Play Store.
Плюсы
1. Разработчик часто выпускает обновления, так что вы можете использовать их на любых системах Android.
2. Он также может удалять рекламу в приложении.
Минусы
1. Свобода не распространяется на все игровые предметы.
2. Ваше устройство должно быть рутировано. Вы можете проверить здесь, чтобы узнать больше о как получить root права на свой телефон Android.
Топ 5: Leo PlayCard
1. Получить приложения и игры для Android бесплатно в приложении покупки просто.
2. Поддержка всех устройств под управлением Android 2.3 и более поздних версий.
3. Взламывайте целевые игры или приложения, не спрашивая root-права.
4. Полностью контролируйте свои игры и удаляйте рекламу или платежную систему.
5. Доступно для более широкого спектра мобильных игр, таких как Temple Run 2.
Плюсы
1. Хак приложение легко в использовании, особенно для начинающих.
2. Независимо от того, рутовано ваше устройство или нет, Temple Run 2 работает отлично.
Минусы
Он не может взломать онлайн-игры и приложения.
Часть 2 : Как использовать CreeHack, чтобы получить бесплатную покупку приложения
Как видите, есть несколько хакерских приложений, которые можно бесплатно приобрести при покупке приложения и позволить вам играть в игры без проблем. Они работают аналогичным образом, и мы используем CreeHack в качестве примера, чтобы показать вам рабочий процесс.
Шаг 1 : Разблокируйте телефон Android и подключите его к хорошей сети Wi-Fi. Зайдите в Настройки> Безопасность и включите Неизвестные источники. Это позволяет вам устанавливать APK из источников, отличных от Play Store.
Шаг 3 После загрузки вашего любимого игрового приложения из Google Play Store и установки его на ваше устройство вернитесь в приложение для взлома и нажмите кнопку «Домой», чтобы свернуть его.
Шаг 4 : Откройте игровое приложение, которое вы хотите бесплатно приобрести в приложении, и перейдите в раздел покупки. Купите что-нибудь, и тогда CreeHack откроет всплывающее диалоговое окно вместо запуска Google Payment.
Шаг 5 : Во всплывающем диалоговом окне вам предлагаются два варианта, Купить и Отменить. Если вы хотите приобрести предмет, нажмите «Купить», чтобы получить его бесплатно, не платя ни копейки. Опция Отмена откажется от предмета и вернется в игру.
Шаг 6 : После покупки вы можете играть в свою игру. Приложение CreeHack легкое и не загружает внутреннюю память при работе в фоновом режиме.
Не пропустите: как использовать Samsung приложение для резервного копирования для резервного копирования данных
Заключение
Мобильная игра - самая популярная категория на устройствах Android. Согласно нашему исследованию, в Google Play Store есть сотни игровых приложений, в которых есть встроенные функции покупки, хотя их можно бесплатно скачать.
Это раздражает, когда вы блокируете вариант оплаты. Вот почему в этой статье мы поделились информацией о том, как бесплатно покупать приложения. Вы можете выбрать подходящий инструмент в зависимости от ситуации и попробовать приобрести предметы. Если вы действительно предпочитаете игру, вы можете купить монеты или другой персонал.
Читайте также: