| 
| 
 | Вопрос # 1 419/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!
 подскажите, как можно организовать защиту программы с помощью привязки к железу.
 можно указать ссылки на ресурсы, в которых есть ответ на поставленный вопрос
 
|  |   Вопрос задал: Насыров И.Т. (статус: Посетитель)Вопрос отправлен: 15 марта 2008, 22:42
 Состояние вопроса: открыт, ответов: 2.
 |  Ответ #1. Отвечает эксперт: Вадим К Здравствуйте, Насыров И.Т.!Я думаю, вам стоит начать с прочтения цикла статей вот здесь http://www.delphikingdom.com/asp/itemq.asp?mode=1&itemid=8
 Но запомните одно, что бы там не говорили:"Нет защиты, которую нельзя сломать. Просто есть защиты, которые не выгодно ломать. Но если надо - взломают"
 
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 16 марта 2008, 01:20
 
 |  Ответ #2. Отвечает эксперт: Drozdov D.V. Здравствуйте, Насыров И.Т.!Могу подсказать следующее:
 1. Простая привязка к конкретному диску. оптимально диск А:\ (3.5)
 2. Привязка к томужи диску но используя его метку. Типа от копирования (ламера)
 3. Тоже но предворительно повредить один из секторов или кластер и превизатся к битому кластеру.
 Поясняу старый приём 90 но необходимо как минимум уметь считывать сектора.
 4. Привязка к конкретному серийнику прогу запускаем откуда угодно а ключём для запуска работает конкретный диск как в играх.
 Где взять? Можно переделать любуу прогу по определению диска.
 Всё ниже. Удачи!
 Приложение:Переключить в обычный режим  unit Unit1; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls; type  TForm1 = class(TForm)    Button1: TButton;    procedure Button1Click(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end; var  Form1: TForm1; implementation {$R *.dfm}     function IsDriveReady(DriveLetter : char) : bool;             var                OldErrorMode : Word;               OldDirectory : string;              begin               OldErrorMode := SetErrorMode(SEM_NOOPENFILEERRORBOX);                GetDir(0, OldDirectory);               {$I-}                  ChDir(DriveLetter + ':');               {$I+}                 if IoResult<> 0 then                 Result := False                  else                 Result := True;                 ChDir(OldDirectory);                SetErrorMode(OldErrorMode);             end;               procedure TForm1.Button1Click(Sender: TObject);             begin               if not IsDriveReady('A') then               begin                 ShowMessage('Drive Not Ready');                end                  else                 begin                 ShowMessage('Drive is Ready');                 close;                 end;             end;  end.///   
|  | Ответ отправил: Drozdov D.V. (статус: 4-ый класс)Время отправки: 16 марта 2008, 10:52
 
 |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |