Защита от декомпиляции apk: Как защитить свое приложение для Android от реверса и дебага — «Хакер»

Содержание

Как сделать apk Secure. Защита от декомпиляции Oh! Android

В принципе, существует 5 методов защиты APK от взлома / реверсирования / переупаковки:

1. Изолировать программу Java

Самый простой способ – сделать пользователей неспособными получить доступ к программе Java Class. Это самый фундаментальный способ, и он имеет множество конкретных способов достижения этого. Например, разработчики могут размещать ключевой Java-класс на сервере, клиенты приобретают сервисы путем доступа к соответствующим интерфейсам сервера, а не напрямую к файлу класса. Таким образом, хакеры не могут декомпилировать файлы Class. В настоящее время все больше и больше стандартов и протоколов предоставляются через интерфейсы, такие как HTTP, Web Service, RPC и т. Д. Но для этой защиты не существует много приложений. Например, Java-программы в автономных программах не могут изолировать.

2. Шифровать файлы классов

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

Разработчики часто загружают криптографические классы через собственный класс ClassLoader (апплет не поддерживает настроенный ClassLoader из-за безопасности). Пользовательский ClassLoader сначала найдет криптографические классы, а затем расшифрует их. И, наконец, загрузка расшифрованных классов в JVM. Customed ClassLoader – очень важный класс в этом методе защиты. Поскольку он сам не зашифрован, он может стать первой целью хакера. Если соответствующий ключ и алгоритм дешифрования были преодолены, то зашифрованные классы могут быть легко дешифрованы.

3. Преобразование в родные коды

Преобразование программы в собственные коды также является эффективным способом предотвращения декомпиляции. Поскольку родные коды часто трудно декомпилировать. Разработчики могут конвертировать все приложение в собственные коды или могут также конвертировать только ключевые модули. Если вы просто конвертируете ключевую часть модулей, для вызова этой программы потребуется использовать технологию JNI, когда Java-программы используют эти модули. Он отказался от кросс-платформенной функции Java при использовании этого mothod для защиты программ Java. Для разных платформ нам необходимо поддерживать разные версии собственных кодов, что увеличит нагрузку на программное обеспечение и нагрузку на обслуживание. Но для некоторых ключевых модулей иногда это решение часто необходимо. Чтобы гарантировать, что эти родные коды не будут изменены или заменены, разработчикам часто необходимо подписать эти коды в цифровой форме. Прежде чем использовать эти собственные коды, разработчикам часто требуется аутентифицировать эти локальные коды, чтобы гарантировать, что эти коды не были изменены хакерами. Если проверка подписи передается, то разработчики могут вызывать соответствующие методы JNI.

4. Обфускация кода

Обфускация кода заключается в реорганизации и обработке файла класса, заставляя обработанные коды выполнять ту же функцию (семантику) с необработанными кодами. Но сфабрикованные коды трудно декомпилировать, т. Е. Декомпилированные коды очень трудно понять, поэтому декомпилировать сотрудников сложно понять истинную семантику. Теоретически, если у хакеров достаточно времени, запутанные коды все еще могут быть взломаны. Даже некоторые люди разрабатывают де-обфускационный инструмент. Но из реальной ситуации, поскольку диверсифицированное развитие обфускации, зрелая теория обфускации, запутанные коды Java, вполне могут предотвратить декомпиляцию.

5. Онлайн-шифрование

APK Protect был онлайн-сайтом шифрования для APK, но активность, по-видимому, была прекращена с 2013 года или около того. Он обеспечивал защиту Java-кодов и защиту кода C ++ для достижения эффектов отладки и декомпиляции.

Первоначально я предложил вам использовать этот последний метод, чтобы он мог сэкономить вам больше времени. Основываясь на моем опыте, было очень просто работать, и это не займет много времени.

Если это секретная информация, которая не должна попадать в руки ваших пользователей, вы не можете ее защитить. В принципе невозможно поместить информацию на устройство (код или данные) и получить доступ к вашему приложению, но не разрешать кому-либо с устройством иметь доступ к этой информации.

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

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

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

Если есть фрагменты кода, которые необходимо защитить, на самом деле нет хорошего способа его обеспечить. Все, что вы можете использовать для ограниченного количества прецедентов, – это создать зависимость от онлайн-сервиса и защитить сервер. Но для многих приложений это не вариант.

Защита мобильного приложения Android

Защита мобильного приложения (особенно для Android) – один из наиважнейших этапов его разработки. Без принятия должных мер в Сети сможет быстро появиться его взломанная копия, в которой, например, будет отключена реклама и/или верификация через социальные сервисы. Но главная опасность – пират сумеет произвести декомпиляцию приложения чтобы узнать его изнутри и воссоздать аналогичное. Существует целый ряд мер, направленных на защиту программы. То, какие именно нужно использовать, зависит от специфики проекта.

Способы предотвращения взлома приложения

Мы предлагаем вашему вниманию 9 хитростей, которыми пользуется наша компания для защиты информации.

1. Предотвращение декомпиляции

Получение исходного кода незащищенного приложения для Android – не проблема для опытного разработчика. Для этого достаточно преобразовать в jar dex файлы, а затем извлечь из них source-code, который легко читается. Предотвратить это возможно при помощи специальных инструментов: JAD, JD-GUI и dex2jar. Но следует понимать, что полностью защитить приложение от реверс-инжиринга нельзя. Возможно только усложнить пирату задачу настолько, чтобы ему было не выгодно заниматься взломом.

Обфускация кода для предотвращения его изучения

Компания Appomart, чтобы снизить к минимуму вероятность взлома программ, используется инструмент ProGuard. Он умеет многое, но главное – способен обфусцировать код, то есть запутывает его так, чтобы взломщику было тяжело разобраться что к чему. Принцип работы данного инструмента следующий: — поиск неиспользуемых блоков кода с их последующим удалением; — анализ байт-кода методов с его последующей оптимизацией; — ренейминг названий переменных, классов, методов и пр. Первые две процедуры оптимизируют код, а третья – затрудняет его чтение.

Написание некоторых модулей программы на C/C++

Чтобы увеличить защиту данных, которые обязательно должны храниться на клиентском устройстве, Appomant использует NDK. С его помощью возможно вынести часть кода в .so-файлы. Он, в свою очередь, пишется на C или C++. Результаты декомпиляции/дизассемблирования такого кода получаются трудно читабельными, что сводит к минимуму вероятность их несанкционированного использования в других проектах.

2. Перенос части приложения на сервер

Один из эффективнейших способов защиты приложения – перенос критически важной части программы на сервер – например, уникальных алгоритмов. В этом случае важные данные будут сохранены от взлома за счет того, что проникновение на правильно сконфигурированный сервер – задача крайне сложная.

3. Применение шифрования

Если приложение передает данные на сервер, то следует применять SSL. Однако к его использованию необходимо подходить ответственно. По нашим данным, около 40% всех применяющих SSL приложений, уязвимы к атаке «человек по середине».

4. Хранение важных пользовательских данных в обработанном виде

Хранить важную пользовательскую информацию (например, сведения о состоянии баланса) в открытом виде – плохая идея. Лучше ее обрабатывать по специальному алгоритму, что мы и делаем.

5. Работа с учетными данными

Чтобы приложение было защищено, нужно отказаться от хранения пароля на устройстве пользователя (для постоянного логина лучше использовать объект Credential). Также важно в приложении минимизировать количество запросов учетных данных.

6. Ответственное использование API-ключей

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

7. Использование надежных хэш-функций

Еще один важный нюанс, от которого зависит безопасность приложения – использование надежной хэш-функции. На текущий момент таковой является SHA-2. Другие, например, MD2, MD5 и SHA1 имеют известные уязвимости из-за которых обработанная конфиденциальная информация (например, пароли) может быть скомпрометирована. Здесь важно, чтобы хэш-функция была не только стойкой, но еще и достаточно медленной – это усложняет перебор. К таковым, в частности, относятся: scrypt, bcrypt и PBKDF2.

8. Предотвращение использование недопустимых аргументов

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

9. Запрет на установку данных на внешний накопитель

Когда пользователь подключает устройство к компьютеру в качестве USB-накопителя, открывается полный доступ к файлам, находящиеся на карте памяти. Кроме этого, после удаления приложения информация, записанная им на MicroSD, может на ней остаться. Это, в свою очередь, способно привести к компрометации конфиденциальных данных. Мы применяем SQLite, чтобы исключить ущерб от хранения критично важной информации на внешних накопителях. Несмотря на то, что вышеприведенные меры не гарантируют полной безопасности, они сводят к минимуму вероятность взлома. Поэтому обязательно включайте в техническое задание (узнать о нем можно на странице: Разработка технической документации для мобильноо приложения) требования, касающиеся защиты приложения. Если вы хотите заказать Android приложение, свяжитесь с нами по телефону или другим удобным для вас способом.

Все контакты указаны на странице: https://appomart.com/contacts.

Как сделать apk Secure. Защита от декомпиляции – 7 Ответов

В принципе, существует 5 способов защитить APK от взлома/реверсирования/переупаковки:

1. Изолировать программу Java

Самый простой способ — сделать пользователей неспособными получить доступ к программе Java Class. Это самый фундаментальный способ, и он имеет множество конкретных способов достижения этого. Например, разработчики могут размещать ключевой Java-класс на сервере, клиенты приобретают сервисы путем доступа к соответствующим интерфейсам сервера, а не напрямую к файлу класса. Таким образом, хакеры не могут декомпилировать файлы Class. В настоящее время все больше и больше стандартов и протоколов предоставляются через интерфейсы, такие как HTTP, веб-сервис, RPC и т.д. Но для этой защиты не подходит множество приложений. Например, Java-программы в автономных программах не могут изолировать.

2. Шифровать файлы классов

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

Разработчики часто загружают криптографические классы через собственный класс ClassLoader (апплет не поддерживает настраиваемый ClassLoader из-за безопасности). Пользовательский ClassLoader сначала найдет криптографические классы, а затем расшифрует их. И, наконец, загрузка расшифрованных классов в JVM. Customed ClassLoader — очень важный класс в этом методе защиты. Поскольку он сам не зашифрован, он может быть первой целью хакера. Если соответствующий ключ и алгоритм дешифрования были преодолены, то зашифрованные классы могут быть легко дешифрованы.

3. Преобразование в исходные коды

Преобразование программы в собственные коды также является эффективным способом предотвращения декомпиляции. Поскольку нативные коды часто трудно декомпилировать. Разработчики могут конвертировать все приложение в собственные коды или могут также конвертировать только ключевые модули. Если вы просто конвертируете ключевую часть модулей, ей потребуется технология JNI для вызова, когда Java-программы используют эти модули. Он отказался от межплатформенной функции Java при использовании этого mothod для защиты программ Java. Для разных платформ нам необходимо поддерживать разные версии собственных кодов, что увеличит объем поддержки программного обеспечения и обслуживания. Но для некоторых ключевых модулей иногда это решение часто необходимо. Чтобы гарантировать, что эти внутренние коды не будут изменены или заменены, разработчикам часто необходимо подписать эти коды в цифровой форме. Прежде чем использовать эти собственные коды, разработчикам часто требуется аутентифицировать эти локальные коды, чтобы гарантировать, что эти коды не были изменены хакерами. Если проверка подписи передается, разработчики могут вызывать соответствующие методы JNI.

4. Обфускация кода

Обфускация кода заключается в реорганизации и обработке файла класса, заставляя обработанные коды выполнять ту же функцию (семантику) с необработанными кодами. Но сфабрикованные коды трудно декомпилировать, т.е. Декомпилированные коды очень трудно понять, поэтому декомпилировать сотрудников сложно понять истинную семантику. Теоретически, если хакеры имеют достаточно времени, запутанные коды все еще могут быть взломаны. Даже некоторые люди развивают де-обфускационный инструмент. Но из реальной ситуации, поскольку диверсифицированное развитие обфускации, зрелая теория обфускации, запутанные коды Java, вполне могут предотвратить декомпиляцию.

5. Онлайн-шифрование

APK Protect был онлайн-сайтом шифрования для APK, но активность, по-видимому, была прекращена с 2013 года или около того. Он обеспечивал защиту Java-кодов и защиту кода С++ для достижения эффектов отладки и декомпиляции.

Я изначально предложил вам использовать этот последний метод, чтобы он мог сэкономить вам больше времени. Основываясь на моем опыте, было очень просто работать, и это не займет много времени.

Как сделать apk безопасным. Защита от декомпиляции — android

В принципе, есть 5 способов защитить ваш APK от cracking/ reversing/ переупаковки:

1. Изолировать Программу Java

Самый простой способ — сделать так, чтобы пользователи не могли получить доступ к программе класса Java. Это самый фундаментальный путь, и он имеет множество конкретных способов для достижения этой цели. Например, разработчики могут разместить класс key Java на сервере, а клиенты получают услуги путем доступа к соответствующим интерфейсам сервера, а не непосредственно к файлу класса. Таким образом, хакеры не могут декомпилировать файлы классов. В настоящее время появляется все больше и больше стандартов, протоколов и услуг, предоставляемых через интерфейсы, такие как HTTP, веб-службы, RPC, и т. д. Но есть масса приложений, не подходящих для этой защиты. Например, Java программ в автономных программах не удается изолировать.

2. Шифрование Файлов Классов

Чтобы предотвратить прямую декомпиляцию файлов классов, многие разработчики шифруют некоторые ключевые файлы классов, такие как регистрационный номер, управление серийными номерами и другие связанные классы. Прежде чем использовать эти зашифрованные классы, программа должна сначала расшифровать эти классы, а затем загрузить эти классы в JVM. Эти классы могут быть расшифрованы аппаратным или программным обеспечением.

Разработчики часто загружают криптографические классы через класс customed ClassLoader (Applet не поддерживает customed ClassLoader из-за безопасности). Customed ClassLoader сначала найдет криптографические классы, а затем расшифрует их. И, наконец, загрузка расшифрованных классов в JVM. Customed ClassLoader является очень важным классом в этом методе защиты. Поскольку он сам по себе не зашифрован, он может быть первой целью хакера. Если соответствующий ключ расшифровки и алгоритм были преодолены, то зашифрованные классы могут быть легко расшифрованы.

3. Преобразование в собственные коды

Преобразование программы в собственные коды также является эффективным способом предотвращения декомпиляции. Потому что машинные коды часто трудно декомпилировать. Разработчики могут конвертировать все приложение в собственные коды, или они также могут конвертировать только ключевые модули. Если просто преобразовать ключевую часть модулей, то потребуется JNI технология для вызова, когда Java программ используют эти модули. Она отказалась от Java кросс-платформенный особенность при использовании данного способ защиты программ Java. Для разных платформ нам необходимо поддерживать разные версии собственных кодов, что увеличит нагрузку на поддержку и обслуживание программного обеспечения. Но для некоторых ключевых модулей, иногда это решение часто необходимо. Чтобы гарантировать, что эти собственные коды не будут изменены или заменены, разработчикам часто приходится подписывать их цифровой подписью. Перед использованием этих собственных кодов разработчикам часто приходится проверять подлинность этих локальных кодов, чтобы убедиться, что эти коды не были изменены хакерами. Если проверка подписи пройдена, то разработчики могут вызвать соответствующие методы JNI.

4. Обфускация Кода

Обфускация кода заключается в том, чтобы повторно организовать и обработать файл класса, заставляя обработанные коды выполнять ту же функцию (семантику), что и необработанные коды. Но запутанные коды трудно декомпилировать, т. е. декомпилированные коды очень трудно понять, поэтому декомпилированные штабы трудно понять реальную семантику. Теоретически, если у хакеров будет достаточно времени, запутанные коды все еще могут быть взломаны. Даже некоторые люди разрабатывают de-obfuscate инструмент. Но из реальной ситуации, так как диверсифицированное развитие обфускации, зрелой теории обфускации, обфускированные коды Java вполне могут предотвратить декомпиляцию.

5. Онлайн-Шифрование

APK Protect был онлайн-сайт шифрования для APK, но деятельность, по-видимому, была прекращена с 2013 года или около того. Он обеспечил защиту кодов Java и C++ для достижения анти-отладки и декомпиляции эффектов.

Я изначально предложил вам использовать этот последний метод, так как он может сэкономить вам больше времени. Исходя из моего опыта, он был очень прост в эксплуатации, и это не займет много времени.

Простой способ модификации Android приложения / Хабр

Бывает после релиза приложения его исходники куда-то деваются. Правда ведь, такое постоянно случается? И ничего не остается кроме как декомпилировать его и подправить несколько сотен строк кода и все это нужно сделать максимально быстро.

Вот и у меня появилась задача модифицировать приложение имея всего лишь его apk. И те, кто занимался декомпиляцией приложений знают насколько тяжело его потом скомпилировать.

Декомпиляция

Для Android’а существуют следующие утилиты:
  • ApkTool для декомпиляции ресурсов.
  • Dex2Jar для преобразования dex в jar.
  • JD-GUI для получения исходников из jar.
  • еще рекомендую JAD, некоторые места лучше декомпилирует чем JD-GUI.

Информации по их использованию в интернете достаточно.

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

На этом можно было и закончить эксперименты с декомпиляцией, но лень двигатель прогресса и родился новый способ.

Переопределение классов

Итак, jar это библиотека, так почему бы просто не подключить ее к новому проекту? Кидаем ее в папку libs, наследуемся от главной активити и компилируем. Все работает, главное чтоб не совпадали имена классов, поэтому названия пакетов должно отличаться иначе как минимум совпадут сгенерированные BuildConfig и R.

Таким способом можно отнаследоваться от Activity, Service, BroadcastReceiver и, возможно, некоторых других классов объявляемых в манифесте, так же в манифесте нужно будет указать новые имена классов, иначе они не будут использоваться.

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

Замена классов

Разархивировав jar библиотеку получим class файлы, это скомпилированные классы, заметим, что при сборке проекта в папке bin/classes лежат те же class файлы, а что если подсунуть туда файлы из библиотеки…

Не все так просто, для начала нужно скомпилировать проект. Чтобы использовать классы исходного приложения нужно его как-то присоединить к проекту, но при этом не экспортировать. Делается это просто: из папки libs Эклипс сам экспортирует библиотеки, поэтому перемещаем jar библиотеку в папку lib и подключаем к проекту, в Эклипсе это Project->Preferences->Java Build Path->Libraries->Add Jars… далее во вкладке Order and Export нужно убедиться, что не установлен чекбокс, потому что экспортировать библиотеку нам не нужно, все будет в class файлах.

Теперь берем какой-нибудь класс из декомпилированных исходников приложения, исправляем в нем ошибки компиляции, добавляем, например, показ диалога, чтоб убедиться, что используется именно новый класс. Далее очищаем проект, в Эклипсе это Project->Clean, копируем class файлы в папку bin/classes, собираем проект и все работает!

При следующих сборках проекта нет необходимости его очищать, так что использовать такой способ достаточно удобно. Для облегчения исправления ошибок после декомпиляции я использовал исходники полученные из JD-GUI и JAD, обычно этого было достаточно.

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

Заключение

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

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

Обновление классов в jar — идея замены классов пришла из этой возможности для jar библиотеки.

Декомпиляция и Компиляция APK приложения Андроид


Декомпиляция и Компиляция APK приложения Андроид. Для того чтобы редактировать APK приложения. Прежде всего их нужно декомпилировать, а после скомпилировать! Как это сделать и чем можно узнать в этом уроке.

В прошлом уроке вы узнали из чего состоят основные внутренности приложения, а также что данные что APK приложения (в дальнейшем просто APK) можно открыть архиватором, но что либо изменить у вас не получиться! Нужна  Декомпиляция APK приложения Android!

Приступим!

Декомпиляция и Компиляция APK приложения Android — Необходимые компоненты

1. Java JDK — среда разработки;

2. ApkTool — программа декомпилятор;

3. ApkTool.bat — bat файл;

4. Sign Android — подпись приложения APK

Установка необходимых компонентов. Настройка Java

После установки Java JDK , необходимо, добавить ее в переменную Windows. Если кто не понял официальное куроводство то,

Скопируйте путь Java JDK:

Перейдите в меню Дополнительные настройки

(Мой) Компьютер ->Свойства системы->Дополнительные параметры системы->Дополнительно->Системные переменные->Правка

Java JDK настроена.

Настройка ApkTool

  1. Создать папку на диске C:\ и в нее переместить файлы apktool_x_x.jar и apktool.bat
  2. Файл apktool_x_x.jar переименовать в apktool.jar

Если появилось наподобие такой вывод информации, то все сделано правильно.

Декомпиляция APK

Чтобы  декомпилировать приложение, скопируйте файл APK приложения в папку где находится apktool, далее необходимо выполнить вот что, в командной строке ввести команду:

apktool d название.apk

Например:

apktool d browser.apk

Декомпиляция APK завершена.

После того как вы отредактируете или русифицируете APK, его надо Компилировать

Компиляция APK

Вводим в командной строке:

apktool b  имя_проекта

После чего перейдите в папку проекта ( в данном случае папка browser) и вы увидете две новые папки:

В папке dist будет находится готовое приложение:

Если папки dist не обнаружили, значит apktool не смог собрать редактируемый проект, причиной тому может быть то, что измения которые вы вносили(«поломали») не позволяют собрать приложение apk.

После компиляции приложения apk его необходимо подписать.


{rutube}99d2d223b27515cdf3de2adfc3c47909{/rutube}


Подпись APK

1. Для этого Вам надо разархивировать архив Sign Android

2. Скопировать готовое приложение в папку с распакованным Sign Android

3. Потянуть приложение на файл Sign_APK.bat после чего приложение будет подписано

Готовое подписанное приложение будет носить название apk_signed.apk

Приложение подписано!

Работа с системными APK

Для того чтобы модифицировать системные приложения необходимо прежде всего необходимо скормить программе APKTOOL системный файл framework -res.apk который находиться в системном разделе Android:

/system/framework/framework -res.apk

Для того чтобы скормить Apktool данный файл необходимо, ввести команду:

apktool if framework -res.apk

Учитывайте что, команду нужно вводить относительно пути расположения, то есть если файл framework -res.apk находиться в папке C:\primer, то команда будет выглядеть следующим обзором:

apktool if  С:\primer\framework -res.apk

Также для того чтобы можно было модифицировать системные файлы прошивка должна быть вначале Deodex-ирована.

Теперь как это можно все упросить! (не использовать командную строку)

Скачайте приложение SmartApkTool, данное программа имеет графический интерфейс и очень легкая в использование.

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

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

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

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

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

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

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

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

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

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


 

android — предотвратить повторную компиляцию APK после декомпиляции

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

декомпиляция android flash apk — qaru Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *