Seite 1 von 2

Kopierschutz V1.1

Verfasst: 03.01.2010 14:48
von Sauer-RAM
Hi,
ich habe einen Kopierschutz programmiert, der "normale" Computernutzer davon abhalten sollte Programme zu kopieren. Gegen Programmierer hilft dieser Schutz allerdings nicht, da man ihn leicht knacken kann. Ich wollte mal wissen was ihr davon haltet.
Hier ist mal der Code

Code: Alles auswählen

Define a.s
a = Str(Date())

Name.s = InputRequester("Kopierschutz V1.1","Programmname (ohne .exe)","")
Name + ".exe"
If CreateFile(0,"E:\Sich_Eige_Dateien\Purebasic\Programme(.pb)\Kopier.pb")  ;Naja Bei euch ist es bestimmt ein anderer Pfad, wo die Purebasic Dateien abgespeichert werden.
  WriteStringN(0,"If (" + a + ") = GetFileDate(ProgramFilename(),#PB_Date_Created)")
  WriteStringN(0,"SetEnvironmentVariable(" + Chr(34) + "progkopi" + Chr(34) + "," + Chr(34) + "1" + Chr(34) + ")")
  WriteStringN(0,"Else")
  WriteStringN(0,"SetEnvironmentVariable(" + Chr(34) + "progkopi" + Chr(34) + "," + Chr(34) + "2" + Chr(34) + ")")
  WriteStringN(0,"MessageRequester("+ Chr(34) + "Programm" + Chr(34) + "," + Chr(34) + "ERROR: Bitte wenden Sie sich an den Hersteller." + Chr(34) + ")")
  WriteStringN(0,"end")
  WriteStringN(0,"endif")
  WriteStringN(0,"; IDE Options = PureBasic 4.31 (Windows - x86)")
  WriteStringN(0,"; CursorPosition = 7")
  WriteStringN(0,"; EnableXP")
  CloseFile(0)
Else
  MessageRequester("Kopierschutz V1.1","Kann Kopierschutz-Include-Datei nicht erstellen.")
  End
EndIf

Repeat
  Delay(1000)
Until -1 <> FileSize(Name)
If DeleteFile("E:\Sich_Eige_Dateien\Purebasic\Programme(.pb)\Kopier.pb")  ;Da auch
Else
  MessageRequester("Kopierschutz V1.1","Kann Kopierschutz-Include-Datei nicht löschen. Bitte manuel löschen unter: E:\Sich_Eige_Dateien\Purebasic\Programme(.pb)\Kopier.pb")
EndIf
SetFileDate(Name,#PB_Date_Created,Val(a))
MessageRequester("Kopierschutz V1.1","Datei geschützt.")
Wenn man das Programm gestartet und den Name des Programmes eingegeben hat, muss man das Programmm das geschützt werden soll zur exe compilieren.
P.S. Ach und bei dem Prog das geschützt werden soll muss in der ersten Zeile stehen Includefile "Kopier.pb"

THEMAVERSCHOBEN [Feedback - Anwendungen > Code, Tipps und Tricks]
Andesdaf

Re: Kopierschutz V1.1

Verfasst: 07.01.2010 16:37
von Sauer-RAM
Jaaa ähh ich glaube ich habe vergessen dass ich mich über eine Rückmeldung freuen würde.
:o :o :o

Re: Kopierschutz V1.1

Verfasst: 07.01.2010 17:16
von ts-soft
Wir sind hier in "Feedback - Anwendungen", ich sehe keine Anwendung.

Tipps & Tricks würde mehr Sinn ergeben, ansonsten hab ich nicht verstanden
was der Code überhaupt macht (wo der Kopierschutz versteckt ist :mrgreen: )
und mit festen Pfaden kann man das ja nirgends einbauen.

Gruß
Thomas

Re: Kopierschutz V1.1

Verfasst: 07.01.2010 18:34
von Kurzer
Irgendwie prüft die resultierende Exe dann wohl wann sie erzeugt worden ist oder so.

Re: Kopierschutz V1.1

Verfasst: 11.01.2010 10:42
von Sauer-RAM
ts-soft hat geschrieben:Wir sind hier in "Feedback - Anwendungen", ich sehe keine Anwendung.

Tipps & Tricks würde mehr Sinn ergeben, ansonsten hab ich nicht verstanden
was der Code überhaupt macht (wo der Kopierschutz versteckt ist :mrgreen: )
und mit festen Pfaden kann man das ja nirgends einbauen.

Gruß
Thomas
In der Zeile 6. wird die Includedatei erzeugt, die dann in der Exe includiert wird. Die überprüft dann das Erstellungsdatum, so dass die Datei nur ausgeschnitten und wieder eingefügt, aber nicht kopiert werden kann.

Re: Kopierschutz V1.1

Verfasst: 11.01.2010 15:34
von Marvin
Dank SetFileDate() ist dieser Schutz nur ziemlich einfach zu umgehen. :wink:

Re: Kopierschutz V1.1

Verfasst: 11.01.2010 16:09
von AndyMars
Meine Gedanken und Anregungen:

Nachteile:
- Ja, der Schutz wäre wirklich einfach zu umgehen... Auch via Programme wie ReDateIt - oder ein böser Mensch mit simplen Batchkenntnissen oder Programmierkenntnissen könnte gleich eine Art "Installer" basteln. Wenn also jemand die Methode raus kriegt und sich das rum spricht...
- Das Programm muss auf einem wiederbeschreibaren Medium ausgeliefert werden.

Vorteile:
- Wirklich s-i-m-p-e-l

Aber trotzdem - die Idee finde ich witzig. Für Programme ohne grosse Verbreitung sicherlich ein einfaches Hemmnis für Dumpfbacken... ;)

Was mir nicht ganz klar ist: Irgendwie beisst sich der Hund in den Schwanz - ich meine, die Prüfung geht ja auf die Sekunde - wie kannst du so schnell dein Progrämmli starten und dann sofort die Excutable compilieren lassen? Ich denke da müsstes du noch eine Erklärung zu deinem Startbeitrag hinzufügen...

Wenn man dem Kopierschutz-Programm das Datum und den Pfad als ProgrammParameter() übergäbe, dann könnte man das ganze in die Werkzeuge vom PureBasic-Editor eintragen und automatisch beim Compilieren ausführen lassen... nur so eine Idee.

Und was hat es mit der Umgebungsvariablen auf sich?

Warum löschst du die Datei wieder? Du kannst sie ja einfach immer wieder überschreiben...

Re: Kopierschutz V1.1

Verfasst: 12.01.2010 11:44
von Sauer-RAM
AndyMars hat geschrieben:Was mir nicht ganz klar ist: Irgendwie beisst sich der Hund in den Schwanz - ich meine, die Prüfung geht ja auf die Sekunde - wie kannst du so schnell dein Progrämmli starten und dann sofort die Excutable compilieren lassen? Ich denke da müsstes du noch eine Erklärung zu deinem Startbeitrag hinzufügen...

Wenn man dem Kopierschutz-Programm das Datum und den Pfad als ProgrammParameter() übergäbe, dann könnte man das ganze in die Werkzeuge vom PureBasic-Editor eintragen und automatisch beim Compilieren ausführen lassen... nur so eine Idee.

Und was hat es mit der Umgebungsvariablen auf sich?

Warum löschst du die Datei wieder? Du kannst sie ja einfach immer wieder überschreiben...
Da issn Repeat. es überprüft nur jede Sekunde ob die Datei gerade verwendet wird.

Mir Umgebungsvariable wollt ich Kopierschutz V1.2 den Schutz noch testen lassen aber irgendwie blick ich das noch nicht so richtig.

Ich lösche sie weil ich halt Speicherplatz sparen will. :mrgreen:
Wie mit dem Spruch:"Wer das byte nicht ehrt, ist des MegaBytes nicht wert."("Wer den Cent nicht ehr, ist der Euros nicht wert.")
AndyMars hat geschrieben:Nachteile:
- Ja, der Schutz wäre wirklich einfach zu umgehen... Auch via Programme wie ReDateIt - oder ein böser Mensch mit simplen Batchkenntnissen oder Programmierkenntnissen könnte gleich eine Art "Installer" basteln. Wenn also jemand die Methode raus kriegt und sich das rum spricht...
- Das Programm muss auf einem wiederbeschreibaren Medium ausgeliefert werden.
Ja es ist halt nur vor "Nichtprogrammirern" und Programmierern die nicht auf so eine simple Idee kommen sicher. Auserdem will ich es noch mit anderen Methoden an einnen Rechner ketten.(IP Nummer, Seriennummer Benutzername und so)
Das mit dem Datenträger hab ich mir auch schon mal überlegt. Ich will dann eine Installationsdatei schreiben die Das dann auch von CD aus Macht.

Re: Kopierschutz V1.1

Verfasst: 12.01.2010 13:10
von c4s
Also "möglichst effizient, elegant und beispielhaft oder einfach nur cool" finde ich deinen Code ehrlich gesagt nicht. Die Funktionsweise hättest du im Anfangspost auch besser erläutern können, damit nicht Fragen entstehen wie "was macht der eigentlich?". Zumindest mich hat diese Undurchsichtigkeit bzw. Laienhaftigkeit davon abgehalten ihn genauer anzuschauen.
Sauer-RAM hat geschrieben:Auserdem will ich es noch mit anderen Methoden an einnen Rechner ketten.(IP Nummer, Seriennummer Benutzername und so)
Das mit dem Datenträger hab ich mir auch schon mal überlegt. Ich will dann eine Installationsdatei schreiben die Das dann auch von CD aus Macht.
Lass dich davon nicht abhalten. Bedenke nur, dass z.B. Benutzername und IP-Nummer variabel sind.

Kleiner Hinweis: Bitte auch ein wenig auf Rechtschreibfehler achten, um möglicherweise beim Betrachter entstehenden Augenkrebs entgegenzuwirken - Danke.

Re: Kopierschutz V1.1

Verfasst: 14.01.2010 19:36
von Joel
Du könntest eine Loste von PC Infos verwenden:

- Computername
- BOIS Informationen
- Gerätenamen


Wobei sich das erste ändern kann. Aber wäre mal Interessant zu wissen, wie man so was per Bios schützen kann, bzw. Information vom BOIS die nicht veränderbar sind.