Delphi

Ключ. Защита программы. Delphi

Написал я программу и собираюсь распространить ее среди небольшого круга лиц. Теперь у меня такой вопрос: как сделать чтобы из имени фамилии получался код. Как например в Mirc. То-есть нужно сделать программу генератор,она будет генерировать цифренный ключь из имени или ника человека,я этот ключь буду присылать ему,он его будет вписывать в программу и программа начнет работать.

Вобщем подскажите,как сделать такой генератор? С активацией в программе смогу разобраться.

Ну вообще вариантов генераторов море, можно например так :

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
function XORString(str:String; XORKey:byte):string;
var eword;
begin
result:=;
//********* FOR ******************
for e :=1 to length(str) do
begin
result:=result+chr(byte(str[e]) xor XORKey);
end;
//******* END FOR ****************{}
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
label1.Caption:=XORString(Edit1.Text,4)+XORString( Edit2.Text,4)
end;

end.


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

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

Цитата:
Сообщение от mutabor
привязку к железу надо делать
ну да, но тоже не выход, а вдруг я железо сменю...

А ты смени мать и попробуй снова винду запустить )))

Имя-ник не катит можно просто номер случайно сгенерировать при первом запуске, записать куда-подальше, а потом пусть программа при запуске орёт "Я великий глюг ID 31415926535-666-127-0-0-1 отправьте мой ID на reg@proga.com, получите ключ и я перестану орать"
А кейген у тебя. Тогда он не сможет ключ кому-то передать, ведь у другого польз-ля ID другой.

Но можно конено отследить момент записи ID и изменить его, расколупать прогу (если она не зашифрована - то процедуру регистрации найти будет несложно)

А лучше - скачай армадилло, и не изобретай велосипед ))) Тут тебе и лицензия, и упаковщик, и криптор...

А можно более подробно про привязку к железу? и про странного зверя "армадилло"?

Вобщем, чтобы установить защиту программы нужно сделать следующее
1. Написить ДЛЛ с функцией, которая в зависимости от кода выдает значение (обычно это 1 или 0)
Привязку я делаю к имени компьютера (его можно найти в реестре): HK_Local_machineSystemControlSet001ControlCompN ameActiveCompName
2. В утилите Instal Shield не забыть проделать следующее : в директории Customize the Setup..DialogsCustomer inf В окне свойств написать
-Show serial Num : Yes
-Serial Num Template : Написать шаблон
-Написать путь ДЛЛ для серийного номера и функцию, которая возвращает значения (1, 0) в зависимости от введенного кода
Готово.

Armadillo - http://cracklab.ru/download.php?action=get&n=MTYw
я вроде оттуда качал, не помню точно

и "тяжёлая артиллерия" http://cracklab.ru/download.php?action=get&n=Nzk1

Asprotect тоже пойдёт, там и привязка к оборудованию есть

А какие ещё есть способы защиты своего творения от несанкционированного использования. Какой способ даёт максимальную гарантию? кто-нибудь занимался созданием ключей физической защиты,т.е. хаспами?

Программа хорошо будет защищена если ещё как-нибудь организовать проверку лицензии через интернет. А там уже лучше какой-нибудь скрипт на php написать и выложить на сервер к которому прога и будет иногда обращаться...
Если прога хорошая - её всё-равно крякнут (!)

Сколько мнений услышал,спасибо)) Начал я делать работу с ключем..и тут меня осенило! Я Зделал активацию через асю))) Просто в прогу вшит номер и парль от аси,когда эта копия проги попадет в нет то я попросту сменю пароль на асе и прога перестает активироваться,во как я придумал, а никто не знает, как в проге закриптовать номер и пароль аси,чтоб его не просекли?

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

Кто знает как можно переменную в проге зашифровать,чтоб ее нельзя было отследить?

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

Опять md5 Тока про ась это муторно как-то и вообще странно

Цитата:
а никак. Можно сделать кучу мусора (дофига переменных, массивы... рандом чтение, рандом отправление, и среди всего этого хаоса отправлять свою переменную...). Кто будет ломать - пусть голову свою сломает...
Ну упрямого человека это не остановит, да и прцедура если будет по заранее определённому адресу обращаться, то тогда весь остальной мусор побоку. Тот же винрар в 2х десятках процедур слово rarreg.key читает, и чем не менее ломается за 10-20 минут

Вот, практические советы, как говорится http://www.delphisources.ru/pages/fa...tect_soft.html

Цитата:
Сообщение от Kukkk
Сколько мнений услышал,спасибо)) Начал я делать работу с ключем..и тут меня осенило! Я Зделал активацию через асю))) Просто в прогу вшит номер и парль от аси,когда эта копия проги попадет в нет то я попросту сменю пароль на асе и прога перестает активироваться,во как я придумал, а никто не знает, как в проге закриптовать номер и пароль аси,чтоб его не просекли?
А если у меня нета нет? лучшая зашита - аппаратный ключ, но стоит ли оно того?...

Цитата:
Сообщение от Mridu Vaju
А какие ещё есть способы защиты своего творения от несанкционированного использования. Какой способ даёт максимальную гарантию? кто-нибудь занимался созданием ключей физической защиты,т.е. хаспами?
За два года изучения и построения систем защиты к программным продуктам понял, что лучше всего писать собственную защиту, ведь к таким продвинутым зверям типа ASProtect, Armadillo, Obsidium и др. давно есть универсальные распаковщики, сброс триала и т.д. А собственная разработка дает целое поле для полета фантазии, кстате незабываем делать многослойность защиты, и совсем немного смекалки, что так беспечно упускают в системах защиты.

P.S. Довольно забавно наблюдать когда школьник выдирает защиту с корнями из ПО защищенным дорогим протектором парой утилит скаченных из рунета, а с твоим приходится смерится... =)

http://www.xakep.ru/post/39147/default.asp