Autor Beitrag
jg72
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 22



BeitragVerfasst: Sa 25.03.17 12:30 
Hallo,

ich soll rausfinden wie man folgendes realisieren kann:

Es soll ein Programm in C# erstellt werden, welches Daten aus einer SQLite-Datenbank darstellen kann. Dieses Programm soll zusammen mit den Daten auf eine CD oder DVD (je nachdem wie groß das Ganze hinterher wird) gepresst werden. Auflage 500-1000 Stück.

Soweit alles kein Problem, jetzt soll aber wenn möglich verhindert werden, dass die CD mit einfachen Mitteln kopiert wird. Dass es keinen 100%igen Schutz gibt ist klar. Es muss auch ein reiner Offline-Schutz sein, ohne Registrierung und Aktivierung usw.

Gibt es in dieser Richtung etwas einfaches?

Viele Grüße,
Jürgen
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 25.03.17 19:02 
Hallo,

wie stellst du dir das denn vor? Lies dir mal Copy protection and DRM durch. Eine 1:1 Kopie (ohne DRM), kann jederzeit erzeugt werden (und wenn ersteinmal nur die Daten auf Festplatte kopiert werden).

Ohne so etwas wie Software Copy Protection for .Net Applications - a Tutorial wirst du keinen hindern können, die Software zu kopieren und dann aufzurufen.
jg72 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 22



BeitragVerfasst: Sa 25.03.17 22:56 
Habe hier eine DVD mit dem Vorgänger-Programm, welches ersetzt werden soll. Kopieren konnte ich diese zwar, aber ein Versuch das Programm auf der Kopie zu starten wird mit einer Fehlermeldung, dass keine Original-DVD eingelegt wurde unterbunden. So etwas stelle ich mir auch vor.

Leider kann nicht sichergestellt werden, dass auf den Zielrechnern eine Internetverbindung vorhanden ist, deshalb fällt eine Aktivierung flach.
OlafSt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 486
Erhaltene Danke: 99

Win7, Win81, Win10
Tokyo, VS2017
BeitragVerfasst: So 26.03.17 15:13 
Hat eine CD nicht eine spezifische Kennung ? Diese auslesen und abfragen. Damit sind einfache Kopien auf Platte und auf CD schon mal eliminiert und damit auch 99,99265% aller Raubkopie-Versuche.

Gegen den Rest kann man kaum was ausrichten, aber dafür muß das Programm auch "interessant" genug sein.

_________________
Lies, was da steht. Denk dann drüber nach. Dann erst fragen.
doublecross
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 149
Erhaltene Danke: 27

Windows 7
C#; Visual Studio 2015
BeitragVerfasst: Mo 27.03.17 15:18 
Hallo,

ich sehe bei deinem Vorhaben unabhängig vom eigentlichen Kopierschutz noch ein paar Probleme bezüglich der Wahl einer .NET Sprache zur Realisierung.

Zum einen ist das ganze, wie user profile iconTh69 bereits anmerkte, unsinnig, solange du nicht einen guten Obfuscator einsetzt. Zum anderen muss auf den Zielsystemen, das Passende .NET Faramework vorinstalliert sein, ist es nicht da, startet deine Anwendung nicht. Eine Einfache Win32 Anwendung wäre an dieser Stelle erheblich weniger anfällig.

Achtung Halbwissen: Soviel ich weiß, realisiert man einen CD/DVD Kopierschutz wie du ihn beschreibst, indem man bewusst einen (oder mehrere) Fehlerhafte Sektoren auf die DVD Presst. Das gestartete Programm überprüft dann, ob an der erwarteten Stelle auf der DVD der erwartete Fehler vorhanden ist. Wird die DVD Kopiert, so gibt sich das Kopierprogramm alle Mühe den Fehler zu Korrigieren bzw. den Fehlerhaften Sektor zu überspringen, somit tritt der Fehler auf der Kopie nicht auf. Werden nur die Daten von der DVD auf eine neue Kopiert tritt er ohnehin nicht auf.
Was man aber benötigt um einer solche DVD herauszustellen kann ich dir genau so wenig beantworten, wie die Frage ob es aus einer .NET Anwendung möglich ist, eine DVD so Lowlevelig (welch schöner ausdruck ;)) auszulesen, dass man solche Fehler identifizieren kann.

Gruß


PS: Wenn du dir angucken willst warum ein Obfuscator zwingend ist, lade dir mal ein Tool wie z.B. dotPeek herunter und öffne eine deiner .NET EXEn damit. Wenn dir das "Problem" bisher nicht bewusst war wird das eine spannende Erfahrung für dich sein ;).
jg72 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 22



BeitragVerfasst: Mo 27.03.17 15:40 
Das mit dem Obfuscator ist mir schon bewusst. Ich könnte mich auch mit C++ ond der MFC anfreunden. Aber wie ist das mit den Abhängigkeiten? Ein .Net-Framework sollte doch inzwischen auf fast allen Windows-Installationen intalliert sein, ich würde mich auf bewusst auf die Version 2.0 beschränken, ich brauche keine Aufwändigen Dinge. Für die C++-Variante brauche ich aber doch auch immer noch die entsprechende Runtime, welche nicht immer installiert sein muss.
doublecross
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 149
Erhaltene Danke: 27

Windows 7
C#; Visual Studio 2015
BeitragVerfasst: Mo 27.03.17 15:51 
Hallo user profile iconjg72,

du hast recht, zumindest nach dieser Quelle, bist du mit dem 2.0er Framework ziemlich auf der sicheren Seite. Es sei denn du möchtest noch alte XP Kisten bedienen.

Gruß