Приложение содержит код для обхода. Защита Андроид приложения от отладки

Приложение содержит код для обхода. Защита Андроид приложения от отладки

10.04.2024


Вот одно из лучших решений по получению Root прав на смартфонах и планшетах без использования компьютера. Сегодня данной программой получил Root права на своем тестовом смарте Самсунг Галакси Нексус и китайском планшете Фрилендер. Одним из плюсов конкретно данной версии программы от китайских разработчиков является то, что интерфейс программы полностью переведен на русский язык. О том как получать рут права читайте инструкцию ниже.

Моя видео инструкция по получению Root прав через Baidu Root

1. Скачиваем приложение Baidu Root: и устанавливаем его на свой аппарат.
(Внимание!!! При установке ведроид может Вам написать что приложение "Содержит код для обхода защиты Android ". Ставим галку и нажимаем "Все равно установить "). Поле установки запускаем программу и видим соглашение от автора на китайском языке. Нажимаем кнопку Принять , как показано ниже.

2. Если у Вас подключен интернет и на текущий момент времени и программа нашла обновленную версию на своем сервере, то Вам будет предложено обновить версию программы до актуальной. Я бы поступил так. Пока что нажал Отменить и попробовал получить root [а если рут бы не был получен, то тогда снова перезапустил бы программу и обновил ее, а затем опять попробовал бы получить рут. (Ниже я обрисую ту же схему только с родным китайским интерфейсом программы, для понимания как действовать если у Вас все на китайском.) ].

3. Теперь нажимаем кнопку "Получить рут " и ждем завершения работы программа. На моем нексусе она работала около 1 минуты, на планшете фрилендер чуть дольше.

Вуаля. Видим что root права получены.

А теперь как и обещал выше выложу не большой мануал по получению тех же Root прав но с тем расчетом что интерфейс программы Baidu Root полностью на китайском языке.

1. Поле установки запускаем программу и видим соглашение от автора на китайском языке. Нажимаем правую кнопку обведенную на картинке ниже.

2. Если у Вас подключен интернет и на текущий момент времени и программа нашла обновленную версию на своем сервере, то Вам будет предложено обновить версию программы до актуальной. Чтобы обновить версию нажмите правую кнопку, чтобы не обновлять - левую . Обычно китайский интерфейс бывает уже после обновления.

3. Теперь нажимаем на синюю кнопку (я обвел ее на картинке) и ждем завершения работы программа.

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

Защитить приложение сложно, но можно. Во-первых, стоит сразу отказаться от модели распространения Pro/Lite . Приложение очень легко вытащить со смaртфона, поэтому вору будет достаточно один раз купить приложение, и дальше его можно распространять as is. Во-вторых, необходимо позаботиться о защите кода от реверса . Декомпиляция Java-кода - дело простое, а изменение бинарного кода не требует каких-то особых навыков или инструментов. В-третьих, нужно сделать так, чтобы в случае даже успешного взлома приложение просто не стало работать. Тогда взломщику придется решать сразу две задачи: взломать приложение и заставить взломанную версию работать.

Итак, отказываемся от Pro-версии и начинаем борьбу.

Скрываем и запутываем код

Лучший способ защиты кода приложения от реверса - это обфускация , другими слoвами - запутывание байт-кода так, чтобы реверсеру было невыносимо трудно в нем разобраться. Существует несколько инструментов, способных это сделать. Наиболее простой, но все же эффективный есть в составе Android Studio. Это ProGuard .

Для его активации достаточно добавить в раздел android → buildTypes → release файла build.gradle строку minifyEnabled true:

android {

. . .

buildTypes {

release {

minifyEnabled true

. . .

После этого Android Studio начнет пропускать все «релизные» сборки через ProGuard. В результате приложение станет компактнее (благодаря удaлению неиспользуемого кода), а также получит некоторый уровень защиты от реверса. «Некоторый» в том смысле, что ProGuard заменит имена всех внутренних классов, методов и полей на одно-двухбуквенные сочетания. Это действительно существенно затруднит понимание декомпилированного/дизассемблированного кода.


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

Зашифровать строки можно разными способами, например используя инструменты Stringer или DexGuard . Преимущество: полностью автоматизированная модификация уже имеющегося кода с целью внедрения шифрования строк. Недостаток: цена, которая доступна компаниям, но слишком высока для независимого разработчика.

Поэтому мы попробуем обойтись своими силами. В простейшем случае шифрование строк средствами Java выполняется так:

public static byte encryptString (String message , SecretKey secret ) throws Exception {

Cipher cipher = null ;

cipher .init (Cipher .ENCRYPT_MODE , secret ) ;

return cipher .doFinal (message .getBytes ("UTF-8" ) ) ;

А расшифровка - так:

public static String decryptString (byte cipherText , SecretKey secret ) throws Exception {

Cipher cipher = null ;

cipher = Cipher .getInstance ("AES/ECB/PKCS5Padding" ) ;

cipher .init (Cipher .DECRYPT_MODE , secret ) ;

return new String (cipher .doFinal (cipherText ) , "UTF-8" ) ;

Для генерации ключа достаточно одной строки:

public static SecretKey generateKey (String password ) throws Exception {

return secret = new SecretKeySpec (password .getBytes () , "AES" ) ;

Смысл в том, чтобы написать простенькое настольное/мобильное приложение на Java, которое возьмет на вход все твои строки и выдаст на выходе их зашифрованные варианты. Далее ты вставляешь эти строки в основное приложение вместо оригинaльных и в местах, где происходит к ним обращение, вызываешь функцию decryptString() .

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

Можно пойти еще дальше и воспользоваться одним из инструментов комплексной защиты Android-приложений, например AppSolid . Стоит оно опять же дорого, но позволяет зашифровать все приложение целиком. Это действительно способно отпугнуть мнoгих реверсеров, однако есть ряд инструментов, в том числе платный Java-декомпилятор JEB , который умеет снимать такую защиту в автоматическом режиме.

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

Ну и последнее: из кода необxодимо обязательно удалить (закомментировать) все обращения к логгеру, то есть все вызовы Log.d() , Log.v() и так далее. Иначе взломщик сможет использовать эту информацию, чтобы понять логику работы приложения.

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

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

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

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

Сверяем цифровую подпись

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

Для начала вставь слeдующий кусок кода в приложение (чем глубже ты его запрячешь, тем лучше):

public static String getSignature (Context context ) {

String apkSignature = null ;

try {

PackageInfo packageInfo = context .getPackageManager () .getPackageInfo (

context .getPackageName () ,

PackageManager .GET_SIGNATURES

for (Signature signature : packageInfo .signatures ) {

MessageDigest md = MessageDigest .getInstance ("SHA" ) ;

md .update (signature .toByteArray () ) ;

apkSignature = Base64 .encodeToString (md .digest () , Base64 .DEFAULT ) ;

Log .e ("DEBUG" , "SIGNATURE: " + apkSignature ) ;

} catch (Exception e ) { }

return apkSignature ;

Собери, запусти приложение и посмотри лог исполнения. Там ты увидишь строку SIGNATURE: 478uEnKQV+fMQT8Dy4AKvHkYibo=. Это и есть хеш. Его необходимо не просто запомнить, а поместить в код приложения в виде константы, например под именем SIGNATURE. Теперь убери строку Log.e… из кода и добавь следующий метод:

public static boolean checkSignature (Context context ) {

return SIGNATURE .equals (getSignature (context ) ) ;

Он как раз и будет сверять сохраненный хеш с хешем ключа, которым в данный момент подписано приложение. Функция возвращает true, если цифровая подпись твоя (приложение не было пересобрано), и false - если оно подверглось модификации. Что делать во втором случае - решать тебе. Ты можешь просто завершить приложение с помощью os.exit(0) либо «уронить» его, например вызвав метод неинициaлизированного объекта или обратившись к несуществующему значению массива.

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


Проверяем источник установки

Еще один метод защиты - выяснить, откуда было установлено приложение. Тут логика простая: если источник установки - Play Store, то все нормально, это оригинальное неперепакованнoе приложение. Если нет - варез, скачанный с форума и установленный с карты памяти или из «черного маркета».

Выяснить, откуда было установлено приложение, можно в одну строку, а сама функция, делающая это, может выглядеть так:

public static boolean checkInstaller (Context context ) {

final String installer = context .getPackageManager () .getInstallerPackageName (context .getPackageName () ) ;

return installer != null & amp ; amp ; & amp ; amp ; installer .startsWith ("com.android.vending" ) ;

Как обычно: true - все нормально, false - Хьюстон, у нас проблемы.

Определяем эмулятор

Некоторые методы реверса приложений предполагают использование эмулятора. Поэтому нелишним будет внести в приложение код, проверяющий, не запущено ли оно в виртуальной среде. Сделать это можно, пpочитав значение некоторых системных переменных. Например, стандартный эмулятор Android Studio устанавливает такие переменные и значения:

ro .hardware = goldfish

ro .kernel .qemu = 1

ro .product .model = sdk

Поэтому, прочитав значения этих переменных, можно предположить, что код исполняется в эмуляторе:

public static boolean checkEmulator () {

try {

boolean goldfish = getSystemProperty ("ro.hardware" ) .contains ("goldfish" ) ;

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

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

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

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

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

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

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

  • Надеюсь, вам помогла данная статья, и вы нашли информацию как установить заблокированные приложения на андроиде из неизвестных источников .
  • Большая просьба оказывать взаимную помощь и делиться полезными советами.
  • Спасибо за отзывчивость, взаимную помощь и полезные советы!!!


06-08-2019
00 час. 48 мин.
Сообщение:
Привет всё описанное вами по теме "На андроид при установке приложений и игр выскакивает сообщение, что на устройстве заблокирована установка из неизвестных источников." прочитал рекомендации д

13-06-2019
09 час. 19 мин.
Сообщение:
Как удалить администратора?

06-01-2018
18 час. 24 мин.
Сообщение:
Спасибо! Ну у меня проблема, можете подсказать что делать если пишут:Ошибка при синтаксическом анализе пакета. Что делать?

02-01-2018
15 час. 46 мин.
Сообщение:
Помогите телефон заблокировал установку приложения не из плэй маркита.скачал из хрома нажимаю открыть но не устанавливает

18-12-2017
11 час. 11 мин.
Сообщение:
Привет всё описанное вами по теме "На андроид при установке приложений и игр выскакивает сообщение, что на устройстве заблокирована установка из неизвестных источников." прочитал рекомендации делал а результат тот же

31-10-2017
23 час. 05 мин.
Сообщение:
фишка в том, что мой LG L70 не даёт и птичку поставить для снятия запрета...

26-09-2017
00 час. 27 мин.
Сообщение:
Я не могу нажать на галочку,когда я нажала на галочку, у меня не включалось

11-09-2017
03 час. 37 мин.
Сообщение:
А можно написать статью так: Перед установкой приложений или игр заходим в настройки Android и ищем пункт безопасность, далее находим пункт неизвестные источники и устанавливаем напротив галочку. .. и жизнь становится длинее.. без ваших соплей в 6 абзацев.

28-03-2017
20 час. 06 мин.
Сообщение:
У меня стоит галочка напротив "Установка ПО из неизв. источников", но все равно телефон блокирует установку. Телефон Meizu Note3. Это нормально? Раньше дело с Meizu не имел.

17-12-2016
20 час. 52 мин.
Сообщение:
А у меня другая беда постоянно ставится самовольно через 15-30 мин галочка на этот пункт с неизвестный источник. Что я не делал - отКат до заводских настроек, антивирусные программы устанавливал, а оно все ставит и ставит птичку. Помогите!

05-12-2016
22 час. 52 мин.
Сообщение:
София попробуйте удалить приложение через настойки и приложения там можно отключить или полностью удалить.

05-12-2016
22 час. 05 мин.
Сообщение:
Помогите! Скачала игру с неизвестного источника теперь не могу удалить ((

31-10-2016
21 час. 47 мин.
Сообщение:
Есть проблема,связанная с тем,что (из-за похоже кривой прошивки),у меня нет доступа ко вкладке "Безопасность" в настройках. После входа в эту вкладку,Выбрасывает на раб. стол,с сообщением в роде "Приложение "Настройки" не отвечает. Как я могу НЕ через настройки активировать установку "левых" приложений?

Получение рут-прав на Андроид без использования ПК и необходимости прибегать к использованию сложных для освоения программных инструментов – вполне доступная возможность. В этой статье мы расскажем, как получить права Суперпользователя всего за два простых шага с помощью приложения Framaroot для Android.

Главным преимуществом описываемого метода получения рут-прав, в первую очередь, является его простота, а также короткое время, в течение которого можно провести этот процесс. Выполняем инструкцию, но сначала — важное предупреждение.

Важно! Описанные ниже манипуляции несут в себе определенные риски! Каждое действие, в том числе выполнение нижеизложенных инструкций, пользователь осуществляет на свой страх и риск. Администрация ресурса за возможные негативные последствия ответственности не несет.

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

Шаг 2: Получение рут-прав

Как и установка, получение рут-прав с помощью Фрамарут не потребует множества действий. Просто выполняем следующее.


Вот одно из лучших решений по получению Root прав на смартфонах и планшетах без использования компьютера. Сегодня данной программой получил Root права на своем тестовом смарте Самсунг Галакси Нексус и китайском планшете Фрилендер. Одним из плюсов конкретно данной версии программы от китайских разработчиков является то, что интерфейс программы полностью переведен на русский язык. О том как получать рут права читайте инструкцию ниже.

1. Скачиваем приложение Baidu и устанавливаем его на свой аппарат.
(Внимание!!! При установке андроид может Вам написать что приложение "Содержит код для обхода защиты Android". Ставим галку и нажимаем "Все равно установить"). Поле установки запускаем программу и видим соглашение от автора на китайском языке. Нажимаем кнопку Принять, как показано ниже.


2. Если у Вас подключен интернет и на текущий момент времени и программа нашла обновленную версию на своем сервере, то Вам будет предложено обновить версию программы до актуальной. Я бы поступил так. Пока что нажал Отменить и попробовал получить root [а если рут бы не был получен, то тогда снова перезапустил бы программу и обновил ее, а затем опять попробовал бы получить рут. (Ниже я обрисую ту же схему только с родным китайским интерфейсом программы, для понимания как действовать если у Вас все на китайском)

3. Теперь нажимаем кнопку "Получить рут" и ждем завершения работы программа. На моем нексусе она работала около 1 минуты, на планшете фрилендер чуть дольше.

Вуаля. Видим что root права получены.

А теперь как и обещал выше выложу не большой мануал по получению тех же Root прав но с тем расчетом что интерфейс программы Baidu Root полностью на китайском языке:

1. Поле установки запускаем программу и видим соглашение от автора на китайском языке. Нажимаем правую кнопку обведенную на картинке ниже.

2. Если у Вас подключен интернет и на текущий момент времени и программа нашла обновленную версию на своем сервере, то Вам будет предложено обновить версию программы до актуальной. Чтобы обновить версию нажмите правую кнопку, чтобы не обновлять - левую. Обычно китайский интерфейс бывает уже после обновления.

© 2024 dhmoscow.ru - Компьютер надо изучать