Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
ASDFD12
39 / 39 / 6
Регистрация: 15.09.2012
Сообщений: 449
#1

Как защитить приложение от распространения - Программирование Android

23.12.2013, 14:42. Просмотров 1014. Ответов 12
Метки нет (Все метки)

Как это лучше всего сделать. Может привязка к ID устройства, но тогда надо заранее перед компиляцией знать его. Или может серийный номер, который можна задействовать только один раз - для этого думаю нада писать еще серверную часть.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2013, 14:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как защитить приложение от распространения (Программирование Android):

Как защитить приложение? - Программирование Android
*.apk без проблем открывается винраром, *.dex, содержащий весь код, также легко декомпилируется с помощью соответствующего софта. Как...

Как защитить приложение - Программирование Android
Доброго времени суток! Пишу диплом тесно связанный с безопасностью. Функциональную часть моего андроид приложения я уже реализовал и...

Как защитить intentService от чистильщика? - Программирование Android
Добрый день, Собственно вопрос в названии темы. Есть фоновый сервис, который при первоначальном запуске приложения делает довольно...

Как защитить свою программу от нелегального распространения средствами PABC.NET - PascalABC.NET
Можно ли как то ограничить круг использования: например, ситуация: я передал программу попользоваться, потестировать, но не хочу, чтобы ее...

Как защитить мое приложение? - .NET
Здравствуйте! Скажите как защитить созданное мною приложение от взлома и кражи информации? Читал про обусфакцию, но опять же вопросы...

Как лучше защитить приложение? - C#
Доброго времени суток. Я хочу сделать чтобы мое приложение можно было покупать, есть база данных с лиц. кодами, как сделать чтобы нельзя...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
dajver
408 / 272 / 18
Регистрация: 18.09.2010
Сообщений: 1,108
23.12.2013, 15:47 #2
серийный номер, который можна задействовать только один раз - для этого думаю нада писать еще серверную часть.
Вот это оно, и серверная часть не сильно сложная там у вас будет, всего лишь база с тремя столбцами в которые будете записывать имей устройства и запущено оно на нем или нет, то есть флаг (true\false).

Делаете пост запрос на сервер с этими данными из приложения и все.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
23.12.2013, 16:13 #3
вполне можно сделать полноценную защиту как в винде - на основе хард ключа. Отсылаеся проверочный ключ юзеру после того как он вышлет Вам свой хард ключ. Если проверочный ключ не совпадает хард ключу - программа не работает. Преимущество - работает без инета.
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 423
23.12.2013, 18:07 #4
Цитата Сообщение от Tester64 Посмотреть сообщение
вполне можно сделать полноценную защиту как в винде - на основе хард ключа. Отсылаеся проверочный ключ юзеру после того как он вышлет Вам свой хард ключ. Если проверочный ключ не совпадает хард ключу - программа не работает. Преимущество - работает без инета.
Примерно так и я сделал
ASDFD12
39 / 39 / 6
Регистрация: 15.09.2012
Сообщений: 449
24.12.2013, 17:47  [ТС] #5
Цитата Сообщение от Slon747 Посмотреть сообщение
Примерно так и я сделал
можно подробней. ключ у вас хранится в отдельном файле и приложение читает его. хард ключ содержит жёстко вшыту информацию о устройстве, например ИМЕЙ. если пропадает ключ работа нарушается.
моя идея в том чтобы пользователь прислал мне ИМЕЙ устройства до того как скачает приложение, после чего я встраюю его в код приложение, компилирую с обфускацией и уже после отправляются программу заказчику. Насколько это правильно? как именно работает ключ, легко ли зламать приложение просто удалив условие проверки ключа после декомпиляции?
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 423
24.12.2013, 18:28 #6
Цитата Сообщение от ASDFD12 Посмотреть сообщение
можно подробней. ключ у вас хранится в отдельном файле и приложение читает его. хард ключ содержит жёстко вшыту информацию о устройстве, например ИМЕЙ. если пропадает ключ работа нарушается.
моя идея в том чтобы пользователь прислал мне ИМЕЙ устройства до того как скачает приложение, после чего я встраюю его в код приложение, компилирую с обфускацией и уже после отправляются программу заказчику. Насколько это правильно? как именно работает ключ, легко ли зламать приложение просто удалив условие проверки ключа после декомпиляции?
На активити запроса регистрационного ключа пользователь вводит свои данные (название фирмы, емейл, телефон) и при нажатии кнопки эти данные, а также сгенерированное по железу значение отправляются по JSON на php-mysql сайт. Оттуда я считываю данные железа и генеренирую файл ключа. Этот файл высылается по почте и сбрасывается на карту памяти. Программа считывает его и записывает в настройки.
В дальнейшем сначала ищет файл на диске и если не находит считывает значение из настроек.
Сделал так, потому что задуманы 2 версии программы по разной цене. И переход на более дорогую происходит обычной заменой файла ключа. Еще не проверял на реальных продажах, т.к. только на днях подал заявку на авт. право.

Насчет защиты от взлома пусть скажут настоящие спецы по джаве, а не я. Но ясно, что простой проверкой (кодировка/раскодировка ключа) нельзя ограничиваться. Имея опыт можно выгрузить проект в .smali и найти эти места, а потом пересобрать. Вопрос в том, станут ли это делать.
И обфускация, вероятно, должна запутать. Но также можно в разных местах программы делать и другие проверки.
Но если Вы будете встраивать код в программу, то в случае исправлений/доработок придется для каждого заказчика заново компилировать и обфусцировть программу. Стоит ли?
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
24.12.2013, 20:20 #7
Цитата Сообщение от Slon747 Посмотреть сообщение
подал заявку на авт. право
В смысле отправили на сайт гугла для выкладки на маркет? Или на гос. регистрацию патента на программу?

Цитата Сообщение от Slon747 Посмотреть сообщение
Но если Вы будете встраивать код в программу, то в случае исправлений/доработок придется для каждого заказчика заново компилировать и обфусцировть программу.
Я думал что при обфусцировании строковые константы не шифруются... Только код "упрощается" и слегка перемешивается.

Добавлено через 4 минуты
У меня была мысль встраивать ключ в программу подкладывая "ответ на хард ключ" в виде текстовичка прямо в APK файл специальным регистратором, но на Переупаковка APK никто не ответил... Прийдется самому тесты проводить...
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 423
24.12.2013, 21:23 #8
Цитата Сообщение от Tester64 Посмотреть сообщение
В смысле отправили на сайт гугла для выкладки на маркет? Или на гос. регистрацию патента на программу?
Регистрация авторского права на интеллектуальную собственность. Там указано название программы, описание, кусок кода до 140 стр и пр.
А патент - нечто другое. Он намного дороже и дольше оформляется.

Цитата Сообщение от Tester64 Посмотреть сообщение
Я думал что при обфусцировании строковые константы не шифруются... Только код "упрощается" и слегка перемешивается.
Вроде бы строковые константы не шифруются. Но я когда-то обработал php-код и что я там увидел - это нечто, не читаемая каша. Так что смысл есть.

Кстати, может кто скажет, можно ли обфусцировать код средствами IntelliJ IDEA?
А то я несколько часов потратил на изучение ANT, но переработать готовый apk так и не получилось.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
24.12.2013, 23:40 #9
Цитата Сообщение от Slon747 Посмотреть сообщение
Регистрация авторского права на интеллектуальную собственность. Там указано название программы, описание, кусок кода до 140 стр и пр.
Даже слегка завидно. В Украине - это еще не работает. С судами связываться (доказывать что они украли у тебя, а не ты у них) - себе дороже... А что если моя программа перевалила (чистый ява код) за 1.5 мегабайта? какие 140 стр (строк? страниц?) брать?
Пока что надежда ТОЛЬКО на мои пароли.

Цитата Сообщение от Slon747 Посмотреть сообщение
можно ли обфусцировать код средствами IntelliJ IDEA?
А то я несколько часов потратил на изучение ANT, но переработать готовый apk так и не получилось.
Теоретически можно. Даже вроде видел где-то инструкцию. Но у меня не получилось. И АНТ не заработал... Часа 4 уже убил впустую... Если получится - напиши пожалуйста краткую инструкцию!
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 423
25.12.2013, 00:09 #10
Цитата Сообщение от Tester64 Посмотреть сообщение
Даже слегка завидно. В Украине - это еще не работает. С судами связываться (доказывать что они украли у тебя, а не ты у них) - себе дороже... А что если моя программа перевалила (чистый ява код) за 1.5 мегабайта? какие 140 стр (строк? страниц?) брать?
Пока что надежда ТОЛЬКО на мои пароли.
Как не работает? Я в Украине это и делал . Если надо, могу завтра более подробно описать что за бумаги заполнял.
Конечно, чай не в Америках живем и на законы не надеюсь. Но оценив альтернативное ПО и рынок, я решил хотя бы так подстраховаться.
Насчет кода, я долго думал, какой выбрать, т.к постоянно вношу изменения. Выбрал наименее подверженную изменениям функцию. Другой вопрос, как потом доказывать, что вот этот двоичный код и этот кусок кода - одно и то же?

Цитата Сообщение от Tester64 Посмотреть сообщение
Теоретически можно. Даже вроде видел где-то инструкцию. Но у меня не получилось. И АНТ не заработал... Часа 4 уже убил впустую... Если получится - напиши пожалуйста краткую инструкцию!
ok. Надо еще попытаться
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
25.12.2013, 04:45 #11
Цитата Сообщение от Slon747 Посмотреть сообщение
Если надо, могу завтра более подробно описать что за бумаги заполнял
Знать не помешает... На законы не надеюсь, но возможно самых наглых жуликов отпугнет скриншот бумажки на сайте... Опишите хотя-бы вкратце... И необходимую сумму взносов для оформления...
агерон
268 / 267 / 33
Регистрация: 12.10.2009
Сообщений: 1,060
25.12.2013, 07:11 #12
защита должна строиться не на страхе (суд) или сложности (супер пупер защищенная азбука) а на стоимости т. е. приложение должно стоить столько что бы его было не выгодно ломать, а выгодно покупать к примеру не $35 за копию а $3.49 тогда и проблем с "взломают/не взломают" не будет т. к. пользователю просто в лом будет искать взломанное приложение
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 423
25.12.2013, 11:39 #13
Цитата Сообщение от Tester64 Посмотреть сообщение
Знать не помешает... На законы не надеюсь, но возможно самых наглых жуликов отпугнет скриншот бумажки на сайте... Опишите хотя-бы вкратце... И необходимую сумму взносов для оформления...
Заявление: sips.gov.ua/i_upload/file/zajava_na_tvir.doc
На отдельном листе кусок кода. Иметь при себе паспорт и ИНН.
Можно регистрировать как на частное лицо, так и на организацию. Регистрация стоит 800 грн и длится 2-3 мес.

Цитата Сообщение от агерон
защита должна строиться не на страхе (суд) или сложности (супер пупер защищенная азбука) а на стоимости т. е. приложение должно стоить столько что бы его было не выгодно ломать, а выгодно покупать к примеру не $35 за копию а $3.49 тогда и проблем с "взломают/не взломают" не будет т. к. пользователю просто в лом будет искать взломанное приложение
Конечно. Но если это программа не массового спроса, а бизнес-приложение и цена у конкурентов начинается с 75$ за подобный функционал, то это уже другой случай.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2013, 11:39
Привет! Вот еще темы с ответами:

Как можно защитить приложение от взлома? - C++ Builder
Как можно ещё защитить код (усложнить работу при декомпиляции)? Тема была выделена отсюда -...

Как защитить свое приложение (Активация) - Visual Basic .NET
Друзья, возник такой вопрос. Хочу свою программу сделать "от части" платной. Чтобы, например, при нажатии на кнопку программа не...

Как защитить свое приложение от перепродажи - C#
Как можно сделать так чтобы, программу можно было продать и человек которому я ее продал не мог ее перепродать?

Как можно защитить свое приложение он декодирования - Visual Basic .NET
Здравствуйте подскажите пожалуйста 1) как можно защитить свое приложение он декодирования 2) как защитить свой исходный код который...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.12.2013, 11:39
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru