Kopierschutz mit Delphi erstellen |
||
---|---|---|
#0
| ||
26.07.2006, 17:44
Member
Beiträge: 343 |
||
|
||
27.07.2006, 09:31
Member
Beiträge: 3306 |
#2
Delphi ist für diese Aufgabe denkbar schlecht geeignet, sowas macht man mit C oder gleich Assembler. Dazu findet man aber bei Google genug Zeug z. B. hier:
http://www.delphipraxis.net/topic44552.html __________ Bitte keine Anfragen per PM, diese werden nicht beantwortet. |
|
|
||
27.07.2006, 13:14
Member
Themenstarter Beiträge: 343 |
#3
igentwie hat mein delphicompilier bei den Code immer was zu kammellen
zur googlesuche nach welchen begiffen wurde den gegoogelt?? irgentw weis ich nicht wonach ich (bei den begriffen) suchen soll __________ Es ist richtig, wenn Politiker behaupten: Der Mensch ist Mittelpunkt. Falsch ist nur die Schreibweise gemeint ist: Der Mensch ist Mittel. Punkt. |
|
|
||
27.07.2006, 13:17
Member
Beiträge: 3306 |
#4
"delphi festplatten ID auslesen"
Wahrscheinlich musst du in deiner IDE erst irgendwo Inline Assembler aktivieren. Frag mich aber nicht wo. __________ Bitte keine Anfragen per PM, diese werden nicht beantwortet. |
|
|
||
27.07.2006, 13:21
Member
Themenstarter Beiträge: 343 |
#5
danke
(das muss ich anhägen weil sonz gemecket protecus antwort ist nicht 18 zeichen lang) __________ Es ist richtig, wenn Politiker behaupten: Der Mensch ist Mittelpunkt. Falsch ist nur die Schreibweise gemeint ist: Der Mensch ist Mittel. Punkt. |
|
|
||
27.07.2006, 16:26
Member
Beiträge: 74 |
#6
Hi,
ich programmier auch 'n bissl mit Delphi rum. Der nachfolgende Code is für die CPU. Vielleicht hilft dir das 'n Stück weiter. function IsCPUID_Available : Boolean; register; asm PUSHFD {direct access to flags no possible, only via stack} POP EAX {flags to EAX} MOV EDX,EAX {save current flags} XOR EAX,ID_BIT {not ID bit} PUSH EAX {onto stack} POPFD {from stack to flags, with not ID bit} PUSHFD {back to stack} POP EAX {get back to EAX} XOR EAX,EDX {check if ID bit affected} JZ @exit {no, CPUID not availavle} MOV AL,True {Result=True} @exit: end; function GetCPUID : TCPUID; assembler; register; asm PUSH EBX {Save affected register} PUSH EDI MOV EDI,EAX {@Resukt} MOV EAX,1 DW $A20F {CPUID Command} STOSD {CPUID[1]} MOV EAX,EBX STOSD {CPUID[2]} MOV EAX,ECX STOSD {CPUID[3]} MOV EAX,EDX STOSD {CPUID[4]} POP EDI {Restore registers} POP EBX end; function GetCPUVendor : TVendor; assembler; register; asm PUSH EBX {Save affected register} PUSH EDI MOV EDI,EAX {@Result (TVendor)} MOV EAX,0 DW $A20F {CPUID Command} MOV EAX,EBX XCHG EBX,ECX {save ECX result} MOV ECX,4 @1: STOSB SHR EAX,8 LOOP @1 MOV EAX,EDX MOV ECX,4 @2: STOSB SHR EAX,8 LOOP @2 MOV EAX,EBX MOV ECX,4 @3: STOSB SHR EAX,8 LOOP @3 POP EDI {Restore registers} POP EBX end; function GetCPUInfo():String; var CPUID : TCPUID; I : Integer; S : TVendor; begin for I := Low(CPUID) to High(CPUID) do CPUID[I] := -1; if IsCPUID_Available then begin CPUID:=GetCPUID; Result:=GetCPUVendor+' Type '+IntToStr(CPUID[1] shr 12 and 3)+' Family '+IntToStr(CPUID[1] shr 8 and $f)+' Model '+IntToStr(CPUID[1] shr 4 and $f)+' Stepping '+IntToStr(CPUID[1] and $f); end else begin Result := 'CPUID not available'; end; end; Und Schluß! __________ Ich trage schwarz, bis es was dunkleres gibt. |
|
|
||
27.07.2006, 20:57
Member
Themenstarter Beiträge: 343 |
#7
danke
hier meckert wennigstens der Compilier nicht aber welche funktion muss ich aufrufen GetCPUInfo oder?? __________ Es ist richtig, wenn Politiker behaupten: Der Mensch ist Mittelpunkt. Falsch ist nur die Schreibweise gemeint ist: Der Mensch ist Mittel. Punkt. |
|
|
||
28.07.2006, 10:26
Member
Beiträge: 74 |
#8
Moin,
genau! Die gibt 'nen String zurück. Sollte eigendlich nur 'n Beispiel sein wie Assemblercode in Delphi eingebunden wird, aber vielleicht kannst du die Funktion ja gleich für dein Progi nutzen. mfg shoKwave __________ Ich trage schwarz, bis es was dunkleres gibt. |
|
|
||
28.07.2006, 10:45
Member
Themenstarter Beiträge: 343 |
#9
nee ich habs nochmal probier wi cih dachte der würde nicht meckern hatt der gakeine exe erstellt
und dan hab ich den compilier (lazarus) neu gestartet und dan ochmal probiert dan fing das gemecker wieder an der hat dan in der 2zeile asm rot makiert Zitat Wahrscheinlich musst du in deiner IDE erst irgendwo Inline Assembler aktivieren. Frag mich aber nicht wowie aktivirt man das bei Lazarus __________ Es ist richtig, wenn Politiker behaupten: Der Mensch ist Mittelpunkt. Falsch ist nur die Schreibweise gemeint ist: Der Mensch ist Mittel. Punkt. |
|
|
||
28.07.2006, 11:19
Member
Beiträge: 74 |
#10
Boah,
ich war bis jetzt in der Annahme, dass du Delphi benutzt. Jetzt bin ich auch überfragt. Auf der HP von FreePascal und im Programmersguide (http://www.freepascal.org/docs.html) hab ich auf die schnelle nix spezielles gefunden. sorry __________ Ich trage schwarz, bis es was dunkleres gibt. |
|
|
||
28.07.2006, 23:18
Member
Themenstarter Beiträge: 343 |
#11
Zitat sorrywie so sorry du musst mir NICHT helfen trotzdem danke __________ Es ist richtig, wenn Politiker behaupten: Der Mensch ist Mittelpunkt. Falsch ist nur die Schreibweise gemeint ist: Der Mensch ist Mittel. Punkt. |
|
|
||
Ich wollte für ein paar Programme in Delphi einen Kopierschutz erstellen
der soll so funktionieren:
Das Programm list die Seriennummer von Windoof der Festplatte dm Prozessor und dem CD ROM laufwerk aus,
daraus berechnet er eine Hardware ID mit der (nur) ich eine Seriennummer Berechnen Kann (so irgendwie ist der Schutz auch bei styl XP)
aber nun die Frage:
WIE lese ich die ganzen Nummern aus??
Vielen Dank schonmal im Voraus
__________
Es ist richtig, wenn Politiker behaupten: Der Mensch ist Mittelpunkt.
Falsch ist nur die Schreibweise gemeint ist: Der Mensch ist Mittel. Punkt.