Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Технологии защиты программного обеспечения > Технологии защиты программы.


Автор: SABROG 19.12.2007, 11:21
Интересует какие существуют технологии для коммерческого распространения программ. Нужны не фирмы с названием продуктов, а именно технологии которые они используют: запись в реестр спец.ключей, проверка контрольной суммы exe файла, защита от "подсадки"/отладки, эмуляции и т.д.

Например, что можно использовать для определения того, что пробный (trial) период истек ?
Скажем пользователь переведет часы назад, но ведь в системе должны быть какие-то следы того, что создавались файлы у которых дата выше текущей и если таких файлов находится не один и не два, то значит человек обманывает. 
Или в исходниках программы написать макрос, который будет генерировать период дат: текущая дата компиляции +30 дней и эта дата будет прошита в исходнике. Исполнимый файл можно зашифровать одним ключем, а вот расшифровываться он будет триальным ключем. Таким образом человек не сможет изменить exe файл. Ему придется лезть в память распакованного процесса, поэтому тут тоже надо придумать каким образом обезопасить программу от изминения. Скажем создать плавающий участок секции данных, который шифровать, таким образом, чтобы в памяти всегда были разные наборы байтов (защита от поиска нужной последовательности), выбирать всегда новые адреса для секции данных. Пользователь тогда полезет в секцию кода, чтобы изменить инструкции. Но и тут надо что-нибудь придумывать, чтобы защитить код от изменения и т.д.

Автор: baldina 23.12.2007, 21:22
Цитата

запись в реестр спец.ключей, проверка контрольной суммы exe файла, защита от "подсадки"/отладки, эмуляции и т.д

используют различные комбинации этого всего; еще используют аппаратные средства...
какое "коммерческое" надо защищать? Для ПО за $10 и за $1000 защита будет разной.

а вобщем имхо лучшая защита - нестандартная защита (при условии что она грамотно реализована).

проще сказать, какой не должна быть защита, такой:
Код

if (b_unregistered_version)
{
  MessageBox ("Незарегистрированная версия");
  return;
}
else
{
  ...
}


т.е. не должно все сводиться к элементарному, легко исправляемому jz

Автор: mmvds 23.12.2007, 21:53
вам на www.cracklab.ru

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)