С Новым годом! Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
1

Борьба с халявщиками

11.04.2018, 15:40. Показов 914. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Кто как борется с возвратами платежей в гугл плей? Человек может купить приложение и сделать копию, которую потом установит в обход приложения. Может купить и вернуть через браузер деньги, на телефоне приложение не удалится при этом, как я понял
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.04.2018, 15:40
Ответы с готовыми решениями:

Борьба с IE
Всем привет в браузерах нормально отображается сайт, кроме IE со совместимостью, не весь сайт...

Борьба Со Spam -ом
Выскажитесь кто-как борется с нежелательной почтой по направлениям 1. Концепции борьбы, технологии...

Борьба с session
Прошу Вас вновь помочь с разбором. Немного не понимаю я как избавится от сессии. Делаю я...

Борьба с помехами
Устройства на МК имеют недостаток - влияние помех. В некоторых случаях это может привести к...

14
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
11.04.2018, 15:56  [ТС] 2
Вот печальная статистика. Дело не в приложении, оно топовое
Миниатюры
Борьба с халявщиками   Борьба с халявщиками  
1
Заблокирован
11.04.2018, 16:28 3
Цитата Сообщение от edward_freedom Посмотреть сообщение
Человек может купить приложение и сделать копию
А как вы узнаете о том, что он сделал копию? В вашем приложении есть серверная часть?
0
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
11.04.2018, 21:44  [ТС] 4
student8102, Я не знаю, но такой вариант есть и надо найти решение, как с этим бороться

Добавлено через 5 часов 14 минут
student8102, Серверная часть есть
0
Заблокирован
11.04.2018, 21:54 5
Цитата Сообщение от edward_freedom Посмотреть сообщение
Серверная часть есть
На сколько я знаю, чтобы загрузить приложение из "google play" требуется аккаунт. Вы можете с помощью этих аккаунтов отслеживать какие пользователи купили приложение, а какие вернули? А что за приложение?
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
11.04.2018, 23:21 6
Цитата Сообщение от edward_freedom Посмотреть сообщение
как с этим бороться
Сделать прям супер топовое приложение. Да никак, это чисто гугловская фича (как две недели в магазине), человек мог искать похожее приложение и не найти нужной функции в этом и тому подобные расклады. Всех денег не заработаешь, а юзер всегда прав.
По поводу копии, у гугла есть либа для проверки подлинности приложения, данные о платеже также можно получить/сохранить.
0
+1
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
12.04.2018, 09:53 7
Пусть мое решение не идеальное, но я сделал так.
Приложение получает ID устройства и гугл-аккаунт пользователя (хотя он больше для отображения статистики).
При запуске, определенном действии (интересном для меня, как разработчика) и выходе, на сервер отправляется строка, где пишется в лог файл. Можно, конечно, писать в БД, но у меня нет своего сервера, а бесплатного хостинга с мускулом я не нашел, но мне хватает и поддержка PHP.
При удачной оплате, в лог пишется, плюс ко всему, номер платежной транзакции.
Здесь еще сделал плюху, сервер отправляет письмо на мыло, там оно попадает в свою папку, откуда мне приходит СМС, типа "хозяин, копейка капнула".
Так вот, теперь к главному.
При запуске, приложение запрашивает с сервера "черный список". Если не удалось - продолжает периодически запрашивать, до победного. Далее, сверяется со списком и, если нашел там свой ID или гугл аккаунт, переключает приложение в демо-режим. А черный список - простой текстовый файл, в который ты сам вручную вписываешь негодяев.

Как урезать свое приложение до демо - тут каждый решает сам.
Защита от переустановки приложения:
Я сделал, что при установке, запускается именно демо. Потом юзер оплачивает лицензию и получает доступ к полному функционалу. Далее, после переустановки, он заходит на страницу покупки, где гугл сообщит о наличии оплаченной лицензии. Либо о её отсутствии и необходимости оплаты.
Типа так.
1
145 / 134 / 22
Регистрация: 28.06.2015
Сообщений: 659
12.04.2018, 11:06 8
В принципе, защита от хакеров - конпкодавов. Т.е. тех кто используется исключительно приложения, и не очень разбирается в коде. А таких 90%.
Добавляем в приложение проверку откуда установлено, и если не плей- то делаем что надо.
Java
1
2
3
4
public static boolean checkInstaller(Context context) {
   final String installer = context.getPackageManager().getInstallerPackageName(context.getPackageName());
   return installer != null && installer.startsWith("com.android.vending");
}
Защита от отладки
Java
1
2
3
public static boolean checkDebuggable(Context context){
   return (context.getApplicationInfo().flags &; ApplicationInfo.FLAG_DEBUGGABLE) != 0;
}
Так же можно добавить проверку цифровой подписи. С шифрованием конечно. Методы само собой называем как то нейтрально, никаких отдельных классов, проверки - проще использовать - проще найти.

Плюс шифруем, некоторые переменные. Даём не очевидные имена переменным. В итоге 95% "хакеров - кнопкодавов" - отсеяться. А те кто могу сломать - оно им скорей сего не понадобиться.
2
Заблокирован
12.04.2018, 11:27 9
Цитата Сообщение от Vladimir93 Посмотреть сообщение
Плюс шифруем, некоторые переменные. Даём не очевидные имена переменным.
https://www.google.ru/search?q=Java+Obfuscator
1
145 / 134 / 22
Регистрация: 28.06.2015
Сообщений: 659
12.04.2018, 11:35 10
И чего? Там же в гугле найдете как это все распаковать и прочитать.
А вот расшифровать переменную зафаршированную методом aes 256 - это совсем другой уровень.
0
2 / 2 / 2
Регистрация: 29.09.2012
Сообщений: 444
12.04.2018, 15:40 11
Разве на сайте модов по андроиду не все можно взломать? Версии Pro, а также убирают рекламу там на ура..
0
+1
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
12.04.2018, 16:04 12
Цитата Сообщение от Vladimir93 Посмотреть сообщение
Даём не очевидные имена переменным
Мало того, имена переменных и функций в исходном виде поставляются пользователю (хакеру).
Хорошо хоть комментарии скрываются.
А я не знал про эти инструменты, вручную делал автозамену текстов (имен функций), например, ReadFileFromDisk -> fRfFd/*ReadFileFromDisk */
0
2 / 2 / 2
Регистрация: 29.09.2012
Сообщений: 444
12.04.2018, 19:47 13
+1
А разве нет программ, которые переделают все имена на a, aa, b, ab и тд ?
0
91 / 86 / 12
Регистрация: 08.08.2013
Сообщений: 667
12.04.2018, 21:30 14
Cannon1,
достаточно в gradle поставить minifyEnabled true.

Взломать можно всё, на андроид написать хорошую защиту сложно, зачастую невозможно, но надо понимать что делать когда вы (ваше приложение) узнаете о взломе.

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

Можно сколь угодно писать сложные формулы но результат вы будете всегда писать If(license)... тут то и нужно заменить на true.

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

Я считаю наиболее правильным для проверки на взлом проверять подписана ли эта копия ВАШИМ ключом или нет, при этом проверку надо делать на C\C++ и не забывать про игру с пиратом.

Добавлено через 9 минут
В кратце об игре с пиратом: как только игра узнавала что она ломанная, появлялся пират который очень мешал прохождению игры и пользователи жаловались на этого пирата) (ссылку к сожалению на статью не дам, давно было).
1
349 / 240 / 34
Регистрация: 16.01.2010
Сообщений: 766
12.04.2018, 22:13 15
Цитата Сообщение от Cannon1 Посмотреть сообщение
Разве на сайте модов по андроиду не все можно взломать? Версии Pro, а также убирают рекламу там на ура..
Если есть проверка подписи в коде приложения, с шифрованием, то после такой замены, приложение невозможно будет подписать. Точнее подписать можно, но подпись верификацию не пройдет.
А для этого что бы это ломануть нужно будет лез в код, смотреть чего там с чем сравнивается, плюс это будет зашифровано. В общем гемор очень существенный. При цене приложение около 1-3 долларов - мотивация нулевая.
Программы патчат стандартные решения, а нестандартные нужно ручками и мозгом.
0
12.04.2018, 22:13
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.04.2018, 22:13
Помогаю со студенческими работами здесь

Борьба за ресурсы
Добрый день! Встал вопрос, возможно надуманный. void* a(void* argv) { while(1) { ...

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

Борьба за рынок
Не так давно в США появился новый законопроект, который направлен на борьбу против пиратства, и...

Борьба с опечатками
Добрый вечер, Делаю лабы на си, с языком знакома плохо, но это в данном вопросе не главное. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru