AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kopierschutz

Ein Thema von Peter666 · begonnen am 30. Dez 2010 · letzter Beitrag vom 8. Jan 2011
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Peter666

Registriert seit: 11. Aug 2007
357 Beiträge
 
#1

Kopierschutz

  Alt 30. Dez 2010, 16:22
Hallo allerseits Sicherlich werden einige Leute hier ein ähnliches Problem haben, wie ich hier beschreibe: Wer gute Software produziert muss auch damit rechnen dass diese raubkopiert und/oder gecracked wird. Als Entwickler nimmt man das selbstverständlich ziemlich persönlich und es ist denke ich ein Ammenmärchen, dass alle die eine Raubkopie nutzen sich niemals die Software legal erwerben würden.
Wie dem auch seih, in der Regel sollte man nicht zu viel Arbeit in das Entwickeln eines Kopierschutzes stecken, da professionelle Teams nahezu jeden Kopierschutz auf Kurz oder Lang aushebeln.
Aber niemand hat behauptet man sollte es ihnen leicht machen
Was waren also meine Schritte bis zu meiner jetzigen Lösung (sieht man von der Webrecherche ab)? Zu allererst kauft man sich einen Exepacker für den es keinen One-Click Unpacker gibt. Gute Beispiele finden sich im Netz, deswegen gehe ich nicht darauf ein.
Der zweite Ansatz ist eine dezentrale Schlüssellogik die nicht auf eine einfache: "If Key=GenerateKey(Nutzerkennung)" hinausläuft. Auch sollte man sowas wie: If Keyeingabe=False then Showmessage('Falscher Schlüssel') tunlichst vermeiden..
Aber dennoch gibt es diverse Codestellen die man gerne unleserlich machen möchte. Mein Ansatz schaut hierfür wie folgt aus:
Man packt einen Marker an den Beginn der zu verschlüsselnden Codezeile und einen an das Ende.

Delphi-Quellcode:
 lblBlockStart:
    asm
     db $EB, $0B; // Jmp +10 -> die Position hinter dem MarkerStart- Text
     db "MarkerStart"
    end;

 lblBlockEnd:
    asm
     db $EB, $09
     db "MarkerEnd"
    end;
Die Adressen der beiden Labels kann man via mov eax, offset lblBlockStart bzw. lblBlockEnd ja auslesen.
Zum Verschlüsseln reicht ein einfaches:

Delphi-Quellcode:
 data:= pointer(StartPosition);
 VirtualProtect(data, EndPosition-StartPosition, PAGE_EXECUTE_READWRITE, @OldProtect);
 // verschlüssele den Data Pointer mit einem Algorithmus
 VirtualProtect(Data, EndPosition-StartPosition, OldProtect, @oldProtect);
vollkommen aus.
Jetzt braucht man nur noch ein Patchtool zu schreiben, dass nach $EB, $0B, "MarkerStart" bzw. dem Endmarker sucht und verschlüsselt das ganze mit dem gleichen Passwort.

Das ganze kann man sicherlich verfeinern, dass bleibt ja jedem selber überlassen..

Hat jemand eventuell noch irgendwelche Ideen, die das Debuggen vermiesen? Ich denke da an Funktionen die in einem separaten Thread aufgerufen werden und nach Debuggern ausschau halten bzw. im Zweifel die Anwendung beenden.
Alles was sich so im Internet befindet ist irgendwie Stand <=2005

Peter
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Kopierschutz

  Alt 30. Dez 2010, 16:29
Wesentlich besser: Deaktiviere bestimmte Features oder schränke sie per Compilerschalter ein. Was nicht da ist, kann man auch nicht cracken.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Peter666

Registriert seit: 11. Aug 2007
357 Beiträge
 
#3

AW: Kopierschutz

  Alt 30. Dez 2010, 16:38
Ja, das trifft aber nur bei ner Demoversion bzw. Shareware zu.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#4

AW: Kopierschutz

  Alt 30. Dez 2010, 18:37
Das Problem mit dem Exepacker ist, dass ich den in nicht ganz 10 Minuten ausgehebelt habe - das brauchst Du also schon gar nicht zu probieren (sich selbst in Memory entpacken lassen und dann den Prozess-Memory dumpen (da ist das komplette entpackte Programm drin), den richtigen Einsprungspunkt suchen und that's it). Exepacker haben nur einen einzigen Zweck: Speicherplatz auf der Platte oder beim Übertragen durchs Internet zu sparen auf Kosten des RAM bei der Ausführung. Security ist da njiente.

@Verschlüsselung: Nicht ganz falscher Ansatz, das Problem ist, dass man bei der Ausführung solcher Blöcke diese auch während der Ausführung im entschlüsselten Zustand wegdumpen und dann in das binary-Image wieder einfügen kann. Zudem: Ist das Passwort bekannt hat es sich auch ausverschlüsselt.

Holger (von IBExpert) hat auch *lange* sowas versucht und ist jedes mal recht schnell umgangen worden.
Er setzt nun auf Kommerzielle Tools die tatsächlich (bis jetzt) das halten, was sie versprechen.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Kopierschutz

  Alt 30. Dez 2010, 19:26
Eventuell wäre es interessant zu wissen, welche Tools das sind. Dem einen oder anderen kann das sicherlich helfen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Kopierschutz

  Alt 30. Dez 2010, 19:42
Richtig sicher gibt es aber nicht
http://www.heise.de/newsticker/meldu...t-1161876.html
http://www.youtube.com/watch?v=4loZG...layer_embedded
Wobei es witzig ist, was Sony hier für ein komplexes System aufbaut und dieses dann durch eine "schludrige" Wahl eines Parameters ( feste/gleiche Zufallszahl) ihre System ad-absurdum führt
Markus Kinzler

Geändert von mkinzler (30. Dez 2010 um 19:47 Uhr)
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#7

AW: Kopierschutz

  Alt 30. Dez 2010, 19:55
If keyEingabe = false
ist sowieso schonmal falsch, es würde
If not KeyEingabe
heißen

Und zu deinem obigen Beispiel, es würde auch nichts bringen. Einen BreakPoint drauf und mann weiß was da eingetragen werden soll. Es bringt dir also 0 selbst wenns im anderen Thread läuft.
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Kopierschutz

  Alt 30. Dez 2010, 19:56
schau mal hier, da hatte ich mal was gepostet.

http://www.delphipraxis.net/150049-l...ml#post1013000

wobei all diese dinge recht nutzlos sind. wenn jemand dein programm cracken will, wird er das auch früher oder später schaffen. eigentlich sollte man keine energie auf sowas verwenden. denn das ammenmärchen stimmt, jemand der gecrackte software benutzt zahlt eh nicht und die ehrlichen user benutzen keine cracks. wenn man deine software nicht cracken kan,n nutzen diese leute halt ein anderes produkt zu dem es cracks gibt.
Gruß
Cookie
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

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

AW: Kopierschutz

  Alt 31. Dez 2010, 00:29
Benutze ein Wasserzeichen in den Binärdateien und mache dies den Kunden bekannt. Kündige ebenfalls an, daß Versionen die irgendwo auftauchen identifiziert und die Urheber des Lecks (eben der jeweilige Kunde) nach Zivilrecht in Regress genommen wird - mache dies Teil des Vertrages.

Ist meiner Meinung nach die einzige effektive Maßnahme.

Alle technischen Maßnahmen scheitern schon an dem grundlegenden Widerspruch:
  1. Dem Kunden wird nicht vertraut
  2. Das Programm muß auf dem System laufen, weswegen Schlüssel oder ähnliches mitgegeben werden muß ...

Besonders absurd wird es wenn sichere kryptographische Maßnahmen benutzt werden, aber dieser Widerspruch dem Entwickler nicht bewußt ist - das ist wie der sprichwörtliche Hausschlüssel unter der Fußmatte. Jeglicher Aufwand auf technischer Ebene ist im besten Falle geeignet Anfänger vom Kopieren abzuhalten und im schlechtesten Falle zahlende Kunden zu verprellen wenn der Kopierschutz spinnt ...
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#10

AW: Kopierschutz

  Alt 31. Dez 2010, 00:31
Kauf die dir lieber etwas z.B. THEMIDA.
http://www.oreans.com/themida.php
Das kompiliert ASM Code zu anderen CPU Typen.
Das macht das Debuggen schwieriger, da die meisten Programmierer nur einen CPU-Typ beherrschen aber nicht 10.
Und für 149€ bekommst du das nicht selbst nach programmiert.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 08:28 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