Взломанная WPS PDF Pro — всемогущий PDF Reader & Manager

Мы познакомили вас с рядом статей, в которых наглядно показал, насколько на самом деле легко взламываются приложения для Android. Для этого не нужен даже дизассемблер, достаточно поверхностных знаний Java и языка Smali. Поэтому, если твое приложение будет достаточно популярно, знай: его украдут и путем нехитрых манипуляций активируют платные функции. А если ты решил монетизировать его с помощью рекламы — ее отключат.

Так как мы подписали пакет нашим собственным ключом, он будет конфликтовать с оригинальным приложением, а это значит, что при попытке обновить софтину через маркет мы получим ошибку.

Цифровая подпись необходима только стороннему софту, поэтому если ты занимаешься модификацией системных приложений, которые устанавливаются копированием в каталог /system/app/, то подписывать их не нужно.

После этого скидываем пакет на смартфон, устанавливаем и запускаем. Вуаля, реклама пропала! Вместо нее, однако, появилось сообщение, что у нас нет интернета или отсутствуют соответствующие разрешения. По идее, этого могло бы и хватить, но сообщение выглядит раздражающе, да и, если честно, нам просто повезло с тупым приложением. Нормально написанная софтина, скорее всего, уточнит свои полномочия или проверит наличие интернет-соединения и в противном случае просто откажется запускаться. Как быть в этом случае? Конечно, править код.

Обычно авторы приложений создают специальные классы для вывода рекламы и вызывают методы этих классов во время запуска приложения или одной из его «активностей» (упрощенно говоря, экранов приложения). Попробуем найти эти классы. Идем в каталог smali, далее com (в org лежит только открытая графическая библиотека cocos2d), далее kauf (именно туда, потому что это имя разработчика и там лежит весь его код) — и вот он, каталог marketing. Внутри находим кучу файлов с расширением smali. Это классы, и наиболее примечателен из них класс , по названию которого нетрудно догадаться, что именно он выводит рекламу.

Мы могли бы изменить логику его работы, но гораздо проще будет тупо убрать вызовы любых его методов из самого приложения. Поэтому выходим из каталога marketing и идем в соседний каталог particle, а затем в virtualtorch. Особого внимания здесь заслуживает файл Это стандартный для Android класс, который создается Android SDK и устанавливается в качестве точки входа в приложение (аналог функции main в Си). Открываем файл на редактирование.

Внутри находится код smali (местный ассемблер). Он довольно запутанный и трудный для чтения в силу своей низкоуровневой природы, поэтому мы не будем его изучать, а просто найдем все упоминания класса Ad в коде и закомментируем их. Вбиваем строку «Ad» в поиске и попадаем на строку 25:

Field private ad:Lcom/kauf/marketing/Ad;

Здесь создается поле ad для хранения объекта класса Ad. Комментируем с помощью установки знака ### перед строкой. Продолжаем поиск. Строка 423:

New-instance v3, Lcom/kauf/marketing/Ad;

Здесь происходит создание объекта. Комментируем. Продолжаем поиск и находим в строках 433, 435, 466, 468, 738, 740, 800 и 802 обращения к методам класса Ad. Комментируем. Вроде все. Сохраняем. Теперь пакет необходимо собрать обратно и проверить его работоспособность и наличие рекламы. Для чистоты эксперимента возвращаем удаленную из строку, собираем пакет, подписываем и устанавливаем.

Оп-па! Реклама пропала только во время работы приложения, но осталась в главном меню, которое мы видим, когда запускаем софтину. Так, подождите, но ведь точка входа — это класс MainActivity, а реклама пропала во время работы приложения, но осталась в главном меню, значит, точка входа другая? Чтобы выявить истинную точку входа, вновь открываем файл И да, в нем есть следующие строки:

Они говорят нам (и, что важнее, андроиду) о том, что активность с именем Start должна быть запущена в ответ на генерацию интента (события) из категории Это событие генерируется при тапе на иконку приложения в ланчере, поэтому оно и определяет точку входа, а именно класс Start. Скорее всего, программист сначала написал приложение без главного меню, точкой входа в которое был стандартный класс MainActivity, а затем добавил новое окно (активность), содержащее меню и описанное в классе Start, и вручную сделал его точкой входа.

Читайте также:  Clockworkmod recovery как установить на андроид

Открываем файл и вновь ищем строку «Ad», находим в строках 153 и 155 упоминание класса FirstAd. Он тоже есть в исходниках и, судя по названию, как раз и отвечает за показ объявлений на главном экране. Смотрим дальше, идет создание экземпляра класса FirstAd и интента, по контексту имеющего отношение к этому экземпляру, а дальше метка cond_10, условный переход на которую осуществляется аккурат перед созданием экземпляра класса:

If-ne p1, v0, :cond_10 .line 74 new-instance v0, Landroid/content/Intent; … :cond_10

Скорее всего, программа каким-то случайном образом вычисляет, нужно ли показывать рекламу на главном экране, и, если нет, перескакивает сразу на cond_10. Ок, упростим ей задачу и заменим условный переход на безусловный:

#if-ne p1, v0, :cond_10 goto:cond_10

Больше упоминаний FirstAd в коде нет, поэтому закрываем файл и вновь собираем наш виртуальный факел с помощью apktool. Копируем на смартфон, устанавливаем, запускаем. Вуаля, вся реклама исчезла, с чем нас всех и поздравляем.

Геймплей

После запуска приложения вам откроется домашняя страница, на которой вверху экрана вам будут доступны такие функции приложения как: конвертировать, редактировать, сканировать, заполнять и подпись. Ниже вам будут отображаться недавние файлы, с которыми вы работали.

С помощью функции конвертировать вы сможете любой PDF файл преобразовать в Word, Excel, PPT и наоборот. Вы сможете редактировать текстовое содержимое любого документа PDF так, как будто вы редактируете документ Word. При этом вы сможете добавить текст в свой документ.

Создание ключа для подписи apk-файла приложения

Чтобы пользователи могли установить ваше приложение на смарт-терминал вам необходимо создать подписанный apk-файл приложения. Для этого вам потребуется ключ, с помощью которого будет подписан apk-файл.

Чтобы создать ключ:

  1. Перейдите в папку с установленным JDK.

    cd C:\Program Files\Java\jdkX.X.X_X\bin

  2. Создайте ключ с помощью команды:

    keytool -genkey -v -keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

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

  3. Скопируйте ключ в папку YourAppName\android\app.

скриншотов для Установщик APK

Установщик APK – симбиоз менеджера приложений и инсталлятора .apk-файлов для Android устройств. Может устанавливать, как приложения с официальными цифровыми подписями, так и программы от сторонних разработчиков. Умеет сканировать инсталлируемые файлы на наличие вредоносного кода.

Поддерживает функцию поиска .apk-файлов на пользовательском устройстве и подключенных к нему портативных носителях информации. Может производить пакетную инсталляцию в несколько потоков одновременно. Оснащен инструментарием для «расшаривания» понравившихся приложений через мессенджеры и аппаратные «устройства сопряжения» (Wi-Fi, Bluetooth И т.д.).

Функционал Установщика APK

  • Сканирует пользовательское устройство и подключенные к нему портативные носители информации на предмет наличия .apk-файлов;
  • Составляет из найденных .apk-файлов список, визуализирует его в интерфейсе;
  • Подгружает перечень утилит с официальными цифровыми подписями из Play Market;
  • Инсталлирует «отмеченные» .apk-файлы;
  • Анализирует программный код устанавливаемых .apk-файлов, «отсекает» установку при обнаружении вредоносного кода;
  • Инициирует инсталляцию в несколько потоков при «пакетной» установке .apk-файлов;
  • «Расшаривает» выбранные .apk-файлы указанным способом.

Особенности утилиты

  • Возможность установки как приложений с официальными цифровыми подписями, так и программ «написанных» сторонними разработчиками;
  • Поддержка сканирования подключенных портативных носителей информации;
  • Функция синхронизации с сервисом Play Market;
  • Наличие интегрированного сканера устанавливаемых приложений на предмет наличия вредоносного кода;
  • Поддержка многопоточной «пакетной» инсталляции.

Минусы

  • Пакетная инсталляция может «серьезно просадить» «показатель быстродействия» на «слабых» устройствах;
  • Встроенный сканер вредоносного кода не является полноценным антивирусом и не гарантирует того, что вместе с утилитой не «установятся» компьютерные «вирусы»;
  • Интегрированная реклама.

Дополнительная информация Категория Утилиты Обновлено Текущая версия 3.4.2 Совместимость Android 2.3 или более поздняя Разрядность 32 и 64 bit Встроенные покупки Нет Разработчик Rhythm Software Лицензия Бесплатная Русский язык Есть Возрастные ограничения 0+ Наличие рекламы Да

Как открыть файл APK

Файлы APK могут быть открыты в ряде операционных систем, но они используются, в основном, на устройствах Android.

Откройте файл APK на Android

Чтобы открыть файл APK на вашем Android-устройстве, вам нужно просто загрузить его, как любой другой файл, а затем открыть. Однако? файлы APK, загруженные из-за пределов магазина Google Play, могут быть установлены не сразу из-за ограничений системы безопасности.

Чтобы обойти это ограничение загрузки и установить APK-файлов из неизвестных источников, перейдите в «Настройки» → «Безопасность» (или воспользуйтесь поиском по настройкам) и установите флажок Устанавливать из неизвестных источников. Возможно, вам придётся подтвердить это действие.

Если файл APK не открывается на вашем Android, попробуйте найти его с помощью файлового менеджера, такого как Astro File Manager или ES File Explorer File Manager.

Откройте файл APK на Windows

Вы можете открыть файл APK на ПК, используя Android Studio или BlueStacks. Например, если вы используете BlueStacks, перейдите на вкладку Мои приложения и выберите Установить apk в правом нижнем углу окна.

Откройте файл APK на Mac

ARC Welder – это расширение Google Chrome, предназначенное для тестирования приложений Android для ОС Chrome, но оно работает на любой ОС. Это означает, что вы можете открыть APK на своем компьютере Mac или Windows, если это приложение установлено в браузере Chrome.

Откройте файл APK на iOS

Вы не cможете открывать или устанавливать файлы APK на устройстве iOS (iPhone, iPad и т.д.), поскольку файл построен совершенно иным образом, чем приложения, используемые на этих устройствах, и две платформы несовместимы друг с другом.

Вы также можете открыть файл APK в Windows, MacOS или любой другой настольной операционной системе с помощью инструмента извлечения файлов. Поскольку файлы APK представляют собой просто архивы из нескольких папок и файлов, вы можете разархивировать их с помощью программы, такой как 7-Zip или PeaZip, чтобы увидеть различные компоненты, составляющие приложение.

Однако, это не позволяет вам использовать APK-файл на компьютере. Для этого требуется эмулятор Android (например, BlueStacks), который по существу запускает ОС Android на компьютере.

Крашим взломанное приложение

Окей, жизнь реверсеру мы немного подпортили. Настало время сделать это еще раз! Но как узнать, было ли приложение взломано? Точнее, как оно само может это выяснить? Ведь понятия «взломанное» и «не взломанное» существуют только в наших с тобой головах, то есть это понятия достаточно высокого порядка, которые не описать алгоритмически.

Так оно, да не так. Дело в том, что внутри APK-файла есть набор метаданных, котоpые хранят контрольные суммы абсолютно всех файлов пакета, а сами метаданные подписаны ключом разработчика. Если изменить приложение и вновь его запаковать, метаданные пакета изменятся и пакет придется подписывать заново. А так как твоего ключа разработчика у реверсера нет и быть не может, он использует либо случайно сгенерированный, либо так нaзываемый тестовый ключ.

Сам Android такое приложение спокойно проглотит (он не держит базу всех цифровых подписей всех возможных Android-разработчиков), но у нас-то есть своя цифровая подпись, и мы можем ее сверить!

[ad name=»Responbl»]

Способ 2: APK Downloader

Если у вас есть доступ к Google Play с компьютера, то можно воспользоваться сервисом APK Downloader. От вас потребуется только указать адрес страницы из Google Play и нажать кнопку «Generate Download Link». Сервис самостоятельно скачает соответствующий файл и выдаст вам прямую ссылку для загрузки. Процесс может занять несколько минут в зависимости от размера программы. С платными приложениями такой фокус, конечно, не пройдёт.

Спасибо за внимание. Надеюсь, что было полезно!

Хотите больше постов? Узнавать новости технологий? Читать обзоры на гаджеты? Для всего этого, а также для продвижения сайта, покупки нового дизайна и оплаты хостинга, мне необходима помощь от вас, преданные и благодарные читатели. Подробнее о донатах читайте на специальной странице.

Есть возможность стать патроном, чтобы ежемесячно поддерживать блог донатом, или воспользоваться , WebMoney, QIWI или PayPal:

Заранее спасибо! Все собранные средства будут пущены на развитие сайта. Поддержка проекта является подарком владельцу сайта.

Как пользоваться SmartApkTool

Прежде всего вам надо установить и настроить Java JDK и Apktool как указано выше.

Откройте программу SmartApkTool

Как пользоваться SmartApkTool

Если Вам необходимо Декомпилировать приложение в SmartApkTool, то выберите данный пункт и необходимое приложение

Если компилировать, то

и выбрать файл в проекте

Как пользоваться SmartApkTool

Для подписи приложения APK, нажать обзор, выбрать приложение и подписать

Все так легко и просто!

Альтернативный вариант

Как пользоваться SmartApkTool

Для тех кому не понравился SmartApkTool, есть альтернатива Android MultiTool

Источник

Как пользоваться SmartApkTool

Как бороться с APK экстрактором

У меня есть это приложение разработано и выпущено для пользователей через USB. Но я хочу, чтобы они не извлекали APK и не устанавливали его на другие телефоны.

В настоящее время у меня есть проверка подписи подписи APK, когда приложение запускается и предотвращает его запуск, если оно не соответствует моему. Но это не останавливает эти приложения APK extractor, например, этот. &hl=ru

Я проверил извлеченный APK и он имеет ту же подпись, что и мой оригинал! Есть ли другие способы остановить это?

Мое приложение является автономным приложением, поэтому у него нет сервера для разговора to…Thanks!

android apk

Источник FiniteElement14 мая 2020 в 18:29

2 Ответа

Отказ от ответственности! Вы не можете защитить свое приложение 100%, но вы можете попробовать следующие способы:

Лицензирование Google Play и библиотека проверки лицензий (LVL) эта служба позволяет приложению запрашивать сервер лицензирования Google Play, чтобы определить, записано ли текущее устройство в качестве покупателя.

Дополнительная информация

Обфускация устраняет все шансы обратного проектирования, которое является способом создания apk из вашего приложения.

Дополнительная информация

ЗАЩИТА ОТ КОПИРОВАНИЯ

Несмотря на то, что на некоторых платформах (в первую очередь Android) лицензирование было заменено, защита от копирования является простым способом отражения более поверхностных попыток пиратства.

Управление цифровыми правами (DRM) может быть встроено в само приложение, быть частью магазина приложений, в который оно загружено (например, Amazon DRM), или приобретено как часть платной услуги DRM третьей стороны.

blast king14 мая 2020 в 19:01 0

В общем случае вы не можете предотвратить извлечение вашего приложения с устройства. Кроме того, любой из ваших пользователей может просто загрузить полученный файл APK где-то в сети.

Таким образом, вы можете защитить свое приложение только от использования «the wrong people». Я вижу два возможных решения для этого:

Вы знаете принцип работы многих условно-бесплатных программ: После установки приложения требуется ввести лицензионный код, который его активирует. Лицензионный код генерируется вами после получения какого-то отпечатка пальца устройства, и приложение проверяет, действительна ли лицензия для этого конкретного устройства.

Это потребует создания уникальных файлов APK для каждого вашего законного пользователя.

Robert14 мая 2020 в 19:01