Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.03.03;
Скачать: [xml.tar.bz2];

Вниз

Самая лучшая защита программы от нелегального пользования.   Найти похожие ветки 

 
ZeroDivide   (2003-02-11 14:21) [0]

Самая лучшая защита программы от нелегального пользования - это примитивная защита.
Простой ввод пароля и потом его проверка. НЕЛЬЗЯ писать защиту на языке высокого уровня. Реализацию проверки нужно ОБЯЗАТЕЛЬНО писать на ассеблере. Самое главное в этом ассемблерном коде попытаться максимально запутать крякера. Он не должен понять ГДЕ происходит ветвлеие программы: нормальная работа - нелицензионная работа. Вариантов реализации ассемблерного кода много, например вызывать процедуру проверки пароля так:

Push ProcedureCheck ;Помещаем адрес нашей процы в стек
.................
Некоторый, бесполезный или не очень, код
Как можно больше инструкций
.................
Ret ;Вызываем нашу процу

Примитивная, но очень хорошая защита. Хорошая - по тому, что она есть и писать ее не долго. Не очень квалифицированный юзер ее не взломает, а квалифицированный взломает ВСЕ.

Защитить программы не возможно "Все что работает может быть сломано" Потому защищайтесь от юзеров. От крякеров спасения нет.

И еще пару очень важных советов что нельзя делать для ни в коем случае:
НЕ ИСПОЛЬЗУЙТЕ ФАЙЛЫ ИЛИ РЕЕСТР
НЕ ДЕЛАЙТЕ ПРИВЯЗКУ К ЖЕЛЕЗУ

Просьба к модераторам: не переносить в "Потрепаться", т.к.
вопросы защиты возникают именно в этом форуме.


 
Delirium^.Tremens   (2003-02-11 14:34) [1]


> Просьба к модераторам: не переносить в "Потрепаться", т.к.
> вопросы защиты возникают именно в этом форуме.

Зря ты это сказал. У них на слове модератор лампочка загорается. Так бы может и не заметили. :-)


 
Danilka   (2003-02-11 14:34) [2]

ZeroDivide © (11.02.03 14:21)
мы еще для ДОСа делали так:
пароль, символов на 10-15.
считается сумма кодов символов этого пароля, причем в переменной 1 байт, то есть если больше 255, то обнуляется.
Эта сумма проверяется с суммой правильного пароля, если не совпадает, то пишется "пароль не верен", дальше самое интересное:
Каждый байт пароля, прибавляется к байту следующей инструкции, после чего делается переход на эти инструкции, а там уже либо CALL, либо JMP, плюс еще какие-нибудь инструкции.
Точно не зная пароля, программа никогда не заработает.

Правда давно все это было... может уже умеют и такие вещи ломать.


 
stone   (2003-02-11 14:35) [3]

Самая лучшая защита программы от нелегального пользования - никому ее не показывать.


 
Reindeer Moss Eater   (2003-02-11 14:39) [4]

Самая лучшая защита программы от нелегального пользования - это считать все случаи её использования легальными.


 
blackman   (2003-02-11 14:47) [5]

Самая лучшая защита?
Высылать прогу с возможностью только однократной установки и только после уплаты денег (без пароля)


 
Anatoly Podgoretsky   (2003-02-11 14:52) [6]

Уплата денег только по паролю, предъявителю паспорта таокого то


 
Игорь Шевченко   (2003-02-11 15:15) [7]

Самая лучшая защита - это техподдержка.


 
Друмлин   (2003-02-11 16:24) [8]

2Danilka
мда... были времена. вот я щас вспомнил как со спектрумовскими защитами выкомаривались =) было круто. не спали неделями. помню одно время все суетились вокруг защиты "Алькатрас". модно было. для тех, кто этого не застал: "Алькатрас"-защита с циклической перекодировкой.типа этого:

LD HL, NN - начало блока
LD BC, MM - длина блока
LD A, K - ключ декодер
XOR (HL)
LD (HL),A
INC HL
DEC BC
LD A,C
OR C
JR NZ,N
DEFB ........ - закодированный блок
DEFB ........
DEFB ........

щас может и диковато смотрится. первые зачатки самошифрующихся полиморфов пошли отсюда. была даж премия объявлена тому, кто поломает сие творение(исключительно программными средствами, конечно)


 
Dok_3D   (2003-02-11 16:39) [9]

Самая лучшая защита программы от нелегального пользования - это ее баги. Чем серьезнее баги, тем крепче защита.


 
ZeroDivide   (2003-02-11 16:41) [10]

2Delirium^.Tremens © (11.02.03 14:34)
Мм.. учту.. :)
Хотя я все равно не понимаю: subj это разве "Не общие вопросы связаные с программированием на Дельфи". Почему тогда "Привязка пргои к железу" там остается? И прочая лабуда в этом роде. Люди ведь тратят огромную кучу времени считывая из железа какие-то серийные номера. Пишут до сих пор какие-то ключи в реестр или в файл.

2Danilka © (11.02.03 14:34)
Умеют.

2stone © (11.02.03 14:35)
А еще лучше вообще не писать. Тогда точно не скопируют :))))

2blackman © (11.02.03 14:47)
Если прога может установится один раз, то она установится и второй. Такая защита была в некоторых специальных
релизах Office 97. Там Офис как-раз реестром пользовался.

2Игорь Шевченко © (11.02.03 15:15)
:) Да уж.. (с)Воробъянинов


 
ZeroDivide   (2003-02-11 16:44) [11]

2Друмлин (11.02.03 16:24)
Ностальгия ;)


 
Mystic   (2003-02-11 16:54) [12]

>> НЕЛЬЗЯ писать защиту на языке высокого уровня

Почему? Мой знакомый как-то пытался поломать программу на VB. Довольно скоро он осознал, что ходит по коду интерпретатора. И забросил это занятие, как бесперспективное (не то, чтобы все варианты исчерпались, просто затраты времени и сил много превосходили бы то, что ему предложили бы за взлом).


 
blackman   (2003-02-11 17:10) [13]

>ZeroDivide
Не установится. Реестр тут ни при чем. Сам инстал должен генерить часть кода проги и удаляться


 
Danilka   (2003-02-11 17:23) [14]

Уфф, нашел.
Есть хороший сайт: http://www.softshape.com/swrus/
там можно много чего интересного найти, взято оттуда, из дайджеста FAQ
(немного урезаено из-за ограничений на длинну сообщения):

From: Andrei Belogortseff <support@winability.com>
To: SWRUS <swrus@onelist.com>
Cc: <andy@azure.swrus.com>
Subject: Re: Crack
Date: 26 января 2000 г. 11:03

Я тоже долго страдал от кряков, пока не придумал способ заставить кряки
работать на меня, чем и хочу поделиться с участниками SWRUS:

Мой метод состоит из двух частей. Суть первой части (кодовое название:
"Многоступенчатая проверка кода, растянутая во времени" :-) ) состоит в
следующем:

Регистрационный код который я посылаю своим покупателям, удовлетворяет
нескольким независимым условиям, проверка которых осуществляется в моей
программе не одновременно, а с промежутком в несколько дней.

Пример: допустим я выбрал следующий формат для своих кодов: 1234-5678-9012,
причем цифры кода генерируются по имени пользователя. Я решаю, что
правильный код должен удовлетворять следующим условиям:

1. Если извлечь из кода только цифры, и к получившейся строке (123456789012)
применить алгоритм X, а к имени пользователя применить алгоритм Y, то
результат этих двух операций должен быть один и тот же. (Обычно на этом
проверка валидности кода и заканчивается, что делает работу крякеров
особенно легкой. Но мы на этом не останавливаемся, а идем дальше )

2. Кроме цифр, код содержит в себе ровно два знака "минус"

3. Знаки "-" находятся в позициях 4 и 8 (считая с 0).

Ну, для примера пока достаточно. Так вот, суть метода заключается в том,
чтоб
ы проверки условий 1, 2, 3 производить не одновременно, а разнести их во
времени на несколько дней. То есть, в тот момент когда пользователь вводит
регистрационный код в мою программу, она проверяет только условие 1, и
устанавливает счетчик (такой же, как например счетчик дней эволюционного
периода). Проходит, скажем 5 дней, тогда на старте программы проверяется
условие 2. Еще через пять дней - условие 3. Для легальных пользователей это
никаких проблем не создаёт, поскольку они в самом начале вводят правильный
код, а если кто случайно ошибся и, например, пропустил минусы, так он мне
присылает email, и я ему вежливо объясняю, что код нужно вводить exactly as
written, и всех делов.

А вот те кто кряками пользуются, ловятся на пятый день (или в крайнем
случае, на десятый) ! Дело в том, что за очень редким исключением, крякер не
использует программу в течение пяти дней, это не соответствует его
крякерской психологии. Крякер, он загружает мою программу в свои крякерные
дебаггеры, ставит брейкпоинты, и т.д. пока не увидит что моя программа
воспринимает код в виде 123456789012 (без минусов, но удовлетворяющий
условию 1 ) как правильный. А о минусах он и понятия не имеет, (и не может
иметь, потому что условия 2 и 3 проверяются в совсем другой части программы,
и не сразу, а только через пять дней. А крякер пять дней гонять мою
программу не может, он её уже через пол-часа удаляет, и принимается за
следующую программу!)

Так что он радостно объявляет, что крякнул мою программу, и те, кто хотят
пользоваться кряком, пользуются, и видят, что код 123456789012 дейст
вительно
моей программой принимается, и они, довольные что сэкономили несколько
долларов, продолжают пользоваться моей программой. И пользуются, пока не
наступает пятый день. А на пятый день моя программа видит, что в коде нет
минусов, и .... тут перехожу ко второй части моего метода (кодовое название:
"на ловца и зверь бежит" :-) )

Суть в том, что когда моя программа обнаруживает что условие 2) или 3) не
выполняется, она не выводит никакого сообщения о том что код неверный, или
там что. Она просто делает следующее:

char * ptr = NULL;
*ptr = 0;

... что приводит к стандартному боксу "This program has performed illegal
operation...", и работа программы прекращается. Пользователь кряка думает
что наткнулся на баг, и присылает мне продробности ошибки, включая адрес где
она произошла. Но я-то сам этот адрес знаю, и сразу вижу, что пользователь
пользуется кракерным кодом! В ответ я ему сообщаю, что "there is a fix for
this error, but it is available for registered users only", или что-то вроде
этого с разными вариациями. Так что единственный выход для такого
пользователя, это либо купить правильный код, либо uninstall-ировать мою
программу.

Я начал применять этот метод (ну, не точно этот, но основанный на таком
принципе) примерно год назад, и к данному моменту на мою программу есть
несколько кряков, но все они проходят только тест номер 1. Как результат, я
получаю в день 2-3 сообщения об ощибке в программе, вызванной проверкой на
стадии 2. Не знаю, сколько из таких кряко-юзеров мне удалось конвертировать
в легальных (заплативших в конце-концов), но если это хотя бы один из ста,
то это лучше чем ничего :-)



 
ACR   (2003-02-11 18:20) [15]

кстати некажется ли вам что подобной западлянской технологией праверки валидности копии программы пользуются в мелкософте причем давненько... и еще более изощренной например динамическая сверка серийников через инет? причем сверка серийников идет покакомунить служебному пратаколу низкого уровня
и нетолько в мелкософте мне кажется и в Borlande


 
Reindeer Moss Eater   (2003-02-11 18:28) [16]

Методика от Andrei Belogortseff интересна и захватывает при чтении.

Осталась самая малость - рассказать каким образом программа узнает, что наступил судный (пятый день).

:)


 
Ketmar   (2003-02-11 18:50) [17]

>ACR (11.02.03 18:20)
насчёт борланда -- не кажется. аж ни разу.

>Reindeer Moss Eater (11.02.03 18:28)
у юзверя спрашивает.

Satanas Nobiscum! 11-Feb-XXXVIII A.S.


 
ddenisv   (2003-02-11 18:56) [18]

2Andrei Belogortseff
а как зарщититься от того что, легальный юзер продат ее с нормальны м серийноком на лево?


 
Roma   (2003-02-11 19:26) [19]

>Reindeer Moss Eater (11.02.03 18:28)
Осталась самая малость - рассказать каким образом программа узнает, что наступил судный (пятый день).

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

Все-таки, "самая лучшая защита - это техподдержка" (С) Игорь Шевченко... ;))) Чтобы полноценное использование программы было невозможно без штата специально обученных (этой же фирмой за немалые деньги ;)))) людей... А защиту любую сломают - вопрос времени...


 
zzet   (2003-02-11 22:15) [20]

>И еще пару очень важных советов что нельзя делать для ни в коем случае:
НЕ ИСПОЛЬЗУЙТЕ ФАЙЛЫ ИЛИ РЕЕСТР
НЕ ДЕЛАЙТЕ ПРИВЯЗКУ К ЖЕЛЕЗУ

А как тогда? Привязывать к конкретному компу все равно нужно.


 
Андрей Сенченко   (2003-02-11 22:38) [21]

А зачем собственно защищать такую программу ?

Поддрержу мнение тех, кто считает основной защитой при продаже софта такого уровня ( узкая направленность, большая цена ) его поддержку.
Собственно именно на правильно построенной службе сервиса и должен жить подобный софт. Опять же - достаточно просто позаботиться о том, чтобы за начальную оплату Заказчик получал только набор базовых функций, а уж остальные дополнения и расширения - от службы Сервиса. ИМХО вряди найдется много желающих выкладывать в общедоступные места модули расширения софта, купленного за 50 килобаксов


 
Danilka   (2003-02-12 07:36) [22]

1. Если вы посмотрите на дату вырезки, то увидите что методике от Andrei Belogortseff уже больше 2-х лет. :))
Если вы сходите по-указанной ссылке, то найдете много интересной и полезной инфы для шареварщиков, в том числе и по защите ПО.
Есть там дайджест FAQ, в нем вообще куча великая полезной информации.

2. На счет тех-поддержки, есть такая программа: http://www.neatimage.com/
Она предназначена для обработки фотографий, чистит их от цифрового шума, очень популярна у владельцев цифровых фотоаппаратов. Причем во всем мире, в том числе и в китае.
Кряков для нее нет.
Дя того чтобы ее получить, после оплаты тебе дают логин и пароль, ты входишь на сервер под этим логином, и закачиваешь эту программу. Если твоя копия появится в сети, или кто-то часто будет ее качать с сервера, то твой логин прибивают, и ты теряешь возможность получить новую версию, которые, кстати, появляются очень часто.
Естесственно всех жаба душит давать свою версию программы.
И поэтому ее нигде нет.


 
gn   (2003-02-12 07:50) [23]

используйти хэши так будет немногим сложней
а вообще идиальной защиты не бывает можно лиш время потенуть


 
ZeroDivide   (2003-02-12 09:36) [24]

2blackman © (11.02.03 17:10)
А что мешает оставить 2 копии инстала?

2Danilka © (11.02.03 17:23)
Еще даже не дочитал до конца. Ломается так: отключается проверка промежутка дней. Или подставляется всегда день инсталляции. И все.
>проверка валидности кода
Это крякеров обычно не интересует. Их интересует куда будет jamp в случае если код vailid!

Теперь дочитал до конца. Сущ. 2 направления у крякеров: 1.генерация регов и 2.написание патчей. Первый более приемлем т.к. софт остается в неизменном виде и отличить реально ли он регестрируется или с помощью генератора не возможно. Второй в общем случае проще, но крякеру придется внести изменения в код.

ACR (11.02.03 18:20)
:)

2Danilka © (12.02.03 07:36)
Есть еще одна крутая программа которая умеет бурбулировать циркуляторы, тоже до сих пор не взломана. Потому что нафиг никому не нужна. И еще одна, цена которой 1000000$, но для ряда корпораций NNN это не деньги, поэтому они даже не замечают как покупают ее.


 
Danilka   (2003-02-12 09:45) [25]

ZeroDivide © (12.02.03 09:36)
>Есть еще одна крутая программа которая умеет бурбулировать циркуляторы...

:))

Сходи на любые форумы по цифровой фотографии, на любом языке, везде эта программа обсуждается.
Или просто сделай пойск в любом поисковике на Neat Image.


 
Danilka   (2003-02-12 09:51) [26]

ZeroDivide © (12.02.03 09:36)
>И еще одна, цена которой 1000000$, но для ряда корпораций NNN это не деньги, поэтому они даже не замечают как покупают ее.

Абсолютно верно. А цена такая, из-за того что большой коллектив довольно долго затачивает ее под эту самую корпорацию. А если ее можно без-заточки где-то еще использовать, то цена ее становится меньше на порядки.


 
Danilka   (2003-02-12 09:55) [27]

ZeroDivide © (12.02.03 09:36)
сам посчитай, пусть над проектом работают 10 человек 1 год, за $1000 в месяц,получается 120тыс.долларов в месяц. плюс ЕСН около 35%, то есть 162тыс.долларов на одну только зарплату, без учета остальных затрат.
Естественно, если этот проект предназначен только для одного покупателя, то стоить он для покупателя будет не менее 200тыс.долларов.


 
Danilka   (2003-02-12 09:57) [28]

сорри, 120тыс долларов весь проект, а не месяц


 
Anatoly Podgoretsky   (2003-02-12 10:19) [29]

Это означает, что данный проект осуществляется в странах третьего мира, в противном случае это умножается скажем на 4 и более


 
Danilka   (2003-02-12 10:22) [30]

Anatoly Podgoretsky © (12.02.03 10:19)
или не в Москве, а, скажем, в Тольятти :(((
да и ЗП, не $1000, а поменьше...


 
Calm   (2003-02-12 11:03) [31]


> . Если твоя копия появится в сети, или кто-то часто будет
> ее качать с сервера, то твой логин прибивают, и ты теряешь
> возможность получить новую версию, которые, кстати, появляются
> очень часто.

А как определить, что засветилась именно моя копия?


 
Danilka   (2003-02-12 11:09) [32]

Calm © (12.02.03 11:03)
видимо, ты качаешь уже свою копию, в которой прописано чья она, может даже где-нибудь внутри есть какой-нибудь CRC.
я ее не покупал, жаба давит - не так часто фотографирую, был-бы не программером, а фотографом, тогда-бы купил. Но хотелось ее иметь, искал кряк, нашел один только логин, но уже прибитый.
а так, владельцы никто не дает. спрашивал на форумах.


 
VictorT   (2003-02-12 11:22) [33]


> Друмлин (11.02.03 16:24)

Да, тоже помню эти времена... помнится ещё любили регистр R при шифровке использовать... многие дебагеры при трассировке сразу обламывались... Ты кстати каким пользовался? Самый крутой, какой я видел, это Сталкер.


 
VictorT   (2003-02-12 11:22) [34]

Он ещё все недокументированые команды знал.


 
ZeroDivide   (2003-02-12 12:20) [35]

2Danilka © (12.02.03 11:09)
Владельцы конечно не дадут.
Скачивай себе на здоровье "прибитые". И новые и новые "прибитые" версии. А тебе хочется скачивать прямо с сайта производителя и чтобы у тебя было все как у зарегестрированного - это слишком нагло.
Был бы ты не фотографом, а программером, тогда бы ты ее зарегистрировал... :)


 
Anatoly Podgoretsky   (2003-02-12 12:30) [36]

Danilka © (12.02.03 10:22)
Это не страна третьего мира, это хуже.


 
Danilka   (2003-02-12 12:39) [37]

ZeroDivide © (12.02.03 12:20)
Фотограф я всего полтора месяца. :))
Да и не я, а жена, ей в подарок на новый год купил фотоаппарат.
Если-бы я фотографированием зарабатывал на хлеб, в частности с помощью этой программы, то обязательно бы ее приобрел.
Но для того чтобы поправить несколько фоток, покупать не вижу смысла, тем более, что сейчас на их сайте есть вполне рабочая отличная демка, а то что есть в полной версии, думаю, нужно только профессионалам.


Anatoly Podgoretsky © (12.02.03 12:30)
совершенно верно.


 
Anatoly Podgoretsky   (2003-02-12 12:45) [38]

При том оплата программиста и стоимость продукта слабо коррелируются в странах 3-


 
Danilka   (2003-02-12 12:49) [39]

Anatoly Podgoretsky ©
Вообще-то я эти цифры привел просто как показатель того, какие затраты идут на разработку ПО.
Естественно, себестомость может быть в несколько раз выше, в нее входит еще очень много статей.


 
Anatoly Podgoretsky   (2003-02-12 13:29) [40]

Danilka © (12.02.03 12:49)
А я тоже только реальные мировые



Страницы: 1 2 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.03.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.58 MB
Время: 0.01 c
4-5925
Учитель(Ученик)
2003-01-14 06:35
2003.03.03
ХР


1-5633
AlexanderSK
2003-02-20 12:41
2003.03.03
TForm.ShowModal


7-5899
TsaturSoft
2002-12-18 22:52
2003.03.03
Операции над файлами


1-5483
ych_boriss
2003-02-20 15:25
2003.03.03
TMemoryStream. Адресное пространство TMemoryStream.Memory


8-5669
JibSkeart
2002-11-21 18:06
2003.03.03
Кто нибуть работал с частичками(particles) в DirectX





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский