Size: a a a

Android NDK (C++) — русскоговорящее сообщество

2019 December 17

o

oles in Android NDK (C++) — русскоговорящее сообщество
Там основной смысл само приложение спрятать от посторонних глаз
источник

EB

Evgen Bodunov in Android NDK (C++) — русскоговорящее сообщество
Max
Большое спасибо! Это как раз то что нужно. Компилятор оставил только те функции, которые экспортируются. =)
Флаг -fvisibility=hidden
Ну вот и славно.
источник

M

Max in Android NDK (C++) — русскоговорящее сообщество
oles
Там основной смысл само приложение спрятать от посторонних глаз
Но по факту получается, что никакой защиты нет. Человек может купить игру и выложить apk с obb на тот же 4pda, например.
источник

DD

Denis Dodonov in Android NDK (C++) — русскоговорящее сообщество
Max
Но по факту получается, что никакой защиты нет. Человек может купить игру и выложить apk с obb на тот же 4pda, например.
Ну и ничего с этим не поделать. Можно сервер только поднять для валидации и проверять на нём, как я понимаю.
источник

EB

Evgen Bodunov in Android NDK (C++) — русскоговорящее сообщество
источник

M

Max in Android NDK (C++) — русскоговорящее сообщество
Да, знаю про эту библиотеку. Как я понял, эта проверка требует подключения к интернету. А для приложений, которым не требуется интернет для работы, проверку лучше делать один раз при первом запуске. Везде пишут, что она не очень надёжная. Java код легко декомпилируется. А любая проверка сводится к if else.
источник

M

Max in Android NDK (C++) — русскоговорящее сообщество
В одной статье на хабре я прочитал, что можно проверить сертификат приложения:
PackageInfo info =getPackageManager().getPackageInfo(getPackageName(), 0);
Signature[] signatures = info.signatures;
источник

M

Max in Android NDK (C++) — русскоговорящее сообщество
Вот она habr.com/ru/post/179487
И вот такие вопросы возникли. Может ли такой способ проверки защитить от модификации apk? Возможно ли подписать пересобранное приложение таким образом, чтобы информация в info.signatures была идентична той, что в оригинальном?
источник

o

oles in Android NDK (C++) — русскоговорящее сообщество
Max
Вот она habr.com/ru/post/179487
И вот такие вопросы возникли. Может ли такой способ проверки защитить от модификации apk? Возможно ли подписать пересобранное приложение таким образом, чтобы информация в info.signatures была идентична той, что в оригинальном?
Гораздо проще запатчить взломанное приложение так чтобы проверка всегда была успешной либо совсем не работала
источник

o

oles in Android NDK (C++) — русскоговорящее сообщество
Хотя возможны варианты
источник
2019 December 18

EB

Evgen Bodunov in Android NDK (C++) — русскоговорящее сообщество
Серебряной пули нет.
источник

EB

Evgen Bodunov in Android NDK (C++) — русскоговорящее сообщество
Но, первые 20% усилий, дадут 80% результата. Автоматические тулзы уже взломать не смогут. Надо будет руками лезть ковырять. А это не всем надо.
источник

EB

Evgen Bodunov in Android NDK (C++) — русскоговорящее сообщество
Можно рассматривать защиту от взлома и следующим образом. Что те кто скачали бесплатно и им понравится - потом может быть скачают за деньги или расскажут друзьям о игре, которая им понравилась. Так что надо не упустить социальный момент.
источник

SG

Sergii Gudym in Android NDK (C++) — русскоговорящее сообщество
Evgen Bodunov
Но, первые 20% усилий, дадут 80% результата. Автоматические тулзы уже взломать не смогут. Надо будет руками лезть ковырять. А это не всем надо.
Ну что в статье описано покрывает намного больше чем 80 процентов. А работы не так много. Там даже без автотулов будет довольно геморно разобраться.
источник

SG

Sergii Gudym in Android NDK (C++) — русскоговорящее сообщество
Кстати не проверял, а источник установки что выдаст при банальном копировании? Нал или возьмёт тот же источник что и при первичной установки?
источник

M

Max in Android NDK (C++) — русскоговорящее сообщество
Sergii Gudym
Ну что в статье описано покрывает намного больше чем 80 процентов. А работы не так много. Там даже без автотулов будет довольно геморно разобраться.
Я бы так не сказал. Я уже писал выше, что любая проверка сводится к if else (возможно, можно что-то другое придумать, но в байт-коде всё равно будет выполняться банальная проверка - cmp там или ещё что).
Кстати, в комментариях на это указали:
>В этом случае поправить переход не менее элементарно, чем декомпилировать байт-код java.
источник

M

Max in Android NDK (C++) — русскоговорящее сообщество
Ну и, конечно же, нужно покрывать обращения к классам java xor-ом или чем-то ещё. И желательно использовать разные алгоритмы для каждой строки.
источник

M

Max in Android NDK (C++) — русскоговорящее сообщество
Sergii Gudym
Кстати не проверял, а источник установки что выдаст при банальном копировании? Нал или возьмёт тот же источник что и при первичной установки?
Если ты про такую проверку, то она должна работать. Но я где-то читал, что возможны ситуации, когда купленное приложение либо ничего не будет возвращать, либо что-то другое.
источник

M

Max in Android NDK (C++) — русскоговорящее сообщество
Если ты про такую проверку, то она должна работать. Но я где-то читал, что возможны ситуации, когда купленное приложение либо ничего не будет возвращать, либо что-то другое.
источник

M

Max in Android NDK (C++) — русскоговорящее сообщество
И вот ещё что писали:
>Если вы используете ява функции для получения критичных данных, то весь скилл состоит в подкладывании модифицированного ява класса из сорсов андроида. Работы на пару минут времени, увы.
источник