Программная защита и авторизация приложений магазина.

Автор Тема: Программная защита и авторизация приложений магазина.  (Прочитано 99403 раз)

0 Пользователей и 5 Гостей просматривают эту тему.

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 624
  • Карма: 158
    • ПГСу Бложик
Свеженькая статья на эту тему от Kean Walmsley: Securing your AutoCAD app using .NET

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
А если еще и код вот такой штукой закрыть: http://www.eziriz.com/dotnet_reactor.htm, то вполне надежно может получиться :)

Оффлайн Николай Горлов

  • ADN
  • *
  • Сообщений: 238
  • Карма: 34
Свеженькая статья на эту тему от Kean Walmsley: Securing your AutoCAD app using .NET
ну допустим это перепечатка старого материала с теми же косяками :)
первое и самое главное, теоретически я не знаю, как в конечном итоге назовут моё приложение в магазине.
на практике создается просто публикация с интересующим меня именем без отправления на проверку. ну и после создания публикации я вижу имя, которое мне присвоили. следовательно, зашивать :en мягко говоря не разумно, особенно если локализаций несколько в одном инсталляторе. сейчас, например, они штампуют еще суффиксы, например "_windows32and64" к имени приложения.
короче говоря. зашивать нужно ТОЛЬКО имя приложения, которое вводится на страницу при начале публикации, остальное - от большой фантазии

пример из реальной жизни :). есть приложение copyEx. следовательно, запросы (все запросы проверил, так что 100% инфа :) )
appstore.exchange.autodesk.com:copyex
appstore.exchange.autodesk.com:copyex_windows32and64:ru
appstore.exchange.autodesk.com:copyex_windows32and64:en
appstore.exchange.autodesk.com:copyex_windows32and64
appstore.exchange.autodesk.com:copyex_windows32
appstore.exchange.autodesk.com:copyex_windows64

для валидного пользователя вернут один и тот же вариант - "true". да оно и правильно. если человек скачал английскую версию, то в русской, доступной в том же инсталляторе он должен работать без лишних телодвижений.
и вот если я знаю, что моё приложение называется copyex, страница публикации приложения говорит, что ссылка на проверку заканчивается на copyex без всяких суффиксов, какой мне смысл заниматься отсебятиной, которая через время может перестать работать?
например,
appstore.exchange.autodesk.com:copyex_lol32 возвращает false :):):). где гарантия того, что через пол года "_windows32" не вернет false?

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Можно там в комментариях у Кина уточнить этот вопрос - нужно ли указывать версию виндовс и локализацию.
Мне вот еще интересно, почему-то для меня, как разработчика приложения, при попытке проверить пользователя, всегда возвращается False:
{"UserId":"<тут мой ONLINEUSERID>","AppId":"appstore.exchange.autodesk.com:civiltableexport","IsValid":false,"Message":"Ok"}Приложение бесплатное. Я его даже еще раз скачал и переустановил - не помогает.
Это у всех так?

Оффлайн Николай Горлов

  • ADN
  • *
  • Сообщений: 238
  • Карма: 34
Мне вот еще интересно, почему-то для меня, как разработчика приложения, при попытке проверить пользователя, всегда возвращается False
ну на это могу ответить и я :). true возвращается ТОЛЬКО если приложение платное и ТОЛЬКО если для данного приложения в таблице есть указанный ID. засунуть свой ID туда можно двумя способами:
1. купить свое собственное приложение
2. попросить автодесковцев добавить ID в таблицу купивших приложение.

PS: вариантом №2 они всей толпой пользуются для тестирования онлайн защиты. мне на каждое приложение (всего их сейчас 2) приходят 2-3 письма (одно письмо на одного добавленного), что такие-то товарищи добавлены в список:
The following users are now entitled by Autodesk App Store admin to download ...
ну и если потом попользоваться их ID :):):) для проверки валидности, то возвращает true.


Можно там в комментариях у Кина уточнить этот вопрос - нужно ли указывать версию виндовс и локализацию.
а смысл? я как-то пытался выяснить почему на возврат всегда false идет в такого же рода комментариях после публикации. а выяснил только пообщавшись с магазинными товарищами. скорей всего ответом будет - я просто перепечатал старую тему снабдив её видео. для более детально информации... и куча ссылок :)

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

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
ТОЛЬКО если приложение платное
Но ведь приложение Screenshot, о котором речь в статье идет, не является платным. И для него с моим ID вернуло True, после того, как я его скачал и установил.

Оффлайн Николай Горлов

  • ADN
  • *
  • Сообщений: 238
  • Карма: 34
Но ведь приложение Screenshot, о котором речь в статье идет, не является платным. И для него с моим ID вернуло True, после того, как я его скачал и установил.
хихи, а я даже не устанавливал и тоже true. а после этого скачал еще пару бесплатных программ. и для них - false.
так что это у Кена нужно выяснить, почему его уникальное приложение возвращает true, а остальные не хотят ))).
может причина в том, что оно с 2012 года висит. может тогда добавлялись пользователи и для бесплатных приложений. ну и скрипт оставили без изменений до сих пор, не знаю.

Оффлайн Николай Горлов

  • ADN
  • *
  • Сообщений: 238
  • Карма: 34
Можно там в комментариях у Кина уточнить...
я вот не поленился и спросил ))). ответ достоин внимания )))
PS: кстати, там в вопросе я вставил ссылочку, где есть картинка с красным прямоугольничком, указывающим на имя приложеения, которое и нужно вставлять в проверку.

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 624
  • Карма: 158
    • ПГСу Бложик
ответ достоин внимания )))
Скромничает однако.
Хотя если присмотреться, то тут используют  RestSharp, а он использовал продукт от Newtonsoft. Мелочь, а приятно.

Оффлайн Николай Горлов

  • ADN
  • *
  • Сообщений: 238
  • Карма: 34
Хотя если присмотреться, то тут используют  RestSharp, а он использовал продукт от Newtonsoft.
:) я например вообще обошелся стандартным winhttp из С++. суть то одинаковая - ушел запрос, пришел ответ. http-шных библиотек полно и платных и бесплатных, и стандартизированных и самопальных :). вопрос только в том, что бездумно перепечатывается одно и то же из года в год. не спорю, на данный момент такой вариант работать будет, но если поменяется политика и добавят чего-то нового, убрав старое, то можно и натерпеться от пользователей, купивших приложение, за те 2-3 недели, пока будет перевыкладываться в магазин исправленный вариант онлайн защиты.

кстати, в дополнение к плагину screenshot.
там только английская версия, но true возвращается и для ":fr", ":ru", ":it" или букв любого другого языка, но если поставить что-то левое, например, ":aa", то возврат - false. возможно когда-то они пытались делать разбивку по языкам, типа скачал с английской страницы, значит запускать можно только английскую версию мультиязычного плагина и т.п. но потом поняли, что смысла в этом нет (но буквы по каким-то соображениям оставили :), так же, как и добавили недавно "_windows" и "_macos") и теперь нам приходится с этим развлекаться, постоянно задумываясь над тем, по какому ключевому слову проводить проверку согласно свеженьким мануалам.

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 624
  • Карма: 158
    • ПГСу Бложик
я например вообще обошелся стандартным winhttp из С++. суть то одинаковая - ушел запрос, пришел ответ.
Позвольте согласиться.  :D

Извините, вам запрещён просмотр содержимого спойлеров.

Оффлайн BearDyugin

  • ADN Club
  • ****
  • Сообщений: 270
  • Карма: 24
  • Геодезист
Ну в общем так и сделал, собрал серийник из:
  • части Mac адреса,
  • части GUID-а,
  • кода приложения,
  • части  ProcessorId
В общем за год регистраций набрал статистики:

1) Функция vk_GetMacAddress выполняется дольше всех примерно секунд 5, и через раз выдаёт разные результаты, их как правило не больше 3  ;D но всё равно не приятно, в итоге отказался от неё.
2) Функция Get_ProcessorId работает стабильно, даже после переустановки системы выдаёт тоже значение, но как показала статистика, этих значений не много, очень часто встречаются одинаковые у разных пользователей.
3) Функция Get_UUID вроде тоже стабильны, и ещё не видел повтарений, можно впринципе только её одну и использовать.
« Последнее редактирование: 02-08-2016, 11:33:55 от Geobuilder »

Оффлайн BearDyugin

  • ADN Club
  • ****
  • Сообщений: 270
  • Карма: 24
  • Геодезист
2) Функция Get_ProcessorId работает стабильно, даже после переустановки системы выдаёт тоже значение, но как показала статистика, этих значений не много, очень часто встречаются одинаковые у разных пользователей.
3) Функция Get_UUID вроде тоже стабильны, и ещё не видел повтарений, можно впринципе только её одну и использовать.
В общем пишут мне периодически, что переустановили систему и серийник поменялся, т.е. это всё же эти функции не столь стабильны, о чем не однократно предупреждали, или пользователи меня обмануть хотят?
И как дела обстоят с прочим лицензионным ПО после переустановки системы? Просто как то я сам с переустановками ни разу не сталкивался...

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
В общем пишут мне периодически, что переустановили систему и серийник поменялся, т.е. это всё же эти функции не столь стабильны, о чем не однократно предупреждали, или пользователи меня обмануть хотят?
Если речь идет о (Get_UUID), то так и должно быть - при переустановке системы этот код меняется.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
И как дела обстоят с прочим лицензионным ПО после переустановки системы? Просто как то я сам с переустановками ни разу не сталкивался...
С продуктами Autopdesk аналогично - код запроса новый.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение