• XSS.stack #1 – первый литературный журнал от юзеров форума

Как сделать защиту от копирования ПО?

hahbah

Кодер C/C++
Пользователь
Регистрация
29.10.2021
Сообщения
148
Реакции
63
Гарант сделки
7
Необходимо реализовать защиту от копированию ПО.
Интересуют различные варианты: оффлайн и онлайн, лицензия по времени и тд.
Буду благодарен за ссылки и комментарии.
Исходиники на C++(qt).
 
Когда то давно писал бэкенд на ноде для лицензирования своих софтов, если интересно могу поделиться
Бэк был на ноде, само приложение которое лицензировал быыло на Делфях
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Любая защита обходится, кроме серверной. Смотри в сторону вынесения части функционала на серв.
Либо делай чек на клиенте, но придется код обфусцировать. Если твоему приложению нужна производительность, то это проигрышный способ.
 
Любая защита обходится, кроме серверной. Смотри в сторону вынесения части функционала на серв.
Либо делай чек на клиенте, но придется код обфусцировать. Если твоему приложению нужна производительность, то это проигрышный способ.
Ну, я это все понимаю.
По этому у меня кроме привязки по хвиду ничего и не приходит. И то, очень легко обойти будет.
 
По этому у меня кроме привязки по хвиду ничего и не приходит.
Онлайн рега - это плохая практика, и подходит только для больших проектов.
Если-же софт просто пытается скрыть какие-нибудь наработки автора, клиенты тупо откажутся от него, чем регать через сеть. В таких случаях только офлайн. Хакнуть конечно можно всё, но затруднить поиск можно например так:
  1. Устанавливаешь свой обработчик ошибок SEH/VEH;
  2. Юзер вводит пароль, а ты его ксоришь открытым ключом;
  3. Полученный результ должен представлять собой оригин.точку входа ОЕР.
Таким образом, без валидного пасса невозможно будет перейти на нужный участок кода. Так ты избавляешься от проверок типа JZ/JNZ, которые взломщик попытается обратить. Если пароль неверный, то проц прыгнет на рандомный участок кода, и рано-или-поздно возникнет исключение, которое отловит твой SEH. В купе с обфускацией, вариант даёт хороший профит.
 
Онлайн рега - это плохая практика, и подходит только для больших проектов.
Если-же софт просто пытается скрыть какие-нибудь наработки автора, клиенты тупо откажутся от него, чем регать через сеть. В таких случаях только офлайн. Хакнуть конечно можно всё, но затруднить поиск можно например так:
  1. Устанавливаешь свой обработчик ошибок SEH/VEH;
  2. Юзер вводит пароль, а ты его ксоришь открытым ключом;
  3. Полученный результ должен представлять собой оригин.точку входа ОЕР.
Таким образом, без валидного пасса невозможно будет перейти на нужный участок кода. Так ты избавляешься от проверок типа JZ/JNZ, которые взломщик попытается обратить. Если пароль неверный, то проц прыгнет на рандомный участок кода, и рано-или-поздно возникнет исключение, которое отловит твой SEH. В купе с обфускацией, вариант даёт хороший профит.
Спасибо
 
Пожалуйста, обратите внимание, что пользователь заблокирован
  1. Юзер вводит пароль, а ты его ксоришь открытым ключом;
  2. Полученный результ должен представлять собой оригин.точку входа ОЕР.
во-первых, ты ограничиваешь длину пароля таким способом до 8<= длина пароля <= 8. в x64.
во-вторых, пароль слить могут. Это будет работать, только если разные ксоры делать или разные точки входа. Причём всё это на каждый бинарь.
ТС хочет защитить бинарь от копирования, а тут получается просто комплект: бинарь + пасс к нему.
 
Любая защита уже ограничит копирование. Любую защиту можно обойти. Тут лучше решать проблемы по мере поступления. Если ты не разработчик именно защиты от копирования, то сделай любую. Простую проверку лицензии можно сделать как-то так: https://xss.pro/threads/99254/#post-688394 Можно экзешник всё время по новому обфусцировать и компилить на сервере и при запуске проги его раз в сутки подгружать свежий. Соответственно все патчи и лаунчеры-инжекторы будут стираться и наработки кулхакера обнуляться. Но я бы как пользователь конечно не был рад, если бы у меня какая-то прога всё время качала свежий ехе. Хотя, много кто из массового софта всё равно так делает.
ЗЫ: Как обфусцировать - хакер любит найти какую-то сигнатуру, отследить её, найти функцию проверки и в одной точке программы сделать патч. И чтоб сама фунция проверки лицензии с первого раза работала. То есть надо ему "помочь" - сделать таких сигнатур сотни, из них ни одной правильной. И мест для патчей тоже сотни. И функция чтобы статистически раз на 100 работала. :)
 
Последнее редактирование:
попробуй themida.
 
Obsidium, Enigma, Themida, WinLicense, VMProtect - на сегодняшний день самые мощные протекторы. Если ты автор софта - то в комплекте протекторов есть SDK для более глубокого морфинга, так же есть на выбор как локальные так и серверные виды лицензий и привязка к HWID, короче изобретать свой велосипед смысла нет.
 
Глупая затея в целом, вариант - вынести часть логики на сервер, но это привязка к работе с сетью.
весь хорошо защищенный софт делалася именно так. Потому ломанные версии криво работали, или имели ограниченный функционал

Хоть я и не профи, но если подключить бизнес-логику. А оно того стоит? все что выше описано?
Если да, то взвесить объем продаж и риски утекания сорцов\рабочей версии
С другой стороны (клиента), много чего обходится, но совсем не бесплатно.

То есть если условно твой софт стоит 100 баксов и продастся в 20 рук, то маловероятно, что кто-то закажет обход защиты за 2000
Тогда хватит тех известных, проверенных решений, что выше перечислили

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

У всего есть своя арифметика. От нее бы и надо танцевать, а не от абстрактного набора методов - это экономика, она и должна, по идее все решать
Автор подходит к задаче как кодер, а не как овнер\продажник =)
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх