Привязка к железу - Делфи

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by StalkerKill, 12 Jun 2008.

  1. StalkerKill

    StalkerKill Elder - Старейшина

    Joined:
    27 Oct 2007
    Messages:
    0
    Likes Received:
    8
    Reputations:
    -1
    Народ, научите привязывать к железу, просто тупо интересно как это делается. К винту, процу и т.д. По барабану. Спрашивал на хакере - дельного ничего не посказали. Буду ждать вашей помощи - можно и сорцы :rolleyes: еще :D
     
  2. Fata1ex

    Fata1ex Elder - Старейшина

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    Делаешь демо, которое при запуске на компе клиента считывает его уникальный номер. Он отсылает демо тебе. Ты преобразовываешь этот номер и вставляешь проверку в программу. При каждом запуске программы считываешь этот номер снова, преобразовываешь его локально и сравниваешь с уже записанным.

    Этим уникальным номером может быть любая хня, от серии Биоса до номера процессора )
     
  3. Fata1ex

    Fata1ex Elder - Старейшина

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    Это можно понять вполне однозначно, как и сделал я. Тупо объяснил принцип.
    Если же тебе интересен "код", то надо писать - Хочу чтобы сделали все за меня, а это уже не сюда.
    П.С.
    Не думаю, кто-нибудь будет выкладывать методы привязки, которых нет в паблике. Если ты их выложил, то привязка стала чистой формальностью, как в большинстве случаев.
    Поизучай крякмисы.
     
    #3 Fata1ex, 12 Jun 2008
    Last edited: 12 Jun 2008
    1 person likes this.
  4. t04

    t04 Elder - Старейшина

    Joined:
    10 Jan 2007
    Messages:
    137
    Likes Received:
    40
    Reputations:
    8
    Вот один из способов:
    __/thread72378.html
     
  5. 0verbreaK

    0verbreaK Elder - Старейшина

    Joined:
    30 Apr 2008
    Messages:
    318
    Likes Received:
    42
    Reputations:
    -3
    Один из вариантов использовать привязку к CD-ROM, функция WinAPI, GetDriveType, возвращаемое значение DRIVE_CDROM - если диск.
     
  6. Pir4tt

    Pir4tt Elder - Старейшина

    Joined:
    3 Jan 2008
    Messages:
    73
    Likes Received:
    36
    Reputations:
    5
    Получаем имя компа:
    Code:
    function GetCompName: string;
    var
     buffer: array[0..255] of char;
     size: dword;
    begin
     size := 256;
     if GetComputerName(buffer, size) then
       Result := buffer
     else
       Result := ''
    end;
    Имя юзверя:
    Code:
    function GetUserName: string;
    var
       Size : cardinal;
    PRes : PChar;
    BRes : boolean;
     begin
      Size := MAX_COMPUTERNAME_LENGTH + 1;  
    PRes := StrAlloc(Size);
    BRes := GetUserName(PRes, Size);
    if BRes then Result:=StrPas(PRes) else Result:='';
    end;
    Тип проца:
    Code:
    function ProcType: string;
    var
    lpSystemInfo : TSystemInfo;
    begin
    GetSystemInfo(lpSystemInfo);
    Result:=IntToStr(lpSystemInfo.dwProcessorType);
    end;
    Ну и допустим количество памяти:
    Code:
    function MemorySize: string;
    var
    lpMemoryStatus : TMemoryStatus;
    begin
        lpMemoryStatus.dwLength := SizeOf(lpMemoryStatus);
    GlobalMemoryStatus(lpMemoryStatus);
    with lpMemoryStatus do begin
    Result:=Format('%0.0f',[dwTotalPhys div 1024 / 1024])+' Mb';  
    end;
    end;
    Всё это соединяет, шифруем каким-нить своим алго, и передаём себе. У себя же расшифровываем, определяем все железки и генерим другим алго ключег, который сверяется в софтине. Всё элементарно. Так же это просто пример того что можно получать стандартными апи, запусти любой бенчмарк и увидишь как много инфы к которой можно привязаться ;) Так же рекомендую использовать куски ключа при расчётах важных функций в программе, т.е. включать их в алгоритм а не ставить тупую сверку значений, отшибающуюся битхаком B)

    ps. 0verbreaK, про диск я чёто не понял)) ну есть сидиром в компе и что дальше? он много где есть

    п.с. тут надо комбинировать инфу с железок а не использовать какой-то один параметр..