106543
Goto Top

C Sharp - Timer, der ein Programm nach drei Monaten unbrauchbar macht

Hallo Leute,

ich leg am Besten gleich mal los face-smile
ich suche eine Möglichkeit, einen Timer oder sowas in mein C#-Programm einzubauen, welcher nach 3 Monaten die Benutzung verhindert.

Schon mal danke für eure Hilfe face-smile

Mit freundlichen Grüßen
Dominik

Content-ID: 188892

Url: https://administrator.de/contentid/188892

Ausgedruckt am: 15.11.2024 um 21:11 Uhr

wiesi200
wiesi200 31.07.2012 um 14:53:12 Uhr
Goto Top
Hallo,

im Endeffekt müsstest du in der der Windows Reg einen "Ablaufdatum" am besten irgendwie Codiert rein schreiben und dann bei Programstart und dann z.b. jede 2te Stund das überprüfen ob das Datum überschritten ist.

Oder du Summiert die Laufzeit auf musst die dann aber auch wieder irgendwo hinterlegen.
106543
106543 31.07.2012 um 14:54:50 Uhr
Goto Top
Hi Wiesi200,

also im Endeffekt läufts drauf raus, dass ich die Zeit iwo speichern muss und regelmäßig gegenprüfen ?

Grüße
Dominik
catachan
catachan 31.07.2012 um 14:59:09 Uhr
Goto Top
Hi

wenn du das Ablaufdatum nicht hardcodiert im Source Code haben willst (was bedeuten würde dass du es für jeden Kunden eu übersetzen musst), dann must du es wohin speichern. Wenn du aber nur auf das lokale Datum gehst, dann kann man es ganz leicht austricksen, indem man die Uhr zurückstellt.

LG
maretz
maretz 31.07.2012 um 14:59:24 Uhr
Goto Top
So du nicht ein festes datum einprogrammieren willst (z.b. 31.12.2012) dann ja...
106543
106543 31.07.2012 um 15:02:19 Uhr
Goto Top
Hallo Ihrs ;)

welche Möglichkeiten habe ich denn noch abgesehn von lokalen Datum ? Weil da hast du Recht wenn der die Uhr zurückstellen kann wärs ja bissl blöde face-smile

Grüße
Dominik
catachan
catachan 31.07.2012 um 15:09:47 Uhr
Goto Top
Hi

du könntest die Uhrzeit mit einem NTP Server vergleichen. Oder Dir einen Webservice basteln gegen den geprüft wird. Ist halt eine Frage wie sicher das ganze sein soll.

LG
106543
106543 31.07.2012 um 15:11:40 Uhr
Goto Top
Hi

Aber an sich verwenden ja die Versionen von Windows diese Trials ein ähnliches Prinzip oder irre ich mich da ? Weil da kann ich die Uhr ja auch nicht einfach zurückstellen ? ;) Funktioniert ja denke ich auch ohne Webzugang.

Grüße
Dominik
Dani
Dani 31.07.2012 um 15:21:34 Uhr
Goto Top
Moin,
du könntest die Uhrzeit mit einem NTP Server vergleichen
Das hätte zur Folge, dass immer eine Internetverbindung stehen muss. Finde ich persönlich nicht so tolle.
Ich würde beim ersten Programmstart die Uhrzeit auslesen und codiert in die DB/Datei, etc... schreiben. Registry finde ich ebenfalls schlecht. Danach kann der Benutzer so oft wie er will das Datum ändern es wird nichts mehr gehen. Warum? Weil die 3 Monate einfach auf das erste Datum aufrechnest, dass du bei der Erstausführung gespeichert hast. face-smile


Grüße,
Dani
maretz
maretz 31.07.2012 um 15:21:36 Uhr
Goto Top
Du kannst ja die startzeit immer mitspeichern - und vergleichen ob der letzte start vor dem aktuellen datum liegt. Wenn nicht ist es eine manipulation und fertig...
106543
106543 31.07.2012 um 15:25:16 Uhr
Goto Top
Hi erstmal danke für die tolle Hilfe face-smile

jetzt noch eine Frage,
inwiefern kann ich in C# Strings codieren und auslesen ? ;) hab ich noch nie gemacht

Grüße
Dominik
Dani
Dani 31.07.2012 um 15:28:39 Uhr
Goto Top
Zum Beispiel so.


Grüße,
Dani
106543
106543 31.07.2012 um 15:31:12 Uhr
Goto Top
Hi Dani,

danke vielmals face-smile

Grüße Dominik
MonoTone
MonoTone 01.08.2012 aktualisiert um 16:37:49 Uhr
Goto Top
Nur zur Information.
Du wirst es nicht ausschliessen können, dass dein Programm dennoch geknackt wird.
Wirklich sicher gehts halt nicht.
Im einfachsten Fall löscht man einfach die Datenbank/Regschlüssel/Datei, auch wenn sie verschlüsselt sind.
Oder man dekompiliert das Programm und ändert es oder schaut einfach nur, wie du es überprüfst.

Ich würde mich in erster Linie um die Qualität des Programms kümmern, nicht um iwelche Trialphasen etc.

//EDIT
Im Übrigen würde die Frage in die .NET Kategorie gehören^^
Beast76
Beast76 01.08.2012 um 22:39:08 Uhr
Goto Top
Hi,

um den Dekompiliervorgang etwas zu erschweren, solltest du ein Obfuscator verwenden.

Weiterhin besteht noch die Möglichkeit anstatt einer Verschlüsselung, einfach einen Hash (wie z.B. beim Speichern von Passwörtern) für das Datum und ggf. sogar eine Hardware-ID des Rechners zu erzeugen. Diesen Hash hinterlegst in einer Art Schlüsseldatei, die du dann mit auslieferst.
Ohne dieser Schlüsseldatei läuft dein Programm dann sowieso nicht. Und somit hast du zumindest etwas die Kontrolle.
Willst du dein Programm allerdings in größeren Mengen verteilen, dann wird das ein ganz schöner Aufwand die Schlüsseldateien jedesmal manuell zu erzeugen. Da gibt es aber auch einige fertige Tools die soetwas können.

Grüße
Volker
maretz
maretz 02.08.2012 um 08:09:30 Uhr
Goto Top
Moin,

ganz ehrlich - ich würde erstmal gucken um was für ein Programm es sich handelt bevor ich mir um so was Gedanken machen würde... Es gibt diverse gute Tools im Bereich "79 ct" (zumindest beim Mac und i*), da würde sich keiner die Mühe machen das aufwendig zu knacken. Beim PC siehts nicht soviel anders aus... Klar gibt es Leute die sich sogar das Programm dann knacken würden - gegen die kann man einfach nicht viel machen. Aber zumindest wenn die Software Eigenschaften hat die einen wirklich helfen gibt es auch diverse Leute die dafür bezahlen um das legitim freizuschalten (bei Software die einen nicht dezent dran errinnert fällt es dagegen zu leicht zu sagen "mach ich morgen"...).

Klar - wenn man jetzt das 100ste ZIP-Tool baut und das zum Preis von 500 Euro verkaufen will dann wird das nix, aber es gibt genügend offene Stellen bei denen die passende Software durchaus einen akzeptablen Preis erzielen kann...
106543
106543 02.08.2012 um 08:32:01 Uhr
Goto Top
Hallo Ihrs wieder face-smile,

danke für all die guten Ratschläge erstmal. Werde ich beherzigen.
Ich muss MonoTone in diesem Fall zustimmen, ich sollte erstmal drauf achten, dass es ein gutes bzw. anständiges Programm ist. Danach kann ich mich noch darum kümmern. Aber eure Ideen werde ich definitiv verwirklichen, und wenns nur zum Testen ist face-smile

Danke vielmals
Dominik