Autor Beitrag
Master_of_Magic
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win 98, Win XP
D6 Pers, D2005 Arch
BeitragVerfasst: So 03.07.05 09:44 
Ich möchte meine Anwenudng mit einem Kopierschutz schützen. Und JA, ich weiß, dass das nicht wirklich schützt. Aber Ich dachte mir, wenn ich Hardware-Seriennummern überprüfe wird zumindest für Nicht-Cracker das kopieren massiv erschwert.

Jetzt zu meinen Fragen:

1. Beim Auslesen der Festplatten Seriennummern fiel mir auf, dass nicht nur jede Partition unterschiedliche Nummern hat, sondern auch Wurzel und Nicht-Wurzelverzeichnis sich unterscheiden (z.B. "C:\" und "C:\Ordner\"). Gibts da Abhilfe für, sprich, gibt es eine Art feste Seriennummer der Festplatte?

2. Hat mir jemand ne einfache Möglichkeit auch noch an die ID's anderer Komponenten (z.B. CPU, Mainboard, Ram, Grafikkarte etc.) zu kommen?

Ich weiß, dass eigentlich 1 Frage=1 Thread gilt, aber die zwei hier gehören doch wohl zum selben Theam, oda? :wink:
hallo
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 450

WIN XP, SuSE 9.3
D3 Prof, D6 Pers, 2005 Pers
BeitragVerfasst: So 03.07.05 16:48 
Ich weiß nicht ob das so gut ist wie du das machen willst: Viele bauen ihren PC oft um!

_________________
Der beste je Programmierte Trojaner: Windows XP
Wäre es nicht adequat, den Usus heterogener Termini zu minimieren?
Master_of_Magic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win 98, Win XP
D6 Pers, D2005 Arch
BeitragVerfasst: So 03.07.05 16:57 
Genau aus diesem Grund möchte ich ja auch noch die Seriennummern von anderen Komponenten als der Festplatte auslesen. Dann kann ich z.B. sagen: Nur wenn min. 2 von 5 Nummern übereinstimmen, kann das Programm gestartet werden!

Im Moment hab ich ja nur die Festplatten-Nummer. Und selbst die ist schon von Partition zu Partition verschieden...
hallo
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 450

WIN XP, SuSE 9.3
D3 Prof, D6 Pers, 2005 Pers
BeitragVerfasst: So 03.07.05 17:02 
Aber was ist, wenn ich meinen PC komplett umbaue?
Wenn ich alles erneuere, aber nur die Platte mit den Daten da lasse?
Ich kenn Leute die haben sowas schon mal gemacht!

_________________
Der beste je Programmierte Trojaner: Windows XP
Wäre es nicht adequat, den Usus heterogener Termini zu minimieren?
Master_of_Magic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win 98, Win XP
D6 Pers, D2005 Arch
BeitragVerfasst: So 03.07.05 18:11 
Falls dieser Fall eintreten sollte, kann ich die Überprüfung ja immer noch auf die neuen Komponenten umstellen. Normalerweise wird ja zumindest irgendeine Komponente beibehalten...

Eigentlich wollte ich nicht über den Sinn des Ganzen diskutieren, sondern konstruktive Beiträge bekommen ... :wink:
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: So 03.07.05 18:57 
Master - das Problem ist nicht: wie beziehe mich auf Hardware, um mein Programm zu schützen?

Wenn Dein Programm so populär wird, dass sich ein Crackversuch lohnt, wird man zuerst nicht die Treiber der Festplatte cracken, um dem Programm eine falsche SerNo zu suggerieren, sondern man wird Dein Programm disassemblen, die Prüfungen umgehen und neu compilieren.

Stell Dir folgende Situation vor:

Du hast eine IF Abfrage, in dem Du die Abfrage machst ("IF Kontrolle THEN halt" beispielsweise).
Das wird dann so in Maschinensprache umgesetzt (alles nur symbolisch):

0000 Anweisung 1
0001 IF NOT Kontrolle THEN JUMP 0003
0002 halt
0003 Anweisung 2

Dein Halt wird also nur dann ausgeführt, wenn Deine Bedingung nicht zutrifft (JUMP wird nicht ausgeführt).

Der Hacker/Cracker macht nun folgendes: entweder schreibt er gleich an 0001 JUMP 0003 hin oder ersetzt die 0001er Zeile so, dass das NOT wegfällt. Assemblerleute wissen was ich meine: JE/JNE.


Es tut mir Leid, Dir Deine Illusion zerstören zu müssen. Kein Kopierschutz etc. ist sicher.

Deine Situation ist die Folgende:
* Dein Programm ist zu populär und wird viele Benutzer finden => Deine Software wird auf jeden Fall gecrackt
* oder: Dein Programm ist nicht so populär: Du brauchst keinen Kopierschutz!!!

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: So 03.07.05 19:01 
Leute, hier geht es doch nicht darum, ob er einen Kopierschutz braucht oder nicht, sondern wie er seine Probleme damit lösen kann. Außerdem muss es nicht sinnlos sein, einen Kopierschutz zu implementieren, es bringt ihm auf jeden Fall mal Erfahrung in der Umsetzung solcher Vorhaben und das ist sehr viel wert. Also: Back to topic :mahn:
Master_of_Magic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win 98, Win XP
D6 Pers, D2005 Arch
BeitragVerfasst: So 03.07.05 19:10 
@UGrohne
Danke! Endlich mal einer der mich versteht *g*

@Rest
Ich weiß, dass die Abfrage ohne weiteres zu manipulieren ist. Allerdings schätze ich, dass höchstens 5% wissen, wie so etwas geht. Mir geht es nicht um einen unknackbaren Kopierschutz. Allerdings gar kein KS hieße fröhliche Weitergabe. Und Serials sind wirklich einfach zu knacken.
Daher hab ich diesen Weg eingeschlagen, da er einerseits nicht soo kompliziert zu programmieren, andererseits ohne bestimmtes Cracking-Wissen nicht zu knacken ist. :)
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: Mo 04.07.05 04:10 
Nimm den Windows Productkey aus der Registry, der wird sicher noch am wenigsten alternieren!

Wie genau willst Du Deine Software vor Kopieren schützen?

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
Neidhard von Reuental
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 268

XP
BDS 2006 Prof
BeitragVerfasst: Mo 04.07.05 05:48 
mit einem kopierschutz der sich auf pc-komponenten stützt wirst du, bzw deine kunden, nur probleme haben. wenn ich einer dieser kunden wär und das programm würde nach einem umbau nicht mehr laufen wüßte ich das ich bei dir keine software mehr kaufe.
wenn du meinst du brauchst so einen kopierschutz denk doch mal über dongles nach
Master_of_Magic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win 98, Win XP
D6 Pers, D2005 Arch
BeitragVerfasst: Mo 04.07.05 11:46 
@DaRkFiRe
Das ist ne gute Idee. Hast du mir da nen Code-Schnipsel? Weil ich hab noch nie mit der Registry gearbeitet - nicht, dass ich da was falsches mache ...

@Neidhard von Reuental
Dongles sind viel zu aufwändig und im Vergleich zu meinem Programm das Geld nicht wert. Aus diesem Grund will ich ja mehrere Komponenten überprüfen, damit ein Umbau nicht soo viel ausmacht.
Dazu kommt, dass da Programm nicht direkt kommerziell vertrieben wird, daher reicht ein kleiner KS.
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: Mo 04.07.05 23:07 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
var Reg:TRegistry;
var ProdID:STRING;
...
begin
...
Reg:=TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('Software\Microsoft\CurrentVersion',False);
ProdID:=Reg.ReadString('ProductId');
...


Brauchst noch die MD5 Units für Delphi. Einfach mal googeln!

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
Master_of_Magic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win 98, Win XP
D6 Pers, D2005 Arch
BeitragVerfasst: Fr 15.07.05 20:01 
@DaRkFiRe
Danke für den Code. D hast zwar "/windows/" vergessen, aber das macht ja nix ^^. Aber wofür brauch ich da die MD5 Units? Das geht doch auch ohne!

Jedenfalls bin ich jetzt immer noch nach der Suche nach anderen Komponenten. Dürfen auch gerne in der Registry zu finden sein (sollte halt dort immer an der gleichen Stelle sein!). Möglich wäre auch z.B. der komplette Name der Grafikkarte oder etwas anderes, dass meist von PC zu PC verschieden ist...
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: So 17.07.05 00:37 
Mit MD5 kannste einen langen String auf 16 Bytes hashen, nicht komprimieren!!!

Es gibt auch andere Strings, die diesen Hash erzeugen, doch dass ein anderer String genau diesen Hash erzeugt, ist sehr gering!

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
PhiDel
Hält's aus hier
Beiträge: 1

Win 98
Delphi 4
BeitragVerfasst: Fr 14.10.05 10:41 
Auch wenn dieser Thread nun schon seit drei Monaten ruht, möchte ich ihn noch einmal aufgreifen.
Die hier diskutierten Ideen beruhen darauf, sich persönliche Daten des Benutzers bzw. seines PCs zu eigen zu machen, um daraus einen Kopierschutz zu konzipieren. Ich frage mich, ob dies juristisch einwandfrei ist. Darf ein jemand (der auch noch ein Unternehmen repräsentiert) einfach Zugriff auf diese persönlichen Daten nehmen? Mir gefällt z.B. die Variante des Kopierschutzes basierend auf der ProductId von Windows. Da aber nicht alle User eine legale Windowsversion auf ihrem Rechner haben, frage ich mich, ob die es besonders toll fänden, wenn sie mitbekämen, das ihre ProductId gerade über das Netz versand wurde.

Ich weiß, das ist ein Programmiererforum, aber vielleicht kennt sich ja trotzdem jemand mit den juristischen Aspekten dieser Vorgehensweise aus.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 14.10.05 10:47 
Also soweit ich das sehe, hat in diesem Thread niemand davon gesprochen, die ProductID oder ähnliche Daten direkt zu versenden. Das wäre in der Tat bedenklich.

Normalerweise wird aus diesen Daten eine Hardware-ID berechnet, aus der man aber die genauen Daten zur Hardware oder zur ProductID nicht wieder herausbekommen kann, und das genau aus diesem Grund.
Alles andere ist in der Tat juristisch nicht in Ordnung, da hab ich einen befreundeten Anwalt gefragt...

Alle Angaben in diesem Beitrag sind nicht als juristische Auskunft zu sehen und sind ohne Gewähr... ;-)
Master_of_Magic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win 98, Win XP
D6 Pers, D2005 Arch
BeitragVerfasst: Fr 14.10.05 18:36 
Bevor jetzt eine rechtliche Diskussion anfängt: Die Übertragung der ID war anfangs nur zu Testzwecken!

Mittlerweile ist der Schutz meiner Meinung nach fertig und basiert auf 4 Komponenten, deren Seriennummern in einen CRC32 umgewandelt und dann übertragen werden.

So ist das Auslesen irgendwelche Informationen unmöglich, aber der Schutz funktioniert trotzdem!

Außerdem besteht bei 4 Kompos die Möglichkeit, auch mal ein oder zwei Hardwarekomponenten auszutauschen, ohne dass das Tool den Dienst verweigert ;-)


Wo wir grad dabei sind: Kennt jemand ein Tool von euch, mit dem ich CRC32 knacken kann? Sprich mit den ich einen String/Zahl errechnen kann, der einen (von mir vorgegebenen) CRC32-Wert hat? Theoretisch ist CRC32 ja wesentlich einfacher knackbar, als z.B. MD5 oder täusche ich mich da?
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: Sa 15.10.05 17:23 
user profile iconMaster_of_Magic hat folgendes geschrieben:
Theoretisch ist CRC32 ja wesentlich einfacher knackbar, als z.B. MD5 oder täusche ich mich da?


Da MD5 einen 128-Bit Schlüssel generiert und CRC32 nur einen 32-Bit langen, würde ich dem zustimmen.

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Mo 28.11.05 18:38 
Auf alle Fälle sollte der Anwender aber vorher zustimmen bevor du seine Daten übers Netz schickst; und wenn das Verfahren noch so sicher scheint. Den Windows-Key würde ich ohnehin weglassen, immerhin könntest in einen komischen verdacht kommen.

Und noch eine allgemeine Frage: angenommen ich hätte dein Programm gekauft. Und jetzt kaufe schlicht nen neuen PC. Ist damit die Lizenz erloschen dein proggi zu verwenden? Muss ich mich neu registrieren, und wenn ja, für wie viele Jahr(zehnt)e wird dieser Dienst zur Verfügung stehen? Immerhin habe ich ja bares geld bezahlt!

Das wären meine Bedenken.

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
Master_of_Magic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win 98, Win XP
D6 Pers, D2005 Arch
BeitragVerfasst: Sa 03.12.05 18:54 
1. Die Daten werden nicht von alleine verschickt, sondern der User muss die per E-Mail selbst tun (ich gebe nur den Inhalt vor)
2. Welche Komponenten geprüft werden, steht nicht dabei (soll ja nich jeder wissen)
3. Da der CRC berechnet wird, können eh keine Informationen aus der versendeten ID entnommen werden, der Windows-Key ist also nicht auslesbar
4. Ein neuer PC würde eine neue Lizenz bedeuten. Allerdings kann auch die alte übertragen werden (kostenlos)
5. Das Programm kostet kein Geld, sondern eine spezielle Währung eines Onlinespiels, da es sich für ein Tool dafür handelt

Ich hoffe, das zerstreut deine Bedenken. Wenn ich richtiges Geld dafür verlangen würde, wäre dieses System nicht so gut, aber für meine Zwecke ist es in Ordnung!