Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Защита софта [D5, D6, D7, NT4, Win2k, WinXP]


Страницы:   1 2

DeadMeat ©   (2003-03-31 21:03:00) 

Дарова программеры... У меня такой вопросик, который я думаю интересовал каждого, кто хоть раз писал программы на заказ: как защитить свою софтину от копирования на другой комп..., т.е. скопировать то всегда мона, а как сделать так, чтобы она там не работала... У меня есть набор компонентов x2000..., весьма неплохой наборчик для получения списка оборудования..., так вот, там есть такой компонентик, который считывает серийный номер материнской платы (или BIOS-а, щас не помню)... используя его мона защитить свой софт, т.к. у каждого он (серийник) свой... Но проблема в том, что этот компонент работает только в вин-9х.... Итак вопрос, как узнать этот серийник другим способом (или же если есть другой способ защиты, то тоже неплохо)... Заранее благодарен.....


aanco   (2003-04-06 18:28:00) [21]

{ Так можно получить дату BIOS }
Function GetBIOSDate: String;
begin
Result:= String(PChar(Ptr($FFFF5)));
end;


DeadMeat   (2003-04-06 13:17:00) [22]

> DJ_Sedoy

...зная, что програ займет на диске N кластеров, а сама она...

Такое я уже проходил, лечится копированием диска 1:1


...к примеру будем ориентироваться на серийный номер винта...

И это у меня было, после форматирования номер меняется, а NET есть не у всех...


...Как преобразовать exe файл знаешь?...

А вот это мысля хорошая, в купе с инсталлятором, который и будет лечить *.EXE-шник, метод в принципе неплох... А вот как сделать без инсталлятора и не знаю, если знаешь, то будь добр подскажи..., А так надо попробовать. Но всё же серийный номер (для генерации ключа) лучше брать от материнки... А вообще спасибо за идеи и мысли... Будем пробовать... и искать...


DJ_Sedoy   (2003-04-05 20:08:00) [23]

Насчет кластеров.
Можно и не помечать.
Когда я был маленький, была распространена такая фича:
зная, что програ займет на диске N кластеров, а сама она весит (N-1)*размер кластера+(размер кластера-10 байт) (то есть последний кластер будет не на 100% записан), мы можем дописать в оставшееся место что угодно - например ID проги... Это никем не сотрется (пока жива программа).

А если другие методы, то смотри:
к примеру будем ориентироваться на серийный номер винта (много было примеров). После инсталляции прога дает пользователю код (в виде преобразованного [для маскировки] номера винта) и работает например 15 дней. За это время пользователь должен послать тебе по e-mail этот код, а ты ему вернешь уже регистрационный код, который будет сгенерирован на основе полученного от пользователя кода. То есть та же защита по железу, но ехать тебе никуда не надо. И для каждого юзера код уникальный. А прога должна сверить - соответствуют ли номер винта и код активации. Тогда скорость взлома зависит от степени кодирования этого кода - пока не найдут ключ, не взломают (кроме сказанного ниже случая)

А обойти защиту можно элементарно, например убрав в коде jump на твою процедуру проверки законности использования ПО, или же просто в конце этой процедуры устанавливать флаг (ну или результат работы процедуры) в положение, которое соответствует лицензируемой проги.
Поэтому защиту лучше предусмотреть на уровне инсталляции, а не запуска/работы программы. Но тогда опять же очевидны минусы указанные выше.

Или вот еще. Как преобразовать exe файл знаешь? Где то на этом же сайте я встречал такое. Пусть например какой-то критичный участок программы будет "испорчен", а при вводе кода (а код опять же можно генерировать как сказано выше) этот участок тоже лечится по открытому алгоритму (то есть который в коде не замаскирован), но данными из этого кода. Тогда взлом вообще сложен - не зная кода, нельзя исправить тот участок, даже зная алгоритм восстановления (но не шифрования ключа).

Приношу свои извинения, если где-то непонятно или неточно выразился :)


Intell   (2003-04-05 19:09:00) [24]

Удалено модератором
Примечание: Личная переписка


DeadMeat   (2003-04-05 15:34:00) [25]

> Intell
То что сломают я не спорю... Просто в нашем городе таких людей не так уж много, да и к тому-же я почти их всех знаю... Дело не в том чтобы создать крутую защиту, а в том, чтобы софтину просто не переписали простые люди (или чуть продвинутые)... И к тому же не так уж часто я думаю будет вылетать "мамка", а я ведь хочу ориентироваться именно на неё (или чей там серийный номер в загрузке светится)...

> nikus
Идея в принципе хороша... Но есть такие люди, которые при виде хотя бы какой либо ошибке при ScanDisk-е сразу бегут в какой нибудь сервис центр, и меняют винт на новый... А вообще подобный метод защиты используется довольно давно, но я его встречал лишь на дискетах или CD... Это когда иголочкой прокалывается определённое место на диске (где-то в конце), затем специальной прогой выясняется где именно произошёл прокол и это место на диске становится некой меткой... А т.к. повторить подобный прокол на том же месте практически невозможно, то этот метод защиты становиться в какой то мере весьма эффективным, хотя ... от рук русских хакеров не ушла ни одна прога ...


Intell   (2003-04-05 12:13:00) [26]

Слухай DeadMeat. Если ты хочешь привязать прогу к железу, то забудь. Малейший сбой в драйверах или смена железа приведёт к тому, что тебе прийдётся переписывать прогу. Прислушайся к словам NightAngel`а. Он прав, от рук русских хакеров не ушла ни одна прога. Всё равно ломанут. Короче, даже если напишешь хорошую защиту, то она продержится не более полугода. Руки найдутся...


nikus   (2003-04-05 11:36:00) [27]

На самом деле реестр и всё такое - это не серьёзная защита... Простая переустановка системы или восстановление системного диска из образа (как у меня - 8 минут занимает :) - и никаких проблем. Давно тут крутиться в голове мыслишка одна, но это только теория, прошу сильно не критиковать. В общем, идея следующая: программа может пометить (пока мне не известно, правда, каким способом) первый по счёту свободный кластер на жёстком диске как испорченный, и система на этот кластер "забъёт"! А в этот кластер можно записать, например, инфу о лицензии, дату установки (для shareware) и проч. Всем этим должна заниматься отдельная программа, например, инсталлятор. Тогда этот жёсткий диск становится как бы помеченным. А главная прога (которую мы защищаем) при запуске будет искать первый bad-кластер и пытаться прочесть оттуда данные, проверяя на правильность. Если данные "не наши", то пытается найти следующий bad-кластер, и т.д... Если ни одного такого не найдёт - то и не запуститься. А если нашла, но время использования вышло (shareware) - тоже не запуститься... И переустановка системы тут не поможет :)


DeadMeat   (2003-04-02 10:00:00) [28]

> Intell
Ну скажем так, IP адрес это не серьёзно, а если заказчик не имеет сети...
> Anatoly Podgoretsky
Если можно, то пожалуйста по конкретнее,... что значит ...и быть при этом независимым от этого железа...
> NightAngel
Но ведь для этого надо постоянно ходить (ездить) к заказчику после каждой переустановки... Да, насчёт тиража... город у нас небольшой а желателей много, т.к. количество компов растёт и растёт...


NightAngel   (2003-04-02 00:05:00) [29]

Если Ваш проект не превышает стоимости 100$, то самой лучшей защитой для Вас, особенно если тираж не превышает пары десятков клиентов, будет отсутствие инсталятора. И, что сконфигурировать и поставить программу сможете только Вы. Но, конечно, если у вас есть желание защищать - защищайте. Если же Ваш проект будет обильно тиражироваться, или он очень дорог по меркам
пользователей т.е. от 500 до 10000 долларов, то тогда действительно имеет смысл подумать о серьёзной защите. Сломают, конечно, в любом случае, но чем больше времени на это потребуется, тем лучше для Вас.


Anatoly Podgoretsky   (2003-04-01 19:35:00) [30]

DeadMeat © (01.04.03 17:35)
Ты хочешь привязаться к железу и быть при этом независимым от этого железа.
Ну а переустановка Виндоус влекет за собой переустановку почти всех программ.


Intell   (2003-04-01 19:29:00) [31]

IP адрес читать умеешь? Если да, то гора с плеч!


DeadMeat   (2003-04-01 17:35:00) [32]

Но ведь после переустановки винды эта вся инфа уйдёт, и заказчику придётся опять вызывать меня для новой регистрации... К тому же такой способ быстро улавливается и исправляется... Может есть другие предложения...?


Intell   (2003-04-01 17:01:00) [33]

Именно это я имел ввиду. Найди (создай) ключ реестра, который есть только у тебя. Если его нет в реестре то прога не запустится.


Stranger   (2003-04-01 16:25:00) [34]

Можно в определенный параметр реестра (не помню точно в какие)
писать сою инфу, то есть не создавать новый параметр, а изменять существующий, а потом по нему проверяться


DeadMeat   (2003-04-01 14:15:00) [35]

> Intell
А где именно такое там могёт храниться... чё то я такого не встречал...


Intell   (2003-03-31 21:08:00) [36]

Попробуй через реестр.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо