AL CAPONE
Гость
|
|
« : 01-04-2005 14:59 » |
|
Всем привет ! Подскажите люди, как сделать защиту своей программы более-менее надёжной. Нужно чтобы при запуске она проверяла дату и если она позже заданной, то EXE-файл должен выдавать заданное сообщение и закрываться. Переустановка программы заново не должна ничего давать, т.е. я так понимаю информация о дате должна храниться где-то в реестре. Лучше даже удалять все файлы программы с диска, включая и EXE-шник, но как это сделать, не знаю. Помогите информацией. Только пишите пожалуйста поподробнее, а то я в Делфи не большой мастак.
|
|
|
Записан
|
|
|
|
Skyhawk
Гость
|
|
« Ответ #1 : 02-04-2005 13:18 » |
|
Можно не мучаясь скачать с www.torry.ru компонент типа TShareware и установить. Если хочешь сделать Trial версию, то лучше сделай ограничение по количеству, хотя это почти то же самое что и по дате. Тогда сохранять свои данные тебе придется в каком нибудь стороннем ключе, но не в системном типа Windows\CurrentVersion.
|
|
|
Записан
|
|
|
|
AL CAPONE
Гость
|
|
« Ответ #2 : 04-04-2005 12:41 » |
|
Всем привет ! Shareware-программы я продавать не собираюсь. Таким способом я хочу проучить своего "любимого" курсовика, подсунув ему дипломный проект с таким вот сюрпризом (кстати по его милости я лишился повышенных стипендий в 3-х семестрах). Хакер из него никакой, так что до взлома дело тут не дойдёт, а программу он переустановить всё-таки попытается. Так что кто знает, как мне конкретно помочь на Делфи-7, пишите, только пожалуйста поподробнее, желательно с каким-нибудь примером или алгоритмом. Нужно : 1) после определённой даты выдать сообщение типа "Иди-ка ты НАХ"; 2) закрыть программу и стереть все её файлы, желательно даже с EXE-шником; 3) переустановка ничего не должна давать; 4) можно повеселиться типа формата HHD или ещё чего-нибудь (новаторские мысли приветствуются). Помогите люди, как мне его проучить !!! Решение проблемы с помощью Автомата Томпсона просьба больше не предлагать ))
|
|
|
Записан
|
|
|
|
Alf
Гость
|
|
« Ответ #3 : 04-04-2005 14:27 » |
|
AL CAPONE, много лет назад я делал программу для одного весьма хитроумного товарища, который, как я подозревал, возьмет ее для перепродажи и при этом постарается меня надуть. (Впоследствии именно так и оказалось, поэтому меры предосторожности не помешали). Программа работала под DOS, поэтому трюки с реестром были исключены. Точно так же исключил я стирание информации с жесткого диска, поскольку разумные люди всегда делают архивные копии, так что большого урона этим не нанесешь, а себя сразу выдашь с головой. Я выбрал другой вариант. Выбрал некую ключевую дату (месяца через 3 после передачи программы заказчику). Программа вычитала эту дату из текущей. Если разность отрицательна (т.е. дата еще не наступила), то программа ничего не делает. Если же дата пройдена, то программа генерирует случайное число в диапазоне от 0 до 99. Если это число больше количества дней, прошедших от заданной даты, то ничего не происходит. Иначе генерируется сбой. При такой стратегии каждый день вероятность сбоя программы возрастает только на 1%. То есть в среднем в первый день программа вылетает в 1 случае из 100, во второй - 2 из 100 и т.п. При этом сложно догадаться, что причина кроется именно в дате, поскольку умирает программа долго и мучительно, сбои поисходят все чаще и чаще, пока наконец через 100 дней вероятность сбоя не станет равной 100%. (Кстати, можешь остановиться на меньшей цифре, чтобы иногда она все-таки работала, это еще больше сбивает с толку; тогда проклинать будут не тебя, а Билла Гейтса, который якобы не умеет делать операционные системы, но ему не впервой, он переживет). Сам сбой имитировался при помощи другого генератора случайных чисел, чтобы причина больше была похожа на естественную ошибку. Например, если выпадет 1, программа делит число на 0, если 2, обращается к несуществующему элементу массива и т.д., то есть никто никого никуда не посылает, все ошибки выглядят вполне естественно. Всего их было десятка три, в том числе зацикливание чтения входного файла (вылетает по концу файла), перерасход кучи при создании динамических объектов и т.п. Думаю, такого алгоритма тебе вполне хватит. Генератор случайных чисел есть готовый, сделать CASE с массой разных ошибок тоже несложно. Если ты совсем коварный злодей, поставь генератор ошибок в самом конце программы, перед выводом результата, чтобы еще обиднее было
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #4 : 04-04-2005 15:06 » |
|
Alf злобно то как.
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
nikedeforest
|
|
« Ответ #5 : 04-04-2005 16:58 » |
|
КЛАСС!!!
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
Alf
Гость
|
|
« Ответ #6 : 04-04-2005 19:56 » |
|
Ну, злобно не злобно, а ситуацию помогло разрулить Программа предназначалась для микрофотонаборной установки, которая делала прецизионные шаблоны для микросхем. Есть у нас в стране такой прикол - выпускать оборудование, к которому не прилагается программ. Каждый сам себе Кулибин, выкручивается как может. Ну и мне в отдел такая установка досталась, пришлось изобрести для нее софт. А тут другая фирма в гости пожаловала, у которых такая же без дела пылилась, попросили сделать и им такую же программу. Только моя программа работала на мэйнфрейме VAX 11/725, а они раскошелились на IBM PC AT 286, новинка по тем временам. Как раз пришлось Borland Pascal ради такого дела изучить, чтобы перенести ее. Один жучок взялся быть посредником в этом деле, провел сделку через свою фирму. Только вот решил, что клавиши топтать - невеликий труд, поэтому с программера хватит и 10% суммы (для справок - в то время исполнитель обычно получал на руки порядка 90%, налогов почти не было). А себе за тяжкий труд взял, так уж и быть, остальное. Три месяца заказчик на программу не мог нарадоваться. А потом жизнь заказчика начали омрачать сбои. Сначала редкие, потом все чаще и чаще, а потом и совсем невмоготу стало. Самое главное, что расчет топологии шел довольно долго, и обидно было долго ждать, чтобы потом все пропало из-за какого-то деления на нуль или выхода за границы массива. В общем, когда терпение иссякло, взяли официального исполнителя за жабры, и пришлось ему расплатиться по-честному. Разумеется, на следующий же день заказчик получил программу, работающую как часы. Вот такая история, господа. Увы, в моей практике не единственная. Порой, чтобы получить заработанное, приходится закладывать подобные бомбы с часовым механизмом в свои изделия. Ибо совесть есть далеко не у всех заказчиков.
|
|
|
Записан
|
|
|
|
nikedeforest
|
|
« Ответ #7 : 06-04-2005 15:16 » |
|
Альф, по-моему ты немного был неправ, ведь кроме этого наглеца-посредника пострадал ни в чем невиноватый заказчик, который, я так понял, исправно выплатил все что было надо.
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
Alf
Гость
|
|
« Ответ #8 : 06-04-2005 19:09 » |
|
Пострадал, это верно. Но недолго, потому как посредника быстренько прижали к стенке, и он сразу же расплатился. А там уж осталось всего лишь извлечь закладку из программы, минутное дело. Тем более что корректная версия программы у меня была заготовлена заранее на случай, если я ошибся в человеке и он расплатится по-честному. Тогда под видом апгрейда можно было передать заказчику чистую программу. Однако, к сожалению, предчувствия меня не обманули.
Увы, другого способа выколотить заработанное у меня не было, ибо сам я не бандит и прибегать к их услугам особого желания не испытывал. Оставалась альтернатива: или заставить заказчика немного понервничать, или самому остаться в дураках. Пришлось выбрать первое.
|
|
|
Записан
|
|
|
|
Igel
|
|
« Ответ #9 : 20-04-2005 15:35 » |
|
Альф, уважаю! Хорошо придумано, с такой сноровкой, понимаешь. Обязательно запишу твой рецепт. Может и не пригодится, но идея замечательная...
|
|
|
Записан
|
Ёжики, это не только ценные шкурки...
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #10 : 21-04-2005 08:19 » |
|
Зачем дату хранить в реестре? Зашей ее в код программы! Для пущей защиты храни её в Integer. НО!!! Учти - многие уважающие себя фирмы запросто могут позвонить твоему преподу (при твоём устройстве на работу).
|
|
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
Botkin
Гость
|
|
« Ответ #11 : 28-04-2005 10:25 » |
|
А я думаю, надо забить на защиту! Надо рассчитывать на добросовестность пользователя! Зацените лучше мой сайт www.botnik.narod.ru и сделайте предложения по поводу моих программок.
|
|
« Последнее редактирование: 28-04-2005 10:29 от Botkin »
|
Записан
|
|
|
|
|
Harry
Команда клуба
Offline
|
|
« Ответ #13 : 17-06-2005 13:55 » |
|
ALF, идея - просто СУПЕР! Спасибо за нее большое, я как раз ломаю голову, как защитить программу от недобросовестного покупателя, а тут такая идея.....
|
|
|
Записан
|
Слабый пол силен в силу слабости сильного пола к слабому
|
|
|
Alf
Гость
|
|
« Ответ #14 : 17-06-2005 14:05 » |
|
Harry, рад, что пригодилось Самое главное тут - запастись терпением. Программа должна помирать медленно, чтобы не закралось подозрение: вчера (неделю назад) работало, а сегодня вдруг перестало, а давайте-ка подвинем часы назад и посмотрим, что получится. Тогда покупателю волей-неволей придется прийти к тебе на поклон, ну а там уж будет возможность получить обещанное. Ну а если заказчик все же окажется честным (и такие порой бывают) - тоже не беда, всегда можно под видом исправления обнаруженной ошибки заменить программу полноценной версией.
|
|
|
Записан
|
|
|
|
Harry
Команда клуба
Offline
|
|
« Ответ #15 : 17-06-2005 14:07 » |
|
А я думаю, надо забить на защиту! Надо рассчитывать на добросовестность пользователя!
Ага! А дверь домой лучше оставлять незапертой и ключ, на всякий случай, держать на виду, на гвоздике. Кстати, реклама на форуме, насколько я помню затирается
|
|
|
Записан
|
Слабый пол силен в силу слабости сильного пола к слабому
|
|
|
Harry
Команда клуба
Offline
|
|
« Ответ #16 : 17-06-2005 14:10 » |
|
Alf, тут плохо другое - этот метод не сработает, если заказчик честно заплатит деньги, а уж ПОТОМ начнет программу перепродавать. Но тут, по-моему, ничего не сделаешь....
|
|
|
Записан
|
Слабый пол силен в силу слабости сильного пола к слабому
|
|
|
Alf
Гость
|
|
« Ответ #17 : 17-06-2005 20:55 » |
|
Да, что-то сделать в такой ситуации и впрямь трудно... Хотя я бы все же сделал что-то вроде опции Help/About, где выводятся данные об истинном разработчике программы и контакты на случай возникновения вопросов при ее эксплуатации (а вопросы и пожелания наверняка возникнут, если программа нетривиальная). Вот тут-то все тайное и станет явным Конечно, эти данные лучше зашифровать, чтобы их не так легко было найти и потереть или переправить. В этом случае, конечно, защиты от копирования не достигнешь такими простыми методами. Но хотя бы шапка на воре загорится, и то дело
|
|
|
Записан
|
|
|
|
krulik
Гость
|
|
« Ответ #18 : 20-06-2005 05:24 » |
|
А файлик то удален. Если не тяжело скинь на мыло krulikovskiy@yandex.ru. Alf идея просто супер. Надо было запатентовать идею, прибыльное дело вышлобы .
|
|
|
Записан
|
|
|
|
|
baldr
|
|
« Ответ #20 : 24-06-2005 09:48 » |
|
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
monrus
Опытный
Offline
|
|
« Ответ #21 : 24-06-2005 20:46 » |
|
Качай AsProtect. Его довольно-таки трудно снимать с дельфи программ. ТОлько версию поновее. Или пользуйся другими навесными защитами типа Orien. IMHO Самому делать защиту не рентабельно!
|
|
|
Записан
|
|
|
|
zubr
Гость
|
|
« Ответ #22 : 06-07-2005 09:10 » |
|
После того, как заказчики меня несколько раз обманули (разрабатывал программы удаленно), ставлю в свои программы BackDoor.
|
|
|
Записан
|
|
|
|
Harry
Команда клуба
Offline
|
|
« Ответ #23 : 06-07-2005 09:25 » |
|
А какие могут быть идеи по защите дисков от копирования? Хотя бы простенькой....
|
|
|
Записан
|
Слабый пол силен в силу слабости сильного пола к слабому
|
|
|
Alf
Гость
|
|
« Ответ #24 : 06-07-2005 10:07 » |
|
В былые времена затейники прокалывали иголкой флоппик. Уверяли, что при чтении такого сектора считывание неустойчивое, данные меняются случайным образом. При перезаписи достичь этого эффекта не удается, данные считываются устойчиво, что и является признаком копии.
Возможно, при должной сноровке удастся аналогичным образом подпортить компакт (механически или лазерным лучом).
|
|
|
Записан
|
|
|
|
zubr
Гость
|
|
« Ответ #25 : 06-07-2005 15:42 » |
|
Сравнительно недавно я делал под заказ защиту диска от копирования. Суть в том, что перед записью диска, в код программы прописывалась дата до которой диск мог действовать, после записи программы с диска на жесткий диск компьютера, программа привязывалась к номеру жесткого диска, то есть CD через некоторое время становился негодным и программа, записанная на жесткий диск могла работать только на этом диске.
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #26 : 06-07-2005 18:11 » |
|
zubr Очень плохая зашита. Допустим у меня слетел виндовс. Естественно надо переустанавливать все проги. И что получается я не смогу поставить твою прогу? Хотя за нее честно заплочены деньги? И хакнуть такую зашиту тоже делать нечего. Установил дату соответствуюшию на комп и вперед и с песней.
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
zubr
Гость
|
|
« Ответ #27 : 06-07-2005 19:18 » |
|
FinchНу во первых, эта защита не претендует на крутую, речь шла о простой защите. Во вторых, там была защита от отматывания даты (шарится папка Windows на даты, так что надо систему чистую ставить с нужной датой). В третьих, при переустановки Виндовс номер диска не меняется, если только не меняются разделы или не создаются новые.
|
|
|
Записан
|
|
|
|
Alf
Гость
|
|
« Ответ #28 : 06-07-2005 20:28 » |
|
А в чем заключается собственно защита диска от копирования? Из приведенного описания я увидел лишь привязку к времени, а затем к оборудованию. Если своевременно сделать тысячу копий и раздать страждущим, все они смогут установить программу, если не просрочат. А вот законный владелец через некоторое время вместо оплаченного диска с дистрибутивом получит блестящий кусок поликарбоната.
Вряд ли это то, о чем спрашивал Harry.
|
|
|
Записан
|
|
|
|
zubr
Гость
|
|
« Ответ #29 : 07-07-2005 03:41 » |
|
Alf Согласен, это была защита не столько диска от копирования, сколько программы от копирования. Заказчик программы диск передавал лично клиенту, поэтому допустимый временной интервал он устанавливал небольшой (1-2 часа) + клиенту про время то еще знать надо. Смысл здесь в том, что человек, получив дистрибутив, может воспользоваться им только на своем компьютере. Естественно, если он будет менять разделы, или вообще поменяет винт, то ему придется обращаться к продавцу. P. S. Идеальных защит, а тем более от копирования, я еще не встречал.
|
|
|
Записан
|
|
|
|
|