Вопрос Защита сетевого .NET приложения

*BLUHGANG* vs godless braindead users 15v15 *shayd
Пользователь
Статус
Оффлайн
Регистрация
20 Мар 2020
Сообщения
100
Реакции[?]
52
Поинты[?]
0
Здравствуйте. У меня есть программа, которая отправляет/принимает запросы с сервера. Сама по себе программа не содержит какого-либо "платного" кода, он обрабатывается на сервере. Это значит, что бы обезопасить программу от кряка, нужно сделать так, что бы сервер обрабатывал запросы лишь "оригинального" продукта.

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

Но, где хранить такой ключ на стороне клиента, что бы его было сложнее всего вытащить? Или есть любые другие способы обезопасить такого рода продукт? Буду благодарен за любой совет.
 
ldloc.s <d0t.net> stloc.s <Reversed>
Пользователь
Статус
Оффлайн
Регистрация
21 Окт 2018
Сообщения
214
Реакции[?]
337
Поинты[?]
1K
Ты решил пойти по стопам Win10Govno?
Самый нормальный вариант - просто выполнять важную логику приложения - на сервере, где у пользователя доступа никакого нет. Для идентификации пользователья использовать IP(не всегда)+HWID+UniqID(уникальный, где каждый платный пользователь - имеет уникальный билд со встроенным хешем). Если программа попадает в чужие руки, и есть такой запрос со стороны клиента, где, например, UniqID один, а HWID - разный, то это уже звоночек.
 
*BLUHGANG* vs godless braindead users 15v15 *shayd
Пользователь
Статус
Оффлайн
Регистрация
20 Мар 2020
Сообщения
100
Реакции[?]
52
Поинты[?]
0
Ты решил пойти по стопам Win10Govno?
Самый нормальный вариант - просто выполнять важную логику приложения - на сервере, где у пользователя доступа никакого нет. Для идентификации пользователья использовать IP(не всегда)+HWID+UniqID(уникальный, где каждый платный пользователь - имеет уникальный билд со встроенным хешем). Если программа попадает в чужие руки, и есть такой запрос со стороны клиента, где, например, UniqID один, а HWID - разный, то это уже звоночек.
У меня в программе вообще ВСЯ логика выполняется на сервере, клиент служит чисто для отправки/получения данных. Я подумал, что делать каждому отдельный билд не очень эффективно, что насчёт выдачи банального ключа + HWID? Если я у себя увижу, что с одного ключа идут запросы с разными хвидами, то можно просто удалить ключ из БД.

Мне просто интересно, насколько надёжна такая схема. И вообще, как можно крякнуть такого рода приложение?
 
Сверху Снизу