![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 | |
Форумчанин
Регистрация: 04.12.2008
Сообщений: 260
|
![]()
Я понимаю, что идеальной защиты нет и не будет, но все же каким образом можно превратить программу в платную? Хотелось бы, что бы программа та работала, но была ограничена в некоторых возможностях. Т.е например не работала пару кнопок. Желательно, что бы программа брала ID железа, который желающий приобрести продукт отсылал его мне, в ответ получал ключ и после этого все становилось доступным.
Может подскажете для этого дела какой-нибудь хороший компонент или подкините иные идеи?! Нашел вот такое: http://www.delphilab.ru/content/view/282/72/ Там с примером с генератором ключей, как думаете нормальный компонент? Так же интересует последний комментарий от туда: Цитата:
Я бы изменил мир, но Бог не дает исходники...
|
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 13.10.2008
Сообщений: 714
|
![]()
http://delphiexpert.ru/view_download.php?id=123 Советую разобраться
|
![]() |
![]() |
![]() |
#3 |
Участник клубаДжуниор
Регистрация: 23.08.2008
Сообщений: 1,616
|
![]()
Алгоритм можно любой, хоть такой:
Код:
Где то так: Код:
Так же прочитайте это: http://wasm.ru/article.php?article=1017001 Для обмена ключём используйте сокеты.
pushl $0x18E3DF6B
call ICQ |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 12.08.2008
Сообщений: 1,977
|
![]()
Идеально в этом случае работает демо-версия. Это версия . где возможности программы показаны, но отсутствует какое либо важное функциональное значение.
Например программа обработки каких либо файлов может открыть(прочитать, сохранить и т.п.) только три (цифра для примера) файла, что явно не достаточно для серъезной обработки. Или в демо версии заложена работа только с минимальными цифровыми данными (на уровне byte) , что не позволяет решать нормальные задачи (без чисел на уровне integer). Важен баланс между востребованностью Вашей программы и степенью защищенности. Идеальной защиты от взлома нет, на любом уровне!
И не сомневайся даже ... отдых - кайф, работа - лажа!
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 28.08.2009
Сообщений: 90
|
![]()
тоже недавно изучал тему, как лучше поступить с платной версией. В результате, пришел к решению сделать отдельную бесплатную версию без сохранения настроек программы (в платной сохранять можно), а ключик уже к платной идет. причем проверяется ключ в разных местах по-разному, с кучей левых команд, и не дает программе спокойно работать (всякие exceptions возникают и некорректные выходные данные получаются, если ключ кривой)
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 12.10.2007
Сообщений: 32
|
![]()
Советую распространять демку вручную, а полную версию высылать на мыло после оплаты, ибо все защиты обходятся на раз два.
Если все же будете писать сами - то незабудьте про эмуляцию винапи ф-ций, самоконтроль, шифровку тела (никогда в памяти файл не должен лежать целиком), антиотладку (например через контроль fs:[0]). Вобщем всего не упомянуть=) p.S>Прием на закуску, разместите проверку ключа в любой неиспользуемой винапи ф-ции, реверсера это очень порадует=)))
Si vis pacem, para bellum!
|
![]() |
![]() |
![]() |
#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;" никогда не делать, не хранить строки в открытом виде, требовать перезапуск для проверки ключа Может всё-таки проще использовать протектор? ![]()
пыщь
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 12.10.2007
Сообщений: 32
|
![]()
Как только протектор становится популярным (хорошим) его тут же ломают=)
Si vis pacem, para bellum!
|
![]() |
![]() |
![]() |
#9 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
![]()
Да, кстати, компонент из первого поста я уже где-то когда-то видел
![]() http://programmersforum.ru/showpost....32&postcount=8
пыщь
|
![]() |
![]() |
![]() |
#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 |