Как защитить программу от пиратства

Вопрос — какие существуют методы борьбы с пиратством? Я понимаю, что сломать можно всё, но хоть какая-то защита от тупого копирования .apk и его распространения всё же должна быть. На developer.android.com описана некая библиотека LVL — Licencing Validation Library, это оно ведь?

И еще, поскольку приложение я пишу на Си, без явы, существующие решения мне может и не помогут, в связи с этим вопрос: а Google Play при передаче APK просто передаёт готовый архив, или может «встроить» в него, например, какой-нибудь идентификационный номер устройства, на которое загружается приложение? Имеется ли что-то подобное в Google Play?

#1
1:14, 19 сен 2012

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

  • romanshuvalov
  • Модератор

#2

Как защитить устройство от взлома? Узнай за 900 секунд


1:23, 19 сен 2012

shosh
> идеологию получения дохода от приложения
Приложение платное. Вот и вся идеология.
Требуется исключить (ну, или заметно усложнить) возможность установки приложения бесплатно. А это решается техническими средствами.

#3
20:52, 21 сен 2012

ALPINE
Пишите без явы?

#4
2:23, 22 сен 2012

ReeV
> Приложение платное. Вот и вся идеология.

Одним этим вы себя обрекаете на борьбу с ветром.

#5
3:40, 22 сен 2012

Рассказывайте подробнее, что за невнятные ответы.

  • romanshuvalov
  • Модератор

#6
8:09, 22 сен 2012

ReeV
> Пишите без явы?
Да, пишу без явы.

shosh
> Одним этим вы себя обрекаете на борьбу с ветром.
Почему?

> Рассказывайте подробнее
А что рассказывать? Просто платное приложение. Игрушка. Есть бесплатная лайт-версия с урезанным количеством уровней (демо-версия по сути), есть полная платная версия со всеми уровнями. Монетизация только засчёт покупок платного приложения.

Рекламы нет, in-game покупок нет. Вот и всё.

Задача — не допустить (усложнить) установку полной версии бесплатно.

#7
11:44, 22 сен 2012

ALPINE
А может продавать остальные уровни in-app purchase-ом?

#8
15:09, 22 сен 2012

Пишите свою систему, LVL вас никак не защитит, если ваша поделка станет популярной.

В отличии от iOS, Андроид=целый зоопарк из декартово произведения версий ОС на варианты железа. Гугл очень сильно ступил и не заложил изначально апи, которое всегда и везде гарантированно возвращало бы уникальный номер устройства. Так, чтоб ни рутом ни фектори резетом его сменить нельзя было.

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

Как защитить свой код на Python от ВЗЛОМА

#9
15:46, 22 сен 2012

Уровни грузить из инета. На устройстве храть текущий уровнь и следующий. Это позволит играть офлайн. При прохождении каждого уровня добро пожаловать за следующим.

  • romanshuvalov
  • Модератор

#10
17:42, 22 сен 2012

Читайте также:
Через какую программу можно соединять видео

> А может продавать остальные уровни in-app purchase-ом?
Думал об этом, но «просто игра без заморочек» показалась проще для пользователя. Не найду других решений — придется делать так.

Disabled
> Основная проблема при написании своей защиты— получить уникальный айди
> устройства на которое ставиться ваш софт
Дело еще в том, что даже если я получу его — что дальше? При покупке же Play Market высылает обычный .apk, общий для всех, я не могу «на той стороне» на основе этого айди что-нибудь сделать. Получается, интернет для докачивания уровней (шифрованных уникальным айди) нужен все равно.

Вот в Steam, насколько я знаю, есть «Custom exe generation» — исполняемый файл генерируется на основе учётки пользователя или как-то так. Подобной фичи у гугла нет? Умеет ли гугл вшивать в .apk что-нибудь уникальное при загрузке приложения?

> Уровни грузить из инета. На устройстве храть текущий уровнь и следующий.
Тоже думал. Идеальная цель — реализовать защиту, не требующую интернет. Не удастся — что ж, буду через инет.

#11
18:49, 22 сен 2012

При покупке же Play Market высылает обычный .apk, общий для всех, я не могу «на той стороне» на основе этого айди что-нибудь сделать. Получается, интернет для докачивания уровней (шифрованных уникальным айди) нужен все равно.

Читайте LVL, http://developer.android.com/guide/google/play/licensing/index.html and http://developer.android.com/guide/google/play/licensing/adding-licensing.html
Но, инет всё равно понадобиться. А раз он понадобиться, то я б уже реализовал собственный механизм, а не юзял бы lvl.
В принципе, можно пойти иным путём. А Андроиде, в отличии от iOS, не надо получать рута, чтобы ставить софт не из маркета. Вы бы могли распространять apk со своего сервера, там же организовав и оплату и генерацию кастомизированного под покупателя apk. Т.е., apkшку вы собираете под клиента, компиля туда классик с константой с эккаунтом клиента.

И вся ваша программа когда надо сравнивает учётную запись пользователя с этой айдишкой. Как вариант.

#12
21:33, 22 сен 2012

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

ALPINE
> Не удастся — что ж, буду через инет.
Лучше даже не пытайтесь 🙂 В отличие от пользователей ПК пользователи телефонов в большинстве случаев не держат постоянное подключении к тырнету. У большинства даже не подключена соответствующая тарифная опция, все качается дома через вайфай.

По опыту скажу, что даже хорошие бесплатные игры сносят только из-за того, что они требуют наличия тырнета при запуске. Вашу же игру просто не купят.

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

Наилучшим выходом будет выставить низкую цену на игру. Дополнительные доходы может принести донат за внутриигровые предметы (тут главное не переусердствовать 🙂

  • romanshuvalov
  • Модератор

#13
6:36, 23 сен 2012

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

Просто хотелось исключить ситуацию, когда ТУПОЕ копирование .apk сразу успешно устанавливает приложение без покупки. Хотелось заставить хоть один бит сменить.

Читайте также:
Требования к уровню подготовки выпускников обучающихся по данной программе

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

Прошло более 6 месяцев
#14
16:44, 11 апр 2013

ЛИЦЕНЗИОННЫЙ КЛЮЧ ДЛЯ ЭТОГО ПРИЛОЖЕНИЯ
Включите этот открытый ключ RSA в свои исполняемые файлы (удалите пробелы).

Куда вставлять ключ RSA на Гугл Плей что бы защитить приложение от копирования?? и какие пробелы удалить? там в коде нет ни каких пробелов.

Источник: gamedev.ru

Как защитить приложение от пиратства

Я разрабатываю приложение для Android и планирую его опубликовать (платное приложение). Я слышал, что очень легко пиратские приложения для Android (гораздо проще, чем iphone). Мне было интересно узнать о своем опыте или о том, что вы знаете, как повысить безопасность моего приложения? Я знаю, что я никогда не смогу получить его на 100%, но я хочу, чтобы людям было сложно пиратствовать или распространять его незаконно Любые идеи, впечатления, комментарии, которыми вы можете поделиться?

ОТВЕТЫ

Ответ 1

Я выпустил бесплатное приложение для защиты от вредоносных программ для Android и убедившись, что никто не взломан, это было важно для его успеха. Самые большие угрозы снова для приложения на Android Market включают пропущенный исходный код, скопированные/распределенные платные приложения и повторную настройку. Я объясняю каждый ниже и способ их решения.

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

Хорошей новостью является то, что вы можете запутать важные фрагменты своего кода, что затрудняет обратное проектирование. Proguard — это инструмент, предоставляемый Android, который позволяет вам запутывать (сделать более трудным для чтения) ваш код во время упаковки. Однако, чтобы ваш важный код не читался, вам нужно переместить все уязвимые методы или переменные в файл, который не является Activity , Service или BroadcastReceiver . Для получения полной информации ознакомьтесь с документацией.

Чтобы повторно защитить незаконную копию и распространение вашего приложения, Google Play предоставляет некоторые варианты лицензирования. К сожалению, LVL также не совсем безопасен. Подробный HOW-TO для взлома (pre-Google Play) доступен здесь.

Наконец, связанная выше статья, а также многочисленные научные статьи и онлайн-блоги описывают, как, как только исходный код (или даже запутанный исходный код) просочится, однажды можно просто добавить часть своего собственного вредоносного кода, уйти в отставку приложение и опубликуйте его на Android Market. Хорошая новость заключается в том, что, если ваш пароль для доступа к лицензионному ключу Android не может быть легко угадан или если вы передадите его кому-то другому, злоумышленник не сможет опубликовать приложение с тем же лицензионным ключом. Это не только защитит вас от вины, но также сделает так, что вредоносное приложение не сможет получить доступ к данным, доступным через исходное приложение (например, SharedPreferences ).

В целом, лучший способ действительно защитить ваше приложение от пиратства — правильно настроить и использовать Proguard, Google Play Licensure и подписать окончательный apk с очень безопасным лицензионным ключом.

Ответ 2

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

  • Приложение-установщик. Используйте диспетчер пакетов, чтобы убедиться, что приложение для установки является магазином приложений play/amazon.
  • Проверка эмулятора. Проверьте свойства системы для контрольных знаков, которые приложение запускается на эмуляторе, который вне dev может указывать на атаку/фальсификацию.
  • Отладочная проверка. Используйте диспетчер пакетов для проверки флагов отладки, это должно быть отключено в продукте, поэтому может указывать на атаку/фальсификацию.
  • Проверка сертификата подписи — используйте диспетчер пакетов, чтобы проверить, что приложение подписано с вашим сертификатом разработчика (это было бы нарушено, если кто-то распаковал и переупаковал/ушел в отставку)
Читайте также:
Прекращена работа программы vdfs init tool готика 2

update: после ответа на этот вопрос я написал более подробную статью

Ответ 3

ознакомьтесь с концепцией лицензирования Google Play.

это ваш лучший выбор.

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

Источник: utyatnishna.ru

Как защитить своё ПО от пиратства

Есть вопрос, каким образом можно защитить своё приложение от пиратства? Я собираюсь разработать свой программный продукт. Допустим CRM. У него есть версия, для установки на локальный сервер. Естественно есть лицензионное соглашение о том, что компания имеет право на пользование в течении определённого времени.

Каким образом можно сделать данное приложение недоступным к использованию спустя какое-то время? или сделать так, что бы это ПО не распространилось далее в интернете? Какие методы привязки к IP или к серверу могут быть? Хотелось бы использовать Python для написания ПО.

Отслеживать
задан 22 июн в 9:07
PovidloRus PovidloRus
3 3 3 бронзовых знака
22 июн в 9:17

винду пиратят, фотошоп пиратят, вы думаете, что сможете совершить то, что не могут майкрософт и адобе?

22 июн в 9:46

майкрософт и адобе стоят милиарды. но как относится к пиратсву майкрософт — им насрать, они даже не защищаются .

22 июн в 10:05

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

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

Для защиты исходников стоит использовать pyarmor + сборку в бинарь на наиболее свежей версии python(его сложнее разобрать и нет готовых решений). Но это не панацея. Любой софт в теории может быть угнан и разобран на куски.

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

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

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

Источник: ru.stackoverflow.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru