Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 17.04.2016
Сообщений: 27
1

Активация программы. Шифровка ключа

30.08.2016, 23:59. Показов 1367. Ответов 17
Метки нет (Все метки)

Добрый вечер.
Есть необходимость запуска софта с проверкой.
У клиента есть ключ к программе,сама программа шифрует ключ+некое уровнение.
Допустим есть набор цифр длинной в 20 символов. Программа шифрует по своему алгоритму(прибавляет,пермножает и тд) вместе и ключ и сгенерированный набор цифр,скажим так длинной в 20 символов. Отправляет готовый коктейль гет запросом на сервер,он разберает полученный "шифр" в обратном порядке,исходную информацию шифрует уже "тожесамоенотолькодругое" методом,отправляет назад программе. Она проверяет,верно ли сервер все сделал,если да-работаем.

Надеюсь мысль описал правильно)
Возникает вопрос
На сколько надежен данный метод? Всегда разные запросы должны исключить подмены трафика и тд.
Проверка будет при каждом запуске программы.
Знакомый сказал что при желании,очень просто обходится.Но не сказал как...
Спасибо)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.08.2016, 23:59
Ответы с готовыми решениями:

Отвязка ХАСП ключа от программы
День добрый! Программа работает на Windows ХР. Запускается только при вставленном HASP ключе....

Помесячная активация программы
Здравствуйте, подскажите пожалуйста, можно как нибудь сделать активацию программы на время? Чтоб...

Активация игры по запросу ключа
Установка игры на компьютер проходит без проблем, запускаешь игру, появляется окно безопасности...

Шифровка части кода программы
Приветствую. Помогите разобраться плиз. Тема такая. Нужно чтобы программа расшифровывала часть...

__________________
17
пофигист широкого профиля
4303 / 2821 / 798
Регистрация: 15.07.2013
Сообщений: 16,351
31.08.2016, 02:05 2
Цитата Сообщение от Pylik Посмотреть сообщение
Возникает вопрос
На сколько надежен данный метод?
Абсолютно ненадежен.
Цитата Сообщение от Pylik Посмотреть сообщение
Знакомый сказал что при желании,очень просто обходится.Но не сказал как
Заменой инструкции условного перехода.
1
0 / 0 / 0
Регистрация: 17.04.2016
Сообщений: 27
31.08.2016, 09:30  [ТС] 3
На сколько я понимаю,мощный алгоритм шифрования спасет "от замены инструкции перехода"?
Не совсем понимаю что это такое,можно в нескольких словах?)
0
81 / 81 / 39
Регистрация: 17.02.2016
Сообщений: 464
31.08.2016, 10:13 4
в двух словах сломать можно что угодно
от простого смертного вашей "защиты" достаточно
0
0 / 0 / 0
Регистрация: 17.04.2016
Сообщений: 27
31.08.2016, 10:24  [ТС] 5
Побывать ломать будут 100%.
0
пофигист широкого профиля
4303 / 2821 / 798
Регистрация: 15.07.2013
Сообщений: 16,351
01.09.2016, 01:35 6
Цитата Сообщение от Pylik Посмотреть сообщение
На сколько я понимаю,мощный алгоритм шифрования спасет "от замены инструкции перехода"?
Ни капельки не спасет. У тебя программа будет мощно шифровать что-то и отсылать зашифрованное на сервер. Сервер будет опять же мощно расшифровывать полученное и мощно зашифровывать некий ответ. При получении ответа твоя программа будет сравнивать ответ с тем, что она ожидает получить. И в результате всё сведется к одной машинной инструкции в ассемблере именуемой как JE (Jump Equal) или JNE (Jump Not Equal). Или к подобным инструкциям.
Найти ее в исполняемом коде и заменить - это как "два пальца об асфальт".

Добавлено через 20 минут
Кстати. Всё тоже самое я могу отнести и к многочисленным вопросам о привязке ПО к железу. С тем только добавлением, что сия привязка добавляет геморроя.
2
1576 / 809 / 146
Регистрация: 13.06.2015
Сообщений: 3,026
01.09.2016, 02:01 7
Цитата Сообщение от Pylik Посмотреть сообщение
Надеюсь мысль описал правильно)
Возникает вопрос
На сколько надежен данный метод? Всегда разные запросы должны исключить подмены трафика и тд.
Проверка будет при каждом запуске программы.
Знакомый сказал что при желании,очень просто обходится.Но не сказал как...
Спасибо)
Абсолютно бессмысленный метод "защиты" для любого человека, хоть раз в жизни открывавшего дизассемблер, по вышеописанным причинам.
Более надёжные методы - это обфускация+самомодификация. Никакие "автоматические шифровальщики" не смогут их осуществить, только люди и за приличные деньги (>1000$). Но от очень квалифицированных крэкеров не спасут и они, просто оттянут неизбежное.
Вы же понимаете, что если есть кряки ко всему серьёзному ПО, на которое лицензия стоит тысячи $, и которое пишет огромный штат профессионалов, то вашу поделку, как бы вы ни старались, вскроют за несколько минут.
0
пофигист широкого профиля
4303 / 2821 / 798
Регистрация: 15.07.2013
Сообщений: 16,351
01.09.2016, 02:13 8
Если у ТС есть сервер, то активацию и авторизацию можно значительно упростить. Причем с увеличением "лицензионной чистоты"!
0
1576 / 809 / 146
Регистрация: 13.06.2015
Сообщений: 3,026
01.09.2016, 02:25 9
Цитата Сообщение от northener Посмотреть сообщение
Если у ТС есть сервер, то активацию и авторизацию можно значительно упростить. Причем с увеличением "лицензионной чистоты"!
На ум приходит отсылка недостающих кусков exeшника с сервака с последующим склеиванием его у клиента)))
0
0 / 0 / 0
Регистрация: 17.04.2016
Сообщений: 27
01.09.2016, 10:29  [ТС] 10
Спасибо за ответы,мне как новичку очень сильно помогаете. Реально открываю для себя новое.
При получении ответа твоя программа будет сравнивать ответ с тем, что она ожидает получить.
То есть если я правильно понял,увидеть значение переменной в программе можно,но если немного изменить логику:
Отправляем на сервер запрос,сервер его шифрует,отправляет на клиент и только потом клиент уже генерирует свой шифр и сравнивает его с полученным? Получается программа во время ожидания не хранит правильный ответ а генерирует его только после получения инфы от сервера.
+Можно добавить пошаговый декрипт. Расшифровали первую часть,если все верно переходим ко второй и тд.
Это что нибудь изменит в данной ситуации?
0
1576 / 809 / 146
Регистрация: 13.06.2015
Сообщений: 3,026
01.09.2016, 13:09 11
Цитата Сообщение от Pylik Посмотреть сообщение
Это что нибудь изменит в данной ситуации?
Ничего.
Потому что алгоритм сводится к следующему:
1. Что-то долго вычисляем
2. Что-то шифруем
3. Что-то посылаем на сервер
4. Что-то принимаем с сервера
5. Сравниваем полученные данные с чем-то
6. Если не совпадает - выдать ошибку, иначе - продолжить работу.

В любой программе у вас всегда будет выделенный п.6., который позволяет вскрыть её за 10 минут путём замены одного байта, меняющего условие с "Если не совпадает - выдать ошибку" на "Если не совпадает - продолжить работу". И всё, что производилось до этого, становится бесполезным. Иначе говоря - какой смысл вешать 10 замков на стальную дверь, если рядом в стене дыра?
1
0 / 0 / 0
Регистрация: 17.04.2016
Сообщений: 27
01.09.2016, 15:21  [ТС] 12
Ага,впитал,спасибо.
Какой метод защиты будет более надежен и в тоже время проще реализуем?
0
1576 / 809 / 146
Регистрация: 13.06.2015
Сообщений: 3,026
01.09.2016, 20:11 13
Цитата Сообщение от Pylik Посмотреть сообщение
Какой метод защиты будет более надежен и в тоже время проще реализуем?
Такого не бывает. Либо вы платите знающим людям большие деньги, чтобы за взлом вашей проги пришлось (тем, кому это надо) заплатить ещё больше, либо она будет взломана максимум за час любым желающим.
Используемые этими людьми методы я назвал выше - обфускация с самомодификацией.
0
пофигист широкого профиля
4303 / 2821 / 798
Регистрация: 15.07.2013
Сообщений: 16,351
02.09.2016, 01:26 14
Цитата Сообщение от Pylik Посмотреть сообщение
Какой метод защиты будет более надежен и в тоже время проще реализуем?
Значит не "впитал".
0
Arcor
02.09.2016, 01:58
  #15

Не по теме:

Цитата Сообщение от Pylik Посмотреть сообщение
Какой метод защиты будет более надежен и в тоже время проще реализуем?
не писать программу вовсе, самый простой и надежный способ! Взлома не будет - гарантия

0
0 / 0 / 0
Регистрация: 17.04.2016
Сообщений: 27
02.09.2016, 09:53  [ТС] 16
Немного погуглив,пришел к выводу что данный вариант можно просто немного запутать что бы усложнить работу крякеров. Может кто приведет пример как это сделать? А то сам буду топтаться на месте и писать код который ничего не дает)
0
3577 / 3048 / 821
Регистрация: 29.08.2013
Сообщений: 20,347
Записей в блоге: 2
02.09.2016, 12:14 17
Цитата Сообщение от Pylik Посмотреть сообщение
Есть необходимость запуска софта с проверкой.
может "в консерватории что-то поменять"(с)?

может переписать ПО так что бы проверки совсем не было?
0
пофигист широкого профиля
4303 / 2821 / 798
Регистрация: 15.07.2013
Сообщений: 16,351
03.09.2016, 02:13 18
Цитата Сообщение от Pylik Посмотреть сообщение
Немного погуглив,пришел к выводу что данный вариант можно просто немного запутать что бы усложнить работу крякеров.
Просто немного запутать? Это как? Я лично не знаю варианта как "просто" запутать.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.09.2016, 02:13

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Активация программы
Привет, можете подсказать как сделать активацию программы? Короче, сделал хорошую прогу и нужно,...

Активация программы
возможно ли сделать так тчобы программа сама себя активировала?? Как? Почему нет?

/Активация программы CS4
Как активировать Adobe Premiere Pro CS4

Активация программы за СМС
Здравствуйте Уважаемые. Друган провёл экскурсию по порно-сайтам и вылезла вот такая хрень. Кто...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

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