Scarica Chrono Mock
Due build dello stesso motore: una finestra per esplorare e una riga di comando per la CI.
Decomprimi l'una o l'altra dove vuoi ed eseguila - senza installer, senza voci nel registro,
senza diritti di amministratore. Oppure installa l'.msi firmato per ogni account
del computer: diritti di amministratore una volta, per installare, nessuno per eseguire.
| File | Cos'è | Dimensione |
|---|---|---|
ChronoMock-app-win-x64.zip |
L'applicazione desktop, autonoma - non serve installare .NET | ~70 MB |
ChronoMock-app-win-x64.msi |
L'applicazione desktop e la riga di comando, installate per ogni account del
computer: una voce nel menu Start e chrono nel PATH |
~58 MB |
ChronoMock-cli-win.zip |
Solo lo strumento da riga di comando, per CI e script | ~2,4 MB |
Che cosa ti serve
- Windows 10 o Windows 11. Non esiste una build per macOS o Linux - su Linux, libfaketime copre già bene questo caso.
- Nient'altro. La build desktop porta con sé il proprio runtime, e quella da riga di comando non porta nulla.
- Sono supportate sia le applicazioni a 32 bit sia quelle a 64 bit. Il pacchetto include entrambe e sceglie quella che corrisponde all'applicazione a cui lo punti.
ARM64 è fuori ambito fino alla versione 1.0, e le applicazioni dello Store in pacchetto (UWP e MSIX) non sono supportate - il loro modello di avvio non lo consente.
Come avviarlo
Decomprimi, poi esegui ChronoMock.exe per la finestra o chrono.exe per la
riga di comando. Una prima sessione sono tre decisioni: quale applicazione, quale momento e a che
velocità deve scorrere l'orologio.
# Eseguire un'applicazione come se fosse l'ultimo secondo del 2027 chrono run "C:\apps\test.exe" --at 2027-12-31T23:59:59 # Lo stesso, con l'orologio che scorre di un giorno al minuto chrono run "C:\apps\test.exe" --at 2027-12-31T23:59:59 --mode x1440
Due cose da leggere prima
Fai un backup della directory dei dati dell'applicazione prima della tua prima sessione con data nel futuro.
Un'applicazione che gira nel 2028 scrive date del 2028 ovunque conservi dati: il database, la configurazione, la cache, il file di licenza. Quei valori restano lì dopo che sei tornato all'ora reale. Per il software con protezione della licenza questo può essere permanente - «rilevato arretramento dell'orologio, licenza invalidata» è uno schema standard del settore, e farà esattamente ciò per cui è stato progettato.
Chrono Mock ripulisce dietro di sé. Non può ripulire dietro l'applicazione che hai testato.
Il tuo antivirus potrebbe segnalarlo, ed è previsto.
Il tempo viene spostato iniettando una piccola libreria nel processo di destinazione. È una tecnica Windows legittima e documentata - ed è anche una tecnica che usa il malware, quindi Microsoft Defender e altri possono segnalare la libreria iniettata o bloccare del tutto l'iniezione. È un falso positivo innescato dalla tecnica.
Se una sessione si rifiuta di partire e Defender segnala una minaccia, escludi la libreria e non
la cartella: scegli File in Sicurezza di Windows e indica il percorso completo di
chrono_hook.dll. L'esclusione di una cartella impedirebbe di analizzare qualsiasi cosa
nella stessa directory da cui lo strumento inietta. Oppure eseguilo su una macchina dove hai il
permesso di farlo. La libreria iniettata è compilata dal codice di questo repository sotto
GPL-3.0 - puoi ricompilarla tu stesso. La modalità Chromium ed Electron non inietta affatto e non è
interessata.
Che cosa lascia dietro di sé
Nulla nel tuo sistema: nessun hook persistente, nessuna voce di registro e nulla fuori dalla
propria cartella, tranne tre cose che ti indica - la cronologia delle sessioni e il log di
diagnostica, che passano a %LOCALAPPDATA%\ChronoMock\ quando la cartella dello
strumento non è scrivibile, e, per un target Electron o Chromium, un profilo di browser usa e getta
in %TEMP% che viene eliminato alla fine della sessione e, se non è stato possibile,
segnalato nel riepilogo della sessione.
Questo descrive gli zip. L'installer è l'eccezione e dice cosa aggiunge: il programma in
Program Files, una voce nel menu Start, chrono nel PATH del
computer, una voce in Impostazioni, App e la chiave HKLM\Software\DonislawDev\Chrono
Mock. La disinstallazione rimuove tutto questo e lascia in pace
%LOCALAPPDATA%\ChronoMock\. Un'altra opzione, disattivata per impostazione
predefinita, scrive un valore di registro per la durata di una sessione e poi lo rimuove:
--elevated-embedded.
Non si connette mai a internet, non tiene alcun account e non invia telemetria.