Chrono Mock downloaden
Twee builds van dezelfde engine: een venster om te verkennen en een opdrachtregel voor CI. Pak
een van beide ergens uit en start hem - geen installatieprogramma, geen registervermeldingen,
geen beheerdersrechten. Of installeer de ondertekende .msi voor elk account op de
machine: eenmalig beheerdersrechten om te installeren, geen om te draaien.
| Bestand | Wat het is | Grootte |
|---|---|---|
ChronoMock-app-win-x64.zip |
De desktopapplicatie, zelfstandig - geen .NET-installatie nodig | ~70 MB |
ChronoMock-app-win-x64.msi |
De desktoptoepassing en de opdrachtregel, geïnstalleerd voor elk account op de
machine: een item in het Startmenu en chrono in het PATH |
~58 MB |
ChronoMock-cli-win.zip |
Alleen het opdrachtregelprogramma, voor CI en scripts | ~2,4 MB |
Wat je nodig hebt
- Windows 10 of Windows 11. Er is geen build voor macOS of Linux - op Linux dekt libfaketime dit al goed.
- Verder niets. De desktopbuild brengt zijn eigen runtime mee, en de opdrachtregelbuild brengt helemaal niets mee.
- Zowel 32-bits als 64-bits applicaties worden ondersteund. Het pakket bevat beide en kiest degene die past bij de applicatie waarop je het richt.
ARM64 valt tot en met versie 1.0 buiten de scope, en verpakte Store-applicaties (UWP en MSIX) worden niet ondersteund - hun startmodel staat het niet toe.
Starten
Pak uit en start ChronoMock.exe voor het venster of chrono.exe voor de
opdrachtregel. Een eerste sessie bestaat uit drie keuzes: welke applicatie, welk moment en hoe snel
de klok moet lopen.
# Een applicatie draaien alsof het de laatste seconde van 2027 is chrono run "C:\apps\test.exe" --at 2027-12-31T23:59:59 # Hetzelfde, met de klok die een dag per minuut loopt chrono run "C:\apps\test.exe" --at 2027-12-31T23:59:59 --mode x1440
Twee dingen om eerst te lezen
Maak een back-up van de gegevensmap van de applicatie voordat je je eerste sessie in de toekomst start.
Een applicatie die in 2028 draait, schrijft datums uit 2028 overal waar ze gegevens opslaat: haar database, haar configuratie, haar cache, haar licentiebestand. Die waarden blijven daar staan nadat je terug bent naar de echte tijd. Bij software met licentiebeveiliging kan dit blijvend zijn - “terugdraaien van de klok gedetecteerd, licentie ongeldig” is een standaardpatroon in de branche, en het doet precies waarvoor het ontworpen is.
Chrono Mock ruimt achter zichzelf op. Het kan niet opruimen achter de applicatie die je hebt getest.
Je antivirus kan waarschuwen, en dat is te verwachten.
De tijd wordt verschoven door een kleine bibliotheek in het doelproces te injecteren. Dat is een legitieme, gedocumenteerde Windows-techniek - en het is ook een techniek die malware gebruikt, dus Microsoft Defender en andere kunnen de geïnjecteerde bibliotheek markeren of de injectie helemaal blokkeren. Het is een vals alarm, veroorzaakt door de techniek.
Als een sessie weigert te starten en Defender een bedreiging meldt, sluit dan de bibliotheek uit
en niet de map: kies Bestand in Windows-beveiliging en geef het volledige pad naar
chrono_hook.dll. Een map-uitsluiting zou verhinderen dat er iets gescand wordt in
precies de map waaruit het gereedschap injecteert. Of draai het op een machine waar je dat mag. De
geïnjecteerde bibliotheek wordt gebouwd uit de code in deze repository onder GPL-3.0 - je kunt haar
zelf opnieuw bouwen. De Chromium- en Electron-modus injecteert helemaal niet en wordt er niet door
geraakt.
Wat het achterlaat
Niets in je systeem: geen blijvende hooks, geen registervermeldingen en niets buiten de eigen
map, behalve drie dingen die het voor je noemt - de sessiegeschiedenis en het diagnoselogboek, die
naar %LOCALAPPDATA%\ChronoMock\ verhuizen als de map van het gereedschap niet
beschrijfbaar is, en, voor een Electron- of Chromium-doel, een wegwerpbrowserprofiel onder
%TEMP% dat aan het einde van de sessie wordt verwijderd en, als dat niet lukte, in
de sessiesamenvatting wordt gemeld.
Dat beschrijft de zip-bestanden. Het installatieprogramma is de uitzondering en zegt wat het
toevoegt: het programma in Program Files, een item in het Startmenu,
chrono in het PATH van de machine, een item onder Instellingen, Apps en de
sleutel HKLM\Software\DonislawDev\Chrono Mock. Verwijderen haalt dat alles weg
en laat %LOCALAPPDATA%\ChronoMock\ met rust. Nog één optie, standaard uit,
schrijft voor de duur van een sessie een registerwaarde en verwijdert die daarna weer:
--elevated-embedded.
Het maakt nooit verbinding met internet, houdt geen account bij en verstuurt geen telemetrie.