Chrono Mock
SpracheDeutsch

Windows-App mit beliebigem Datum ausführen - ohne die Systemuhr anzutasten

Stellen Sie die Uhr einer einzelnen Anwendung auf nächstes Jahr, frieren Sie sie ein oder beschleunigen Sie sie, sodass eine 30-Tage-Testversion abläuft, während Sie sich einen Kaffee holen. Der Rest des Rechners behält die echte Zeit - Domänenanmeldung, Zertifikate und alle anderen Programme laufen unverändert weiter.

Danach sagt es Ihnen, ob die Ersetzung tatsächlich gewirkt hat.

Kostenlos und Open Source, GPL-3.0 Portabel oder installiert Zum Ausführen keine Administratorrechte Verbindet sich nie mit dem Internet

So sieht eine Sitzung aus

Die Anwendung sieht
2027-12-31
23:59:50
Sitzungszone -05:00
Der Rechner sieht weiterhin
2026-09-04
18:12:33
Host-Zone +02:00
Funktioniert - die Ersetzung hat diesen Prozess erreicht
Beobachtete Zeitkanäle bis zu 44 · jeder mit Aufrufzahl
Das Sitzungsfenster von Chrono Mock. Die Uhr der Anwendung zeigt 2038-01-19 03:14:14, die echte Uhr daneben 2026-09-22 15:50:30, jeweils mit eigener verstrichener Zeit. Darunter reichen die Geschwindigkeiten von x1 bis x1440 mit einer Einfrieren-Schaltfläche, dann die relativen Sprünge und ein Sprung zu einem eingegebenen Datum; in der Fußzeile steht neben einer roten Schaltfläche zum Beenden der Sitzung ein grünes Häkchen mit dem Wort Works.
Eine laufende Sitzung. Die Anwendung befindet sich im Jahr 2038, der Rechner nicht, und das Urteil sagt, dass die Ersetzung sie erreicht hat.

Warum es das gibt

Wer datumsabhängige Funktionen testet, muss die Zeit verschieben. Beide üblichen Wege taugen nichts.

Lizenzablauf, Testzeiträume, Abo-Verlängerungen, Zertifikatsgültigkeit, Token-Laufzeiten, Monats- und Jahresabschlüsse, Zinsberechnung, Erinnerungen.

Weg 1 - die Systemuhr umstellen

Das stört die Domänenanmeldung und Kerberos, macht TLS-Zertifikate ungültig, sodass der Browser nicht mehr funktioniert, verwirrt Windows Update und lässt jede andere Anwendung auf dem Rechner falsche Zeitstempel schreiben. Auf einem Rechner in einer Domäne blockiert die Gruppenrichtlinie die Änderung meist oder macht sie nach Minuten rückgängig - der Test ist also nicht einmal wiederholbar.

Weg 2 - abwarten

Das heißt: nicht testen. Die datumsabhängigen Fälle fallen unter den Tisch, und „die Lizenz läuft nie ab“ geht an den Kunden.

Was es kann

Ein einziger Prozess bewegt sich durch die Zeit. Alles andere auf dem Rechner nicht.

Jeder Zeitpunkt

Ein bestimmtes Datum mit Uhrzeit oder ein relativer Wert - +30 days, -1 year.

Laufend, eingefroren oder beschleunigt

Normale Geschwindigkeit, eine angehaltene Uhr oder ein ganzzahliger Faktor. x1440 macht aus einem Tag eine Minute.

Eine eigene Zeitzone

Ein fester Offset nur für diesen Prozess, während die Systemzone genau dort bleibt, wo sie war.

Kindprozesse kommen mit

Installer und Launcher starten Kindprozesse. Ohne sie deckt der Test nur die Hälfte dessen ab, was lief.

Sprünge mitten in der Sitzung

Vorwärts oder rückwärts - auch der Rückwärtssprung, den ein Laptop nach dem Abgleich mit einem Zeitserver macht.

Auch Electron und Chromium

Über einen anderen Mechanismus, denn ihre Uhr liegt in einem abgeschotteten Renderer, den Injektion nicht erreicht.

Das, was sonst niemand macht

Woher wissen Sie, dass es gewirkt hat?

Bei jedem anderen Werkzeug wissen Sie es nicht. Die Anwendung startet, zeigt irgendein Datum, und Sie nehmen an, dass es stimmt. Sie kann die Uhr aber über einen Kanal lesen, den das Werkzeug nie abgefangen hat - von einem Server, aus einer Datenbank, über eine Laufzeitschicht - und dann bedeutet „der Test ist bestanden“ gar nichts.

  • →Ein Urteil, bevor der eigentliche Test beginnt: funktioniert / funktioniert teilweise / funktioniert nicht
  • →Welche der 44 Zeitkanäle abgedeckt waren und wie oft die Anwendung jeden einzelnen abgefragt hat
  • →Welche Kanäle nicht abgedeckt waren - klar benannt, nie weggelassen
  • →Warnungen mit Folgen: „Diese Anwendung liest die Zeit aus dem Netzwerk - lokale Ersetzung reicht möglicherweise nicht aus“

So funktioniert die Prüfung der Zeitquellen →

Zwei Minuten damit

Ein Fenster zum Ausprobieren, eine Kommandozeile für die CI. Dahinter dieselbe Engine.

# Eine Anwendung so ausführen, als wäre es die letzte Sekunde des Jahres 2027
chrono run "C:\apps\test.exe" --at 2027-12-31T23:59:59

# Zusehen, wie eine 30-Tage-Testversion abläuft, während Sie Kaffee holen: x1440 ist ein Tag pro Minute
chrono run "C:\apps\test.exe" --mode x1440

# Ein benanntes Szenario statt eines Datums verwenden und den Nachweis in eine Datei schreiben
chrono run "C:\apps\test.exe" --preset year-rollover --report session.txt

Der Rechner beantwortet die andere Hälfte des Datumstests - welches Datum Sie nehmen sollten:

$ chrono calc --preset year-2038 --zone +00:00
Chrono Mock - date calculator
  preset:   year-2038 - 2038 boundary
  explains: Does the app survive the 32-bit Unix time boundary (2038-01-19T03:14:07Z)?
  base:    2038-01-19T03:14:07
  result:  2038-01-19T03:14:07
  formats:
    ISO date      2038-01-19
    ISO datetime  2038-01-19T03:14:07+00:00
    US            01/19/2038
    PL            19.01.2038
    epoch (s)     2147483647
    epoch (ms)    2147483647000
    FILETIME      137919572470000000
    RFC 1123      Tue, 19 Jan 2038 03:14:07 GMT
  ...
  what this date lands on:
    at or past the 2038-01-19T03:14:07Z 32-bit time_t limit (Y2038)

Im Vergleich zu dem, was Sie wahrscheinlich nutzen

Wie RunAsDate, aber mit den Teilen, die fehlten

RunAsDate fängt fünf Wanduhr-Funktionen ab und macht das gut. Hier sehen Sie, worin sich die beiden unterscheiden - und die ausführliche Seite sagt auch, wo RunAsDate weiterhin die bessere Wahl ist.

 RunAsDateChrono Mock
Führt eine App mit falschem Datum ausjaja
Abgefangene Zeitkanäle544 (30 verschoben, 14 gezählt)
Uhr beschleunigenneinja
Eigene Zeitzonenicht dokumentiertja
Folgt Kindprozessennicht dokumentiertja
Sagt, ob es gewirkt hatneinja, pro Kanal
Quellcode verfügbarFreeware, closed sourceGPL-3.0

Der vollständige Vergleich, auch dort, wo RunAsDate gewinnt →

Herunterladen

Überall entpacken und starten, oder die signierte .msi für jedes Konto auf dem Rechner installieren. Zum Ausführen sind keine Administratorrechte nötig, und die ZIP-Dateien schreiben nichts in die Registry.