AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Computer ID und Verarbeitung
Thema durchsuchen
Ansicht
Themen-Optionen

Computer ID und Verarbeitung

Ein Thema von DelphiSecurity · begonnen am 5. Feb 2011 · letzter Beitrag vom 8. Feb 2011
Antwort Antwort
Benutzerbild von Net7
Net7

Registriert seit: 22. Jun 2004
Ort: Lauenburg
161 Beiträge
 
Delphi 7 Professional
 
#1

AW: Computer ID und Verarbeitung

  Alt 5. Feb 2011, 17:22
Also ich würde so vorgehen,


zu Frage 1: Die Systemsid ermitteln
Delphi-Quellcode:
function ConvertSidToStringSid(SID: PSID; var StringSid: LPSTR): Boolean; stdcall;
external 'advapi32.dllname 'ConvertSidToStringSidA';

 function GetAccountSid(const Server, User: WideString; var Sid: PSID): DWORD;
var
  dwDomainSize, dwSidSize: DWord;
  R: LongBool;
  wDomain: WideString;
  Use: DWord;
begin
  Result := 0;
  SetLastError(0);
  dwSidSize := 0;
  dwDomainSize := 0;
  R := LookupAccountNameW(PWideChar(Server), PWideChar(User), nil, dwSidSize, nil, dwDomainSize, Use);
  if (not R) and (GetLastError = ERROR_INSUFFICIENT_BUFFER) then
    begin
      SetLength(wDomain, dwDomainSize);
      Sid := GetMemory(dwSidSize);
      R := LookupAccountNameW(PWideChar(Server), PWideChar(User), Sid, dwSidSize, PWideChar(wDomain), dwDomainSize, Use);
      if not R then
        begin
          FreeMemory(Sid);
          Sid := nil;
        end;
    end
  else
    Result := GetLastError;
end;

function GetSystemSID: string;
var
  SID: PSID;
  strSID: PChar;
  CName: array[0..255] of Char;
  nSize: Cardinal;
begin
  Result := '';
  GetComputerName(CName, nSize);
  if GetAccountSid('', CName, SID) = 0 then begin
      ConvertSidToStringSid(SID, strSID);
      Result := strSid;
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Lines.Add('System SID:'+GetSystemSID);

end;
Zu Frage 2:

Eine Möglichkeit wäre einen CRC32 ( in uses crc32 aufnehmen ) aus dieser Sid zu erstellen zb.
Delphi-Quellcode:
function CheckSum(Sid: string): string;
var
  CRC32: DWORD;
  STemp: string;
  SS: string;
begin
  STemp := '';
  ss := '';
  ss := Sid;

  CRC32 := $FFFFFFFF;
  if LENGTH(ss) > 0
    then CalcCRC32(Addr(ss[1]), LENGTH(ss), CRC32);

  STemp := IntToHex(CRC32, 8);
  Result := STemp;

end;
Und daraus kannst du deine Seriennummer erstellen und mit Bindestrichen versehen.
Marko
So`ne Atombombe kann einem den ganzen Tag verderben!
Eine eigene DLL in C++ geschrieben wird meist ein Sklave für mein Delphi/Pascal.
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#2

AW: Computer ID und Verarbeitung

  Alt 5. Feb 2011, 17:31
Eine Möglichkeit wäre einen CRC32 ( in uses crc32 aufnehmen ) aus dieser Sid zu erstellen zb.
Delphi-Quellcode:
function CheckSum(Sid: string): string;
var
  CRC32: DWORD;
  STemp: string;
  SS: string;
begin
  STemp := '';
  ss := '';
  ss := Sid;

  CRC32 := $FFFFFFFF;
  if LENGTH(ss) > 0
    then CalcCRC32(Addr(ss[1]), LENGTH(ss), CRC32);

  STemp := IntToHex(CRC32, 8);
  Result := STemp;

end;
Und daraus kannst du deine Seriennummer erstellen und mit Bindestrichen versehen.
Ich stimme allem anderen zu, aber das ist eine schlechte Empfehlung. Eine CRC (bzw. Checksumme) ist kein Hash. Hier ist eindeutig ein Hash angesagt, vorzugsweise mit "geheimem" Salz ("Salted Hash").
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von Net7
Net7

Registriert seit: 22. Jun 2004
Ort: Lauenburg
161 Beiträge
 
Delphi 7 Professional
 
#3

AW: Computer ID und Verarbeitung

  Alt 5. Feb 2011, 17:37
Nun das man versalzen sollte ist mir schon klar, crc32 finde ich jedoch zu Anschauungszwecken unkomplizierter.
Marko
So`ne Atombombe kann einem den ganzen Tag verderben!
Eine eigene DLL in C++ geschrieben wird meist ein Sklave für mein Delphi/Pascal.
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#4

AW: Computer ID und Verarbeitung

  Alt 5. Feb 2011, 18:16
[...] crc32 finde ich jedoch zu Anschauungszwecken unkomplizierter.
Point taken.

Ich wollte nur den Unterschied zwischen Fehlerfindung und Identifizierung klarmachen.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.395 Beiträge
 
Delphi 12 Athens
 
#5

AW: Computer ID und Verarbeitung

  Alt 5. Feb 2011, 18:54
Nur daß CRC32 die "lange" SID auf schlappe 32 Bit reduziert. Wenn, dann doch lieber 'ne größere Hash-Funktion verwenden.
MD5 und SHA1 sind da schon ein paar Bits größer.
http://www.delphipraxis.net/151812-mini-sha1.html

Und vor dem Hashen der eigentlichen Daten noch ein bissl SALZ mit einrechnen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von DelphiSecurity
DelphiSecurity

Registriert seit: 10. Jan 2011
170 Beiträge
 
Delphi XE Architect
 
#6

AW: Computer ID und Verarbeitung

  Alt 7. Feb 2011, 16:50
Danke das mit der System ID hab ich jetzt, könnte mir jemand das mit den Parametern erklären??
(C) DelphiSecurity 2011 | Delphi XE
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#7

AW: Computer ID und Verarbeitung

  Alt 7. Feb 2011, 17:20
Um welche Parameter geht es denn genau?

Benhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz