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


Автор: trix 31.8.2004, 09:12
Подскажите как конкретно реализовать защиту. К примеру прога работает 30 дней, после этого в ней исчезают некоторые возможности пока юзер ее не купит (или сломает smile.gif. Есть ли у кого ссылки на литературу по этому поводу, либо сама литература???
буду очень благодарен!

Автор: ManiaK 31.8.2004, 10:38
А к чему, не понимаю?! Разве наш народ программистский ещё не понял, что на шароварах ничего не заработать? У меня друг(ныне покойный, к сожалению butbut.gif ) написал прогу. К ней через неделю сделали ломалку. Он выпустил ещё одну версию - с более сложной защитой. Сломали через две недели. Эдак можно 99% времени тратить только на защиту... Выход? DonatateWare. Хошь - плати, хошь - не плати. Сам не проверял, но, говорят, действует. Хотя это тоже - на пиво(или кто что пьёт) заработаешь, а дальше - дохло. Реально можно заработать на заказных программах. ИМХО...

Автор: chipset 31.8.2004, 10:44
Цитата
Разве наш народ программистский ещё не понял, что на шароварах ничего не заработать?

Но не зря же едят свой хлеб фирмы типа RegNow и.т.д? Живут ведь..
Другое дело что придумать оригинальную программу трудно, но это исключительно проблемы команды которая решила продать прожку.

Автор: Gold Dragon 31.8.2004, 10:48
Я делал проверку по дате и времени и загонял данные в реестр и дублирующий файл в windows/system.

При открытии прога проверяет данные из реестра и файла (равны ли). Потом смотрит системное время и дату, исли меньше, то блокирует прогу. А при выходе записивал новые дату и время. Ещё следил чтобы во время работы время и дату не переводили, т.е. не получилось что новые дата/время меньше tounge.gif

А вообще - это гемор tounge.gif

Автор: Конструктор 31.8.2004, 10:51
Red Dragon, такой подход можно резво отследить утилитками от Sysinternals biggrin.gif

Автор: chipset 31.8.2004, 10:53
блокировать программы Sysinternals на время создания файла или создавать его нестандартным методом

Автор: Gold Dragon 31.8.2004, 11:27
А я и сказал, что это всё гемор. Как вариант, данные записывать в сам EXE`шник.

Автор: Wowa 31.8.2004, 11:32
на форуме уже были темы по защите программ. Пользуйтесь поиском. Там обсуждение далеко ушло очень.

Автор: trix 31.8.2004, 12:18
Цитата
Пользуйтесь поиском

воспользовался, только все это вода.
если конкретно, то меня интересует слудущий вопрос:
от куда мне брать серийный номер и как из него сделать регистрационный?

Автор: chipset 31.8.2004, 12:27
Цитата
от куда мне брать серийный номер и как из него сделать регистрационный?

Вкратце:
1. Генеришь своей программой, при первом запуске серийный номер
2. Записываешь его
3. Устанавливаешь состояние программы как "незарегистрирована-триал-30-дней" и дату когда она была первый раз запущена.
4. Прячешь последнее в ОЧЕНЬ скрытном месте, чтобы никто не мог найти ну и кодируешь там соотсветсвенно
5. Передаешь пользователю серийный номер
6. Пользователь отсылает его тебе на мыло (упрощенно).
7. Ты SN (серийник) преобразуешь по какой то формуле (важно).
8. Отсылаешь полученное юзверю
9. В программе на вражеской (то есть пользователя) стороне встроена такая же формула.
10. Программа сверяет полученное от юзера со своими сгенерированым числом.
11. Если правильно, благодарим и записываем в ОЧЕНЬ скрытное место информацию, типа всё клёво он зарегился больше препятсвий ему не чинить.
12. Если нет, вычисляешь дату и применяешь то что Red Dragon говорил.
..
Главное чтобы: юзер не нашел где храниться статус, не узнал формулу.
Вопросы по всем этапам приветсвуются smile.gif

Автор: trix 31.8.2004, 12:39
2chipset, спасибо, но если тебе не трудно, распиши точно так же следующие пункты.
Цитата
Генеришь своей программой, при первом запуске серийный номер

Цитата
Ты SN (серийник) преобразуешь по какой то формуле (важно).

хотя бы приблезительно, чтоб я знал на что ориентироваться.

Автор: <Spawn> 31.8.2004, 12:43
trix В качестве серийника может и GUID подойти, если не придумаешь своего алгоритмаsmile.gif См F1 + CoCreateGUID

Автор: chipset 31.8.2004, 12:47
Цитата
Генеришь своей программой, при первом запуске серийный номер

Запускаешь рандомизатор (к примеру юзаешь rand() + srand() в C) и генеришь какое то определенное случайное число.
Такое происходит если нету записи обозначающей статус.
Цитата
Ты SN (серийник) преобразуешь по какой то формуле (важно).

Необходимо придумать формулу, желательно очень сложную чтобы две разных программы (на твоей и юзверя) смогли проверить результат.
Допустим юзверь отсылает число - "256".
Кейген на твоей машине преобразует число по страшно сложной формуле (пусть будет x*2)
и получает 512.
Затем он отсылает полученное 512 пользователю, программа на его машине опять же превращает свой SN в контрольное число (512) и сверяет с полученным.
Если я допустим введу в программу не 512, с этого определенного ключа, то мне не удастся снять ограничения.
С другой стороны на чужой машине заранее сгенерированное число может быть не 512, а 512 или 912..
Сорри за немного невнятное обьяснение sad.gif

Автор: trix 31.8.2004, 12:53
Всем Очень Благодарен!
Red Dragon
chipset
<Spawn>
с меня пиво.

Автор: Gold Dragon 31.8.2004, 14:29
Цитата(trix @ 31.8.2004, 13:53)
с меня пиво.
qstn.gif

Автор: Ignat 31.8.2004, 14:32
Red Dragon, будешь сливать пиво по интернету smile.gif

Автор: Gold Dragon 31.8.2004, 14:34
Ignat
Нужен новый протокол прибумать и какой-нибудь пивной браузер, спецификацию по сортам, определить скорость передачи (чтоб за рабочий день не стать алкоголиком)

Автор: Ignat 31.8.2004, 14:36
А урл какой?
beer://beer.light.cz/kozel/drink.bot

Автор: Gold Dragon 31.8.2004, 14:41
Ignat
Расширение не правильное, нужно вот как
drink.b4 - для пива 4%
drink.b5 - для пива 5%
drink.b5t - для пива 5% тёмного
...
drink.v40 - для водки

Автор: trix 31.8.2004, 14:44
user posted image
Балтика # 9, крепкое.
Светлое.
Плотность - 16,5%.
Крепость - 8% vol.
Калорийность - 62 ккал.
Добавлено @ 14:46
есть и другие сорта, но уже за деньги.

Автор: Ignat 31.8.2004, 14:48
Цитата(Red @ 31.8.2004, 15:41)
Расширение не правильное, нужно вот как
drink.b4 - для пива 4%
drink.b5 - для пива 5%
drink.b5t - для пива 5% тёмного
...
drink.v40 - для водки


Тогда лучше drink.а96 smile.gif

Автор: Gold Dragon 31.8.2004, 14:58
Цитата(Ignat @ 31.8.2004, 15:48)
Тогда лучше drink.а96

Не, трафик загружать сильно будет

Автор: Ignat 31.8.2004, 15:16
Ну нет больше всего будет грузить drink.b4 - его не меньше ведра на нос надо.
А drink.a96 со стакан слил и по уши.

Автор: Клявас® 1.9.2004, 16:14
ахахахахахахаа
ну вы и шутники biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif

Автор: bel_nikita 1.9.2004, 23:11
Цитата
Необходимо придумать формулу, желательно очень сложную чтобы две разных программы (на твоей и юзверя) смогли проверить результат.
Допустим юзверь отсылает число - "256".
Кейген на твоей машине преобразует число по страшно сложной формуле (пусть будет x*2)
и получает 512.
Затем он отсылает полученное 512 пользователю, программа на его машине опять же превращает свой SN в контрольное число (512) и сверяет с полученным.
Если я допустим введу в программу не 512, с этого определенного ключа, то мне не удастся снять ограничения.
С другой стороны на чужой машине заранее сгенерированное число может быть не 512, а 512 или 912..

Я не знаю, но может в этом случае RSA подойдет. Там, как раз два ключа надо: открытый и закрытый. И реализовывается не сложно.
http://zahist.narod.ru/its2000_42.htm
http://zeus.sai.msu.ru:7000/nets/semenov/6/crypt_64.shtml

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