Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Frage bez.Kopierschutz in Delphi(H-id bsp.) (https://www.delphipraxis.net/123377-frage-bez-kopierschutz-delphi-h-id-bsp.html)

sunrise 31. Okt 2008 23:44


Frage bez.Kopierschutz in Delphi(H-id bsp.)
 
Hallo

Ich habe neulich von einem freund ein code beispiel bekommen,welcher die Seriennummer der HD ausliest und beim Programmstart diese überprüft. Ich habe die vermutung das sich nach diesem Hardware-ID-Protection Beispiel das Programm nach einem Format nicht mehr starten lässt ,da sich die Nr.der HD doch ändert. Was meint ihr dazu?

Code:
function GetSerialNumber(const ADrive: Char): integer;
var
SerialNum: DWORD;
Dummy: DWord;
Buffer: array[0..255] of Char;
begin
Result:=0;
if GetVolumeInformation(PChar(ADrive+':\'),buffer,
SizeOf(Buffer),@SerialNum,Dummy,Dummy,nil,0) then
Result:=SerialNum
else
RaiseLastOSError;
end;


// Überprüfen der Nr. von C: mit '12121212'.

if IntToHex(GetSerialNumber('C'),8) <> '12121212' then ExitProcess(0);


:dp:

Hobby-Programmierer 31. Okt 2008 23:59

Re: Frage bez.Kopierschutz in Delphi(H-id bsp.)
 
Moin ...,
die Serial der HD wird sich beim formatieren sicher nicht ändern, wohl eher die der jeweilgen Partition! Du wirst aber auch beim 'ersten' Start die ID irgendwo speichern und später vergleichen müssen. Dieser Schutz lässt sich sehr leicht aushebeln.

sunrise 1. Nov 2008 00:11

Re: Frage bez.Kopierschutz in Delphi(H-id bsp.)
 
dachte ich mir eigentlich... Es ging mir mehr darum das einer etwas zum Code sagt...

Dunkel 1. Nov 2008 00:21

Re: Frage bez.Kopierschutz in Delphi(H-id bsp.)
 
Dann sage ich mal was zum Code
Delphi-Quellcode:
if IntToHex(GetSerialNumber('C'),8) <> '12121212' then ExitProcess(0);
lässt sich nur all zu leicht im Kompilat umbiegen, so dass die Bedingung einfach übersprungen wird. Aber, um hier auch nochmal das Credo alle Kopierschutz-Threads zu schreiben: jeder Schutz kann potenziellen "Hackern" nur ein paar mehr Steine in den Weg legen, knackbar ist virtually jeder.

Hobby-Programmierer 1. Nov 2008 00:27

Re: Frage bez.Kopierschutz in Delphi(H-id bsp.)
 
... die Hardkodierung war sicher nur zum testen, es wäre auch Zeitaufwendig eine Anpassung an alle PC zu machen.
@sunrise: Hast du denn den Code denn schon selber mal getestet?

Dunkel 1. Nov 2008 00:35

Re: Frage bez.Kopierschutz in Delphi(H-id bsp.)
 
Zitat:

Zitat von Hobby-Programmierer
... die Hardkodierung war sicher nur zum testen, es wäre auch Zeitaufwendig eine Anpassung an alle PC zu machen.

Es geht ja auch garnicht um den hardcodierten Vergleichswert. Jeder Wenn-Dann-Sprung kann im Assembler-Code durch ein NOP (mach nichts) ersetzt werden, schon ist ein Kopierschutz dieser Art geknackt.

Hobby-Programmierer 1. Nov 2008 00:41

Re: Frage bez.Kopierschutz in Delphi(H-id bsp.)
 
Zitat:

Zitat von Dunkel
Zitat:

Zitat von Hobby-Programmierer
... die Hardkodierung war sicher nur zum testen, es wäre auch Zeitaufwendig eine Anpassung an alle PC zu machen.

Es geht ja auch garnicht um den hardcodierten Vergleichswert. Jeder Wenn-Dann-Sprung kann im Assembler-Code durch ein NOP (mach nichts) ersetzt werden, schon ist ein Kopierschutz dieser Art geknackt.

Ich wollte eher darauf hinaus das dieser Codeteil uninteressant ist! Er wird eh die ID ausserhalb des Programmes speichern müssen was sich noch leichter auszuhebeln lässt wie eine nachträgliche Codemanipulation.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz