Gibt es eine Möglichkeit zu erkennen, wenn die Systemuhr geändert wurde rückwärts in windows?
Auf einem windows-Computer, gibt es eine Möglichkeit heraus zu finden, ob die Zeit geändert wurde rückwärts ohne kontinuierliche überwachung für WM_TIMECHANGE Nachrichten?
Zum Beispiel würde ich gerne machen, das erste, was meine Anwendung tut am Start sehen, wenn die Zeit wurde wieder geändert, seit ich das Letzte mal die Anwendung auszuführen.
Soweit ich das beurteilen kann, der einzige Weg, um zu sehen, eine änderung zu betrachten, der die Nachricht WM_TIMECHANGE, aber ich will nur sehen, dass wenn meine Anwendung ausgeführt wird.
möglich, Duplikat der gibt es eine API-Ereignis für, wenn die person sich verändert-Uhr unter Windows?
Ich 'd werden sehr, sehr überrascht, wenn es eine Möglichkeit, dies zu tun. Auch, es ist kein dupe (die Frage ausdrücklich "ohne
Ich glaube nicht, dass es ein Duplikat als ich bin auf der Suche zu finden, wenn es einen Weg gibt zu erkennen, dass eine änderung nach der Tat. Die anderen Fragen sind zum erkennen einer änderung, wenn es passiert.
Die Vereinbarung w/ Jon & Nick. Dies ist eine andere situation. Kein dupe.
hinzufügen zu der Frage: gibt es eine Möglichkeit, um zu sehen, wenn die Uhr geändert wurde, auch im bios?
Ich 'd werden sehr, sehr überrascht, wenn es eine Möglichkeit, dies zu tun. Auch, es ist kein dupe (die Frage ausdrücklich "ohne
WM_TIMECHANGE
").Ich glaube nicht, dass es ein Duplikat als ich bin auf der Suche zu finden, wenn es einen Weg gibt zu erkennen, dass eine änderung nach der Tat. Die anderen Fragen sind zum erkennen einer änderung, wenn es passiert.
Die Vereinbarung w/ Jon & Nick. Dies ist eine andere situation. Kein dupe.
hinzufügen zu der Frage: gibt es eine Möglichkeit, um zu sehen, wenn die Uhr geändert wurde, auch im bios?
InformationsquelleAutor Nick Randell | 2011-10-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja. Lesen Sie die Windows-Ereignisprotokolle und suchen Sie nach änderungen der Systemzeit. (System-Zeit Veränderungen sind eine der system-Ereignisse werden automatisch protokolliert.) Zum Beispiel habe ich gerade gezwickt mein system mal von ein paar Sekunden und die folgenden erschien in der System-Event-log:
Können Sie die Win32-API verwenden, erhalten Sie Zugriff auf die Ereignisprotokolle dann die Abfrage für diese Ereignisse, um zu bestimmen, wenn die Zeit war in der Tat verändert. Das tolle an dieser Lösung ist, dass es gebaut-und immer läuft. Keine Notwendigkeit, die überwachung von Ereignissen, über eine eigene service etc. Sie nur die Abfrage der OS-Daten.
Das ist noch nicht bullet-proof-Lösung, da die Menschen mit admin-rechten kann die chance Einstellungen, löschen von Protokollen etc. Aber Sie würde auf jeden Fall Laie prüfen Sie Ihre app. System-event-logs sind nicht etwas, was normale Windows-Nutzer denken über.
XML für die jeweilige Veranstaltung: (de-identifiziert für Datenschutz & Sicherheit)
Aber diese Ereignisse können gelöscht werden, so ist es immer noch nicht eine zuverlässige Quelle von Informationen.
Während eine elegante Lösung, Paul, ich würde immer noch behaupten, dass dies nicht eine kanonische Quelle und sollte nicht herangezogen werden. Es gibt KEINEN Weg, um tatsächlich festzustellen, ob die Zeit geändert wurde. Als a_horse erwähnt, sind diese Ereignisse können gelöscht werden, Sie können aber auch komplett umgangen, wenn Sie die Zeit ändern, von einem anderen Betriebssystem auf dem gleichen Rechner oder aus dem BIOS selbst.
Ich Stimme Ihnen vollkommen zu, und eine sehr ähnliche Einschränkung ist bereits in meiner Antwort. Ich werde Fett, es zu machen es sich besser.
InformationsquelleAutor Paul Sasik
Nein, das können Sie nicht. Deshalb ist Zeit-und Kleinschreibung DRM-Systeme sind im Allgemeinen eher nutzlos.
Du könnte versuchen zu umgehen, indem Sie einen Dienst verwenden, und dann würde Sie arbeiten müssen, um die service-Ausfallzeiten, indem mit einem anderen hack, und ein weiterer hack auf der Oberseite, auch.
Sowieso, wenn das ist alles, was Sie zu tun versuchen dann einfach irgendwo speichern (verschlüsselt, möglicherweise) der Wert der Systemzeit in Ihrem Programm Herunterfahren, dann sicherstellen, dass es nicht weitergegeben wurde Programmstart sollte genug sein. Es wird nicht aufhören, die Benutzer, die im Grunde "fror" die Zeit von shutdown zu starten, aber es werden genug sein für 9/10 der Menschen, die versuchen in der Vergangenheit, dass die zeitgesteuerte Prüfung.
Betrachten Sie Zeit-zone, änderungen oder Benutzer-überquerung der Datumsgrenze.
InformationsquelleAutor Mahmoud Al-Qudsi
Könnten Sie die app (während es läuft) in regelmäßigen Abständen vergleichen Sie die Systemzeit mit einem mal holte aus einer server-Ressource irgendwo. Wenn Sie plötzlich sehen, dass der Unterschied zwischen system-Zeit und server Zeit zugenommen hat, bedeutet dies, dass die Systemzeit wurde zurückgesetzt.
Offensichtlich würde dies nicht funktionieren, auf einem Rechner ohne Internet-Zugang.
InformationsquelleAutor MusiGenesis
Einer Idee als die oben genannten (und ich beachten Sie, dass die Prüfung gegen eine externe clock ist die endgültige Antwort, wenn möglich) - Sie können auch in regelmäßigen Abständen Lesen Sie die system-Uhr und speichern es, vielleicht verschlüsselt, versteckt in einer Datei irgendwo. Jedes mal, wenn Sie dies tun, stellen Sie sicher, dass der neue Wert Aktueller ist als der in der Datei. Der Auslöser, dies zu tun könnte sein, bei jedem Systemstart etc.
Wie alle internen Methoden dieser ist anfällig für jemanden, herauszufinden, die versteckte Datei. Sie können daher auch Flagge ein problem, wenn Sie die versteckte Datei fehlt, oder wenn der Zeitstempel passt nicht auf die Inhalte.
InformationsquelleAutor Dominic Haigh