|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
29.08.2009, 17:40 | #1 | |
Форумчанин
Регистрация: 04.12.2008
Сообщений: 260
|
Коммерческая программа
Я понимаю, что идеальной защиты нет и не будет, но все же каким образом можно превратить программу в платную? Хотелось бы, что бы программа та работала, но была ограничена в некоторых возможностях. Т.е например не работала пару кнопок. Желательно, что бы программа брала ID железа, который желающий приобрести продукт отсылал его мне, в ответ получал ключ и после этого все становилось доступным.
Может подскажете для этого дела какой-нибудь хороший компонент или подкините иные идеи?! Нашел вот такое: http://www.delphilab.ru/content/view/282/72/ Там с примером с генератором ключей, как думаете нормальный компонент? Так же интересует последний комментарий от туда: Цитата:
Я бы изменил мир, но Бог не дает исходники...
|
|
29.08.2009, 17:56 | #2 |
Форумчанин
Регистрация: 13.10.2008
Сообщений: 714
|
http://delphiexpert.ru/view_download.php?id=123 Советую разобраться
|
29.08.2009, 17:57 | #3 |
Участник клубаДжуниор
Регистрация: 23.08.2008
Сообщений: 1,616
|
Алгоритм можно любой, хоть такой:
Код:
Где то так: Код:
Так же прочитайте это: http://wasm.ru/article.php?article=1017001 Для обмена ключём используйте сокеты.
pushl $0x18E3DF6B
call ICQ |
29.08.2009, 18:28 | #4 |
Участник клуба
Регистрация: 12.08.2008
Сообщений: 1,977
|
Идеально в этом случае работает демо-версия. Это версия . где возможности программы показаны, но отсутствует какое либо важное функциональное значение.
Например программа обработки каких либо файлов может открыть(прочитать, сохранить и т.п.) только три (цифра для примера) файла, что явно не достаточно для серъезной обработки. Или в демо версии заложена работа только с минимальными цифровыми данными (на уровне byte) , что не позволяет решать нормальные задачи (без чисел на уровне integer). Важен баланс между востребованностью Вашей программы и степенью защищенности. Идеальной защиты от взлома нет, на любом уровне!
И не сомневайся даже ... отдых - кайф, работа - лажа!
|
29.08.2009, 23:37 | #5 |
Пользователь
Регистрация: 28.08.2009
Сообщений: 90
|
тоже недавно изучал тему, как лучше поступить с платной версией. В результате, пришел к решению сделать отдельную бесплатную версию без сохранения настроек программы (в платной сохранять можно), а ключик уже к платной идет. причем проверяется ключ в разных местах по-разному, с кучей левых команд, и не дает программе спокойно работать (всякие exceptions возникают и некорректные выходные данные получаются, если ключ кривой)
|
31.08.2009, 02:43 | #6 |
Пользователь
Регистрация: 12.10.2007
Сообщений: 32
|
Советую распространять демку вручную, а полную версию высылать на мыло после оплаты, ибо все защиты обходятся на раз два.
Если все же будете писать сами - то незабудьте про эмуляцию винапи ф-ций, самоконтроль, шифровку тела (никогда в памяти файл не должен лежать целиком), антиотладку (например через контроль fs:[0]). Вобщем всего не упомянуть=) p.S>Прием на закуску, разместите проверку ключа в любой неиспользуемой винапи ф-ции, реверсера это очень порадует=)))
Si vis pacem, para bellum!
|
31.08.2009, 13:20 | #7 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
Компоненты - сразу нет. Без написания дров можно:
- самый простой способ - выполнять важные действия в обработчике исключения: try <ложный_защитный_механизм> except <настоящий> end; умышленно создавая ошибки в ложном механизме, это во-первых элементарно реализуется и уводит крякера в лес, не вызывая лишних подозрений, а во-вторых если он поймёт, что защита не там, то трассировать из-под юзермодного отладчика цепочку SEH всё-равно не самое приятное дело, особенно если сделать несколько обработчиков - On E: EЧётотамException do ... Потом крякеру это надоест, и он либо потеряет интерес к программе, либо возьмёт ядерный отладчик. - "раствориться" в программе - напихать защитного кода в system.pas и перекомпилить его - много народу банально переступит "стандартный" дельфийский run-time код. В sysutils заныкать кусок защиты в часто используемых функциях типа IntToStr. - использовать в защите классы с кучей наследников и виртуальными методами. Получим много-много функций, вызываемых по косвенным адресам (mov edx, ... / call edx) - проверять целостность кода в памяти и на диске, причём сделать несколько перекрывающихся участков так, чтобы одна процедура CheckCRC1 проверяла кусок кода, включающий в себя процедуру CheckCRC2, а та - CheckCRC3 и так пока не надоест. - сделать свою виртуальную машину: 10-20 команд, add, sub, mul, div, or, xor... и интерпретатор к ним. Как вариант - сделать кусок защиты отдельным модулем на перле/питоне или лучше форте, скомпиленным в exe. - попытаться не дать себя сдампить - заныкать точку входа в TLS-директорию и там же проинициализировать некие важные данные, и использовать одни и те же переменные/указатели под них далее в программе. Чисто на делфи такого сделать не выйдет. "if ... then close;" никогда не делать, не хранить строки в открытом виде, требовать перезапуск для проверки ключа Может всё-таки проще использовать протектор?
пыщь
|
31.08.2009, 13:25 | #8 |
Пользователь
Регистрация: 12.10.2007
Сообщений: 32
|
Как только протектор становится популярным (хорошим) его тут же ломают=)
Si vis pacem, para bellum!
|
31.08.2009, 13:40 | #9 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
Да, кстати, компонент из первого поста я уже где-то когда-то видел
http://programmersforum.ru/showpost....32&postcount=8
пыщь
|
31.08.2009, 14:20 | #10 |
Программист и
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,265
|
Брать открытый протектор и морфить его до неузнаваемости, запарятся искать распаковщик
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа. | Asentian | Фриланс | 14 | 25.04.2010 17:30 |
программа в С++ | Grizzli | Мультимедиа в Delphi | 1 | 24.06.2009 15:04 |
коммерческая недвижимость Германии | SWElleen | Софт | 0 | 20.06.2009 08:43 |
Программа | Fartyna3000 | Операционные системы общие вопросы | 4 | 06.12.2008 23:39 |