Hallo, ich bin auf der Suche nach einem Regitry Eintrag unter Windows, der mir das aktuelle Datum liefert. Die Systemuhr möchte ich dabei nicht verwenden. Vielleicht gibt es ja etwas wie z.B. einen Eintrag mit dem Zeitpunkt des Systemstarts? Bin für jeden Hinweis dankbar. Pit
:
Verschoben durch User
Pit schrieb: > Vielleicht gibt es ja etwas wie z.B. einen Eintrag mit dem Zeitpunkt des > Systemstarts? wenn, dann ist der doch auch mit Hilfe der Systemuhr geschrieben worden?? Ansonsten hilft nur NTP..
Pit schrieb: > Die Systemuhr möchte ich dabei nicht verwenden. Ich verstehe nicht ganz, worauf du hinaus willst. Alle Zeiten im Rechner kommen von der Systemuhr. Vielleicht kannst du deine Beweggründe und Vorstellungen mal erläutern?
Wenn es um die Uhrzeit des Systemstarts geht: mit "GetTickCount()" lässt sich die Zeit seit Systemstart ermitteln. Diese von der aktuellen Uhrzeit abziehen - fertig. mfG
Pit schrieb: > das aktuelle Datum liefert. > Vielleicht gibt es ja etwas wie z.B. einen Eintrag mit dem Zeitpunkt des > Systemstarts? Der Systemstart kann aber schon 14 Tage oder ein viertel Jahr her sein. Von daher keine gute Idee. Willst du das aktuelle Datum, wie du es oben geschrieben hast, oder willst du das Datum zum Zeitpunkt des Systemstarts?
Die Startzeit des Systems findest du so heraus: Am CMD-Prompt eingeben: systeminfo | find "Systemstartzeit" Was willst du eigentlich erreichen? Kannst du dich mal dazu äußern, bevor wir hier weiter raten? :-)
@El Jefe: Bevor wir Gefahr laufen, aneinander vorbei zu reden: Mit Systemuhr ist nicht die RTC gemeint, sondern der ganze "Software-Mechnismus", der sich um Uhrzeit und Datum dreht. Das Stück Betriebssystem bezeichne ich als Systemuhr. Ok?
Erwin D. schrieb: > Das Stück Betriebssystem bezeichne ich als Systemuhr. Ok? Und? Welchen tieferen Sinn hat es, das umgehen zu wollen?
Rufus Τ. F. schrieb: > Und? Welchen tieferen Sinn hat es, das umgehen zu wollen? Das frage ich mich ja auch. Aber vom TO hört man nichts mehr...
Den Zeitpunkt des Systemstarts (um wenigstens eine der Fragen zu beantworten) kann man im Dateisystem finden - das ist die Änderungszeit der Datei c:\pagefile.sys
Rufus Τ. F. schrieb: > Den Zeitpunkt des Systemstarts (um wenigstens eine der Fragen zu > beantworten) kann man im Dateisystem finden - das ist die Änderungszeit > der Datei c:\pagefile.sys Das ist doch mal ein Hinweis. Danke. Die Systemuhr ist schnell mal umgestellt. Ein Eintrag in der Registry nicht. Jedenfalls dann nicht, wenn der Anwender nicht weiss, um welchen es sich handelt. Was das Ganze soll? Ich brauche einen möglichst objektiven Blick auf die Uhrzeit. Und zwar ohne das Ding unten rechts am Bildschirm zu verwenden. Pit
Welche Zeit in der Registry ändert sich denn nicht wenn man die Systemzeit ändert?! Auch die "Zeit unten rechts" betrifft die Systemzeit - diese ändert die vom BIOS vorgegebene / eingestellte Zeit. Du brauchst ja eine Referenz... ich gehe mal von einem "Kopierschutz / Dongleschutz" aus - auf was das eventuell hier hinausläuft. Du brauchst eine Referenz, und die Systemzeit ist in deinem Fall keine, wenn ein Anwender ein Programm nur in einem bestimmten Zeitraum nutzen darf. Und er dies in der Systemzeit zurückstellt - dann wird dies auch geändert. In der Regisrty ist mir kein Wert bekannt welcher nach einem Neustart z.b. die "alte" Zeit noch hat. Du kannst dies umgehen indem du deine eigene Referenz machst. Dein Programm speichert in regelmäßigen Abständen die aktuelle Zeit in irgendeiner externen Datei (verschlüsselt) oder eben irgendwo versteckt in der Registry - und vergleicht diese ob die Zeit seit der letzten Prüfung nicht zu grob Abweicht (z.b. fünf Minuten oder so) und dann kannst du entscheiden.
Oh je, da möchte wohl jemand einen "besonders sicheren" Softwareschutz entwickeln, mit dem sich eine ablaufende Lizenz verwirklichen läßt... Meist taugt Software umso weniger, je mehr der Entwickler sich um Kopierschutz, Lizenzverwaltung & Co sorgt, anstatt an der eigentlichen Funktionalität zu arbeiten...
Draco schrieb: > ich gehe mal von einem "Kopierschutz / Dongleschutz" > aus - auf was das eventuell hier hinausläuft. Genau, sehr gut erkannt. Draco schrieb: > Du brauchst eine Referenz, und die Systemzeit ist in deinem Fall keine, > wenn ein Anwender ein Programm nur in einem bestimmten Zeitraum nutzen > darf. Genau deshalb will ich sie ja auch nicht nutzen. Draco schrieb: > In der Regisrty ist mir kein Wert bekannt welcher nach einem > Neustart z.b. die "alte" Zeit noch hat. Du kannst dies umgehen indem du > deine eigene Referenz machst. Das mach ich ja auch indem ich den Installationszeitpunkt in der Registry sichere. Ich suche den Vergleichswert - also die aktuelle Zeit / Datum, und zwar unverfälscht. Und tatsächlich... Rufus Τ. F. schrieb: > Den Zeitpunkt des Systemstarts (um wenigstens eine der Fragen zu > beantworten) kann man im Dateisystem finden - das ist die Änderungszeit > der Datei c:\pagefile.sys das ist genau der Zeitpunkt, zu dem der Rehner hochgefahren wurde. Das lässt sich vorzüglich verwenden. Thosch schrieb: > Oh je, da möchte wohl jemand einen "besonders sicheren" Softwareschutz > entwickeln, mit dem sich eine ablaufende Lizenz verwirklichen läßt... Warum 'besonders sicher'? Ich finde die Methode eher 'besonders simpel'. Ein Registry Eintrag schreiben und ein Installationsdatum einer Datei lesen. Was ist daran kompliziert oder umständlich, oder wie Du es sagen würdest: 'besonders sicher'? Thosch schrieb: > Meist taugt Software umso weniger, je mehr der Entwickler sich um > Kopierschutz, Lizenzverwaltung & Co sorgt, anstatt an der eigentlichen > Funktionalität zu arbeiten... Ja, ja, so ist das wohl. Danke noch mal. Pit
Pit schrieb: > das ist genau der Zeitpunkt, zu dem der Rehner hochgefahren wurde. Das > lässt sich vorzüglich verwenden. Das ist der Zeitpunkt, an dem der Rechner meint hochgefahren worden zu sein. Wenn du vorher die RTC umstellst steht da halt auch nur die vom Anwender gewünschte Zeit. Thosch schrieb: > Meist taugt Software umso weniger, je mehr der Entwickler sich um > Kopierschutz, Lizenzverwaltung & Co sorgt, anstatt an der eigentlichen > Funktionalität zu arbeiten... Dem ist nichts hinzuzufügen.
Dann muesst man noch nachschauen,ob hochfahren auch un-hibernate beinhaltet, oder nur den Kaltstart. Ich zB hibernate ausschliesslich und komme so auf Systemlaufzeiten von Monaten.
:
Bearbeitet durch User
Pit schrieb: > Draco schrieb: >> In der Regisrty ist mir kein Wert bekannt welcher nach einem >> Neustart z.b. die "alte" Zeit noch hat. Du kannst dies umgehen indem du >> deine eigene Referenz machst. > > Das mach ich ja auch indem ich den Installationszeitpunkt in der > Registry sichere. > Ich suche den Vergleichswert - also die aktuelle Zeit / Datum, und zwar > unverfälscht. Du musst nicht nur den Installationszeitpunkt sichern, sondern den letzten Ausführungszeitpunkt. Und mit diesem Arbeiten. Bau dir ein gescheites Ablaufdiagramm und schau schau es dir in Ruhe an. Pit schrieb: > Rufus Τ. F. schrieb: >> Den Zeitpunkt des Systemstarts (um wenigstens eine der Fragen zu >> beantworten) kann man im Dateisystem finden - das ist die Änderungszeit >> der Datei c:\pagefile.sys > > das ist genau der Zeitpunkt, zu dem der Rehner hochgefahren wurde. Das > lässt sich vorzüglich verwenden. Falsch, dumme Idee, das ist der Zeitpunkt des letzten Hochfahrens. Ich versuche dir das mal zu erklären wie ein normaler User das umgehen würde wollen: (Ich darf die Software 10 Tage nutzen) - Rechner an. - Es ist der 11.08. - Deine Software startet, schaut aufs Installationsdatum (01.08.) - Deine Software vergleicht es mit pagefile.sys (Datum 11.08.) - Deine Software sagt: "Oh... deine Zeit ist um!" - Ich beende deine Software und stelle die Systemzeit auf (03.08.) - Deine Software startet, schaut aufs Installationsdatum (01.08.) - Deine Software vergleicht es mit pagefile.sys (Datum 11.08.) - Deine Software sagt: "Oh... deine Zeit ist um!" - Ich beende deine Software - Ich starte den Rechner neu - Deine Software startet, schaut aufs Installationsdatum (01.08.) - Deine Software vergleicht es mit pagefile.sys (nun Datum 03.08.) - Deine Software sagt: "Jawoll, im Zeitraum!" --> Dein Schutz ist ausgehebelt. Wenn du nun aber während der Laufzeit deine aktuelle Zeit änderst, speicherst und vergleichst, hast du einen wesentlich besseren Schutz. Und sollte es wirklich sicher sein, dann nimm deine Zeit einfach von einem NTP Server, sollte dieser nicht erreichbar sein - weil ne Firewall davor sitzt oder das NW Kabel gezogen - dann unterbinde die Nutzung der Software. (Gut, da kann man auch den NTP Server umrouten auf einen eigenen, mit einer falschen Zeit und diesen tracken lassen, dann hat er es aber auch verdient die Software weiter nutzen zu können :-D )
Draco schrieb: > dann nimm deine Zeit einfach von > einem NTP Server, sollte dieser nicht erreichbar sein - weil ne Firewall > davor sitzt oder das NW Kabel gezogen - dann unterbinde die Nutzung der > Software. Das wäre für mich für jede Software das absolute KO-Kriterium, selbst wenn es sich um ein geniales Programm handeln würde, was nach dem Ansatz des TO eher unwahrscheinlich ist. Ich denke auch dass das rechtlich bedenklich ist, jedenfalls wenn man Software verkauft und nicht verleiht. Ein eigener NTP-Server ist ja auch kein Problem oder sogar sowieso vorhanden, und ein direkt nach der Installation gespeichertes Image mit der passenden Systemzeit zurückzuspielen auch nicht - aber erfahrungsgemäss ist eine solche Software den Aufwand garnicht wert. Georg
Oh D. schrieb: > Dann muesst man noch nachschauen,ob hochfahren auch un-hibernate > beinhaltet, oder nur den Kaltstart. Ich zB hibernate ausschliesslich und > komme so auf Systemlaufzeiten von Monaten. Das schadet ja nicht. Dann läuft das Programm eben garnicht. Draco schrieb: > Du musst nicht nur den Installationszeitpunkt sichern, sondern den > letzten Ausführungszeitpunkt. Und mit diesem Arbeiten. Bau dir ein > gescheites Ablaufdiagramm und schau schau es dir in Ruhe an. Ja das mach ich ja auch noch. Aber man kann auch Änderungen in der Registry nachverfolgen. Das mit der Systemzeit ist eigentlich nur der 'doppelte Boden'. Draco schrieb: > Falsch, dumme Idee, das ist der Zeitpunkt des letzten Hochfahrens. Ich > versuche dir das mal zu erklären wie ein normaler User das umgehen würde > wollen: Darauf kommt man aber nur, wenn man diesen Thread verfolgt hat. Jedenfalls ist das Umstellen der Systemzeit unten rechts DER 'Klassiker'. Und wenn man dann auch noch hergeht und den Rechner 3 mal rauf und runter fährt und die Mainboard Zeit umstellt, und sich dadurch vlt. das Windows-System zerrupft, dann hat man es auch verdient meine Software zu nutzen. Euler schrieb: > Thosch schrieb: >> Meist taugt Software umso weniger, je mehr der Entwickler sich um >> Kopierschutz, Lizenzverwaltung & Co sorgt, anstatt an der eigentlichen >> Funktionalität zu arbeiten... > > Dem ist nichts hinzuzufügen. Doch. Das war jetzt ein Dreizeiler, 5 Minuten: [code] Hier sollte eigentlich das Snippet stehen. Aber ich spar mir das mal. Ist ja eh nur Mist. [\code] Gruß Pit
Georg schrieb: > Das wäre für mich für jede Software das absolute KO-Kriterium, selbst > wenn es sich um ein geniales Programm handeln würde, was nach dem Ansatz > des TO eher unwahrscheinlich ist. Ich denke auch dass das rechtlich > bedenklich ist, jedenfalls wenn man Software verkauft und nicht > verleiht. Das ist üblich, was denkst du denn?! Und warum sollte das rechtlich bedenklich sein? Mal ein Beispiel aus unserem (µC) Bereich wer das so macht: Target 3001 z.b. sowie wird das eigentlich bei viiiielen Timetrials heutzutage so gemacht. http://server.ibfriedrich.com/wiki/ibfwikide/index.php?title=Begr%C3%BC%C3%9Fungsdialog Wenn man darauf hinweißt das eine bestehende Verbindung nötig ist um die Software zu nutzen ist das doch völlig okay. Es werden ja keine Daten nach außen gesendet, es wird sich ein korrekter Timestamp geholt.
Draco schrieb: > sowie wird das eigentlich bei viiiielen > Timetrials heutzutage so gemacht. Dass es sich um eine Testversion handelt hat niemand gesagt. Da würde ich das ja noch akzeptieren, aber nicht wenn ich für das Programm gezahlt habe und dann damit rechnen muss, dass die Software nicht mehr funktioniert, weil der Programmierer die Lust verloren und seinen Server abgeschaltet hat oder weil die Firma verkauft wurde usw. usw. Auf jeden Fall muss man eindeutig darauf hinweisen, dass die Software bzw. deren Nutzung nicht verkauft, sondern nur vorübergehend ausgeliehen wird. Ebenso muss klargestellt sein, was mit den erstellten Daten geschieht, wenn die Lizenz abgelaufen ist - dass die schlicht verloren sind würde ich niemals akzeptieren. Wenn es sich um Software handelt, die für eine Firma von strategischer Bedeutung ist, etwa Buchhaltung oder Fertigungspalnung, sieht man sich als Programmiere bei Problemen mit dem Softwareschutz auch schnell Schadensersatzansprüchen in praktisch unbegrenzter Höhe gegenüber, das sollte man sich schon gut überlegen. Georg
Georg schrieb: > Wenn es sich um Software handelt, die für eine Firma von strategischer > Bedeutung ist, etwa Buchhaltung oder Fertigungspalnung, sieht man sich > als Programmiere bei Problemen mit dem Softwareschutz auch schnell > Schadensersatzansprüchen in praktisch unbegrenzter Höhe gegenüber, das > sollte man sich schon gut überlegen. Dafür wurde die GmbH erfunden.
Georg schrieb: > Dass es sich um eine Testversion handelt hat niemand gesagt. Da würde > ich das ja noch akzeptieren, aber nicht wenn ich für das Programm > gezahlt habe und dann damit rechnen muss, dass die Software nicht mehr > funktioniert, weil der Programmierer die Lust verloren und seinen Server > abgeschaltet hat oder weil die Firma verkauft wurde usw. usw. Ein NTP Zeitserver ist doch nicht unbedingt privat? Gibt doch auch staatliche Zeitserver. Er empfängt doch keine Daten von seinem eigenen Server. Georg schrieb: > Auf jeden Fall muss man eindeutig darauf hinweisen, dass die Software > bzw. deren Nutzung nicht verkauft, sondern nur vorübergehend ausgeliehen > wird. Ebenso muss klargestellt sein, was mit den erstellten Daten > geschieht, wenn die Lizenz abgelaufen ist - dass die schlicht verloren > sind würde ich niemals akzeptieren. Warum sollten den die Daten verloren sein wenn die Timetrial abgelaufen ist?! Wie denkst du denn wie das gehandhabt wird bei sonstiger Timetrial Software, sei es gekauft oder als Demo - ich führe mal Office 360 von Microsoft an, welche ebenfalls ein Zeitmodel haben?! Wie das mit Visual Studio ist? Mit Altium? etc... da gibt es tausende große Firmen die solche Zeitlizenzen haben, du tust ja so als ob das was außergewöhnliches ist. Georg schrieb: > Wenn es sich um Software handelt, die für eine Firma von strategischer > Bedeutung ist, etwa Buchhaltung oder Fertigungspalnung, sieht man sich > als Programmiere bei Problemen mit dem Softwareschutz auch schnell > Schadensersatzansprüchen in praktisch unbegrenzter Höhe gegenüber, das > sollte man sich schon gut überlegen. So nen Quark, dafür gibt es Disclaimer und AGBs, welche bei Benutzung der Software akzeptiert werden müssen. Kannst dich auch gerne mal hier belesen: http://www.it-rechtsanwalt.com/softwarerecht/der-standardsoftware-kaufvertrag-4221.php In solch einem Fall muss im übrigen dem Programmierer grobe Fahrlässigkeit nachgeweisen (!!) werden, welche ja bei abschaltung eines staatlichen Zeitservers nicht gegeben ist. Desweiteren ist der Benutzer der Software auch verpflichtet seine Daten in regelmäßigen Abständen zu sichern - wie er dies macht - ist ja dem Programmierer gleich, und wenn der Nutzer den Monitor auf den Kopierer liegt. So einfach wie du das sagst isses nicht gegen eine Software zu klagen.
Draco schrieb: > Desweiteren ist der Benutzer > der Software auch verpflichtet seine Daten in regelmäßigen Abständen zu > sichern Was ihm rein garnichts nützt, wenn er sie wegen abgelaufener Softwarelizenz nicht mehr lesen kann. Da fehlt es wohl am logischen Denken - natürlich sind Backups wichtig, nur nicht dafür. Draco schrieb: > Warum sollten den die Daten verloren sein wenn die Timetrial abgelaufen > ist?! Wie denkst du denn wie das gehandhabt wird bei sonstiger Timetrial > Software, sei es gekauft oder als Demo Ich hatte definitiv schon ein umfangreiches Entwurfsprogramm für FPGAs u.ä. da, mit einer Lizenz für 1 Jahr - um festzustellen, dass ich nach Ablauf der Lizenz nicht mal mehr die Pinbelegung der entworfenen Chips auslesen konnte und auch sonst nichts - also 100% Datenverlust. Praktisch ist das Erpressung zur Erneuerung der Lizenz, aber aus grundsätzlichen Gründen habe ich es vorgezogen, die Teile mit anderer Software neu zu erstellen, ich lasse mich nun mal weder gern erpressen noch betrügen. Georg
Ja natürlich, aber ich weiß doch das die Lizenz nach einer gewissen Zeit nicht mehr gültig ist, deswegen hat man sich ja mal irgendwann für dieses Modell der Entschädigung entschieden?! Ich verstehe dein Problem nicht, und natürlich sollte einem halbwegs normal denkendem Menschen in den Sinn kommen, das ich dieses Programm nach der Zeit nicht mehr nutzen kann, weder mit den Daten die bereits gespeichert sind, noch mit neuen. Das ein Programm, im µC Bereich, aber einen Chip "sperrt" nach Ablauf der Lizenz - quasi ein externes Bauteil - das ist mir allerdings neu. Das kenne ich nicht. Namen?!
Draco schrieb: > aber einen Chip "sperrt" nach Ablauf > der Lizenz - quasi ein externes Bauteil Was immer du da verstanden hast - es geht um einen mit der Software konstruierten Custom-Chip, auf Basis von CPLD oder FPGA. Vergleichbar wäre, wenn man nach Ablauf einer zeitlich begrenzten Office-Lizenz geschriebene Briefe nicht mehr lesen könnte - das widerspricht schon den gesetzlichen Anforderungen an die Dokumentation. Um das klar zu stellen: es geht nicht darum, dass man Dateien nicht mehr ändern kann, das wäre ja ok, sondern man kann überhaupt nicht mehr darauf zugreifen. Und ja, solche Software gibt es, und die Dateien sind auch propriertär, man kann sie auch mit keinem anderen Programm lesen. Soweit das Finanzamt im Spiel ist, sind die Anforderungen immer strenger geworden, es wird verlangt, dass auch die Buchhaltung längst vergangener Jahre noch zugreifbar ist. Die Ausrede, meine Lizenz ist abgelaufen, da kann man nichts mehr nachschauen, führt u.U. zu einer Strafanzeige. Georg
Ich ärgere mich auch über Trial-Software, die nach der Probezeit so komplett ihren Dienst einstellen. Daher kann ich Georgs Einwände gut verstehen aber auch Draco hat Recht - wenn die Zeit abgelaufen ist kann man nicht erwarten, dass die Software noch voll oder teilweise funktioniert (das man noch lesend zugreifen kann ist nett darf man aber nicht erwarten). Mich interessiert der technische Aspekt der Ausgangsfrage aber mehr als die Rechtlichen. Wie schreibe ich selber eine Trial-Software, die man nicht so leicht knacken kann ? Ich denke der Weg über einen festen öffentlichen NTP-Server ist ganz gut. Vergleich von Installationszeitpunkt mit dem Aktuellen. Ist keine Verbindung möglich (Firewall, Stecker gezogen) könnte man umschalten auf Laufzeitbeschränkung plus limitierte Programmstarts z.B. 10 Starts mit maximal 48Stunden Programmlaufzeit. Per Timer-Event im Sekundentakt könnte man die 48Std runterzählen so wäre man Systemzeit unabhängig. Gute Idee, schlechte Idee, bessere Idee ? Gruß Taz
Taz G. schrieb: > Vergleich von Installationszeitpunkt mit dem Aktuellen. Da fehlt eine Absicherung dagegen, immer wieder neu zu installieren. Das müsste man also kombinieren mit etwas anderem, z.B. einem Installationskey mit begrenzter Lebensdauer. Georg
Georg schrieb: > Da fehlt eine Absicherung dagegen, immer wieder neu zu installieren. Guter Einwand, hab ich gar nicht dran gedacht. Man könnte auch, was mir gar nicht gefällt eine Information auf dem Rechner hinterlassen - in der Registry oder irgendwo im Systemverzeichnis. Der Key ist eine gute Idee. Taz
Man kann das Problem nur mit einem Online-Zwang abschliessend lösen, darum machen das die grossen Firmen wie Microsoft, Apple, Adobe etc. ja auch so. Die Lizenz wird immer mal wieder online beim Hersteller/Lieferanten überprüft.
:
Bearbeitet durch User
Taz G. schrieb: > Man könnte auch, was mir gar nicht gefällt eine Information auf dem > Rechner hinterlassen - in der Registry oder irgendwo im > Systemverzeichnis. Kannst du gleich vergessen, das findet man, vielleicht nicht jeder DAU, aber jeder der sich auskennt. Und es gibt z.B. Software, die die Installation überwacht und festhält, was alles geändert wurde. Und wenn mir das zuviel ist spiele ich einfach das Image von vor der Installation wieder auf. Georg
Georg schrieb: > vielleicht nicht jeder DAU, aber jeder der sich auskennt Ich meinte für DAU, bei jemanden der sich auskennt steigt der Aufwand enorm. Man kann ja auch eine viruelle Maschine benutzen, die man immer wieder reseten kann. Sicher wäre Online-Zwang da müsste man als Entwicker aber immer einen Server laufen haben. Als privat Person nicht optimal. Interessant wie kompliziert die Sache wird wenn man mal darüber nachdenkt. Taz
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.