Chrono Mock
IdiomaPortuguês (Brasil)

Baixar o Chrono Mock

Duas versões do mesmo motor: uma janela para explorar e uma linha de comando para CI. Descompacte qualquer uma em qualquer lugar e execute - sem instalador, sem entradas no registro, sem direitos de administrador. Ou instale o .msi assinado para todas as contas da máquina: direitos de administrador uma vez, para instalar, nenhum para executar.

ArquivoO que éTamanho
ChronoMock-app-win-x64.zip O aplicativo de desktop, autossuficiente - não precisa instalar o .NET ~70 MB
ChronoMock-app-win-x64.msi O aplicativo de desktop e a linha de comando, instalados para todas as contas da máquina: uma entrada no menu Iniciar e o chrono no PATH ~58 MB
ChronoMock-cli-win.zip Só a ferramenta de linha de comando, para CI e scripts ~2,4 MB

O que você precisa

  • Windows 10 ou Windows 11. Não há versão para macOS nem Linux - no Linux, o libfaketime já cobre bem esse caso.
  • Nada mais. A versão de desktop traz o próprio ambiente de execução, e a versão de linha de comando não traz nada.
  • Aplicativos de 32 e de 64 bits são compatíveis. O pacote traz os dois e escolhe o que corresponde ao aplicativo para o qual você o aponta.

ARM64 está fora do escopo até a versão 1.0, e aplicativos empacotados da Store (UWP e MSIX) não são compatíveis - o modelo de inicialização deles não permite.

Como executar

Descompacte e execute ChronoMock.exe para a janela ou chrono.exe para a linha de comando. Uma primeira sessão são três decisões: qual aplicativo, qual momento e com que velocidade o relógio deve correr.

# Executar um aplicativo como se fosse o último segundo de 2027
chrono run "C:\apps\test.exe" --at 2027-12-31T23:59:59

# O mesmo, com o relógio correndo um dia por minuto
chrono run "C:\apps\test.exe" --at 2027-12-31T23:59:59 --mode x1440

Duas coisas para ler antes

Faça backup do diretório de dados do aplicativo antes da sua primeira sessão com data no futuro.

Um aplicativo rodando em 2028 grava datas de 2028 em qualquer lugar onde guarde dados: o banco de dados, a configuração, o cache, o arquivo de licença. Esses valores continuam lá depois que você volta para a hora real. Em software com proteção de licença, isso pode ser permanente - “retrocesso de relógio detectado, licença invalidada” é um padrão comum do setor, e vai fazer exatamente aquilo para o que foi projetado.

O Chrono Mock limpa o que ele mesmo suja. Ele não consegue limpar o que o aplicativo que você testou sujou.

Seu antivírus pode alertar, e isso é esperado.

O tempo é deslocado injetando uma pequena biblioteca no processo alvo. É uma técnica legítima e documentada do Windows - e também uma técnica que o malware usa, então o Microsoft Defender e outros podem sinalizar a biblioteca injetada ou bloquear a injeção por completo. É um falso positivo disparado pela técnica.

Se uma sessão se recusar a iniciar e o Defender relatar uma ameaça, exclua a biblioteca, não a pasta: escolha Arquivo na Segurança do Windows e informe o caminho completo de chrono_hook.dll. Uma exclusão de pasta impediria que qualquer coisa fosse verificada no próprio diretório de onde a ferramenta injeta. Ou execute em uma máquina onde você tenha permissão para isso. A biblioteca injetada é compilada a partir do código deste repositório sob a GPL-3.0 - você mesmo pode recompilá-la. O modo Chromium e Electron não injeta nada e não é afetado.

O que ele deixa para trás

Nada no seu sistema: nenhum hook persistente, nenhuma entrada de registro e nada fora da própria pasta, exceto três coisas que ele informa - o histórico de sessões e o log de diagnóstico, que passam para %LOCALAPPDATA%\ChronoMock\ quando a pasta da ferramenta não é gravável, e, para um alvo Electron ou Chromium, um perfil de navegador descartável em %TEMP% que é apagado quando a sessão termina e, se não puder ser, aparece no resumo da sessão.

Isso descreve os zips. O instalador é a exceção e diz o que adiciona: o programa em Program Files, uma entrada no menu Iniciar, o chrono no PATH da máquina, uma entrada em Configurações, Aplicativos e a chave HKLM\Software\DonislawDev\Chrono Mock. Desinstalar remove tudo isso e deixa %LOCALAPPDATA%\ChronoMock\ em paz. Mais uma opção, desligada por padrão, grava um valor no registro durante uma sessão e o remove depois: --elevated-embedded.

Ele nunca se conecta à internet, não mantém conta e não envia telemetria.