Chrono Mock
IdiomaEspañol

Preguntas y respuestas

Respuestas breves, incluidas las de lo que esta herramienta no hará.

¿Cambia el reloj de mi ordenador?

No, y nunca lo hará - ese es el sentido de la herramienta. La hora desplazada solo la ve un proceso y los hijos que lanza. Tu inicio de sesión de dominio, tus certificados, Windows Update y todas las demás aplicaciones ven la fecha real todo el tiempo.

¿Necesito permisos de administrador?

No para ejecutarlo. Los zip no necesitan instalador, no escriben nada en el registro y funcionan desde una carpeta que puedes llevar en una memoria USB. El .msi opcional necesita permisos de administrador una vez, para instalar, porque se instala para todas las cuentas del equipo.

¿Funcionará con mi aplicación?

La respuesta honesta es que ninguna herramienta de este tipo puede prometerlo de antemano, así que esta lo mide. Cada sesión termina con un veredicto (funciona, funciona parcialmente, no funciona), la lista de canales de tiempo que la aplicación leyó de verdad con el número de llamadas de cada uno, y la lista de canales que no quedaron cubiertos.

Una aplicación puede leer el reloj por una vía que nada interceptó - desde un servidor, desde una base de datos, a través de una capa del entorno de ejecución. Cuando eso pasa, te enteras, en vez de quedarte suponiendo que la prueba pasó.

¿Funciona con aplicaciones .NET, Java y Python?

En parte, y las diferencias importan. Las tres están marcadas como experimentales: funcionan con los objetivos de prueba, no se han probado ampliamente, y la auditoría integrada es tu fuente de verdad, no este párrafo.

  • .NET - el reloj de pared y la zona horaria de la sesión quedan cubiertos. Stopwatch sigue en el contador de alta resolución real, salvo que actives su escalado.
  • Java - quedan cubiertos el reloj de pared, el tiempo transcurrido y la zona horaria de la sesión. La zona llega como un desfase fijo, con un nombre como GMT+05:30.
  • Python - time.time y datetime quedan cubiertos. perf_counter, y monotonic desde Python 3.13, usan el contador de alta resolución salvo que actives el escalado.

¿Funciona con aplicaciones Electron y Chromium?

Sí, mediante otro mecanismo. Su reloj vive en un renderizador aislado al que la inyección no llega, así que la aplicación se lanza con un puerto de depuración y un perfil limpio y desechable, y sus propias API de tiempo de JavaScript pasan al reloj de la sesión - también dentro de los Web Workers, donde a menudo vive de verdad el temporizador.

Un límite que conviene conocer: el proceso principal de una aplicación Electron se ejecuta en Node, al que la sesión no llega, así que conserva el reloj real, y el informe lo dice. Las páginas y sus workers leen la zona horaria de la sesión.

Cómo funciona el modo Chromium y Electron - qué alcanza, qué no, y por qué el puerto de depuración es lo que hay que tener presente.

¿Puedo hacer que el tiempo corra más rápido que el real?

Sí. Elige un multiplicador entero y el reloj de la aplicación corre a esa velocidad - x1440 convierte un día en un minuto, de modo que una prueba de 30 días caduca en media hora más o menos. También puedes congelar el reloj, o saltar hacia delante y hacia atrás en plena sesión.

Las cuentas atrás y los temporizadores están en otro eje, y acelerarlos es otro interruptor, porque escalarlos cambia un comportamiento del que dependen muchas aplicaciones.

¿Puedo cambiar solo la zona horaria, sin cambiar la fecha?

Sí. La sesión lleva su propio desfase fijo, visible para ese proceso mientras la zona del sistema sigue exactamente donde estaba. Es lo que la mayoría de las herramientas omiten, y así se reproduce el error que solo aparece para el cliente que está cinco zonas horarias más allá.

¿Y el horario de verano?

La zona de la sesión es un desfase fijo sin horario de verano. Una sesión configurada para Polonia se queda en el desfase que elegiste tanto si su reloj marca marzo como julio, así que una ejecución que cruce un cambio real se desvía una hora de lo que esa zona mostraría de verdad.

Por eso, hacer pasar a una aplicación por un cambio de horario de verano es algo que esta herramienta todavía no hace, y la calculadora de fechas lo dice en lugar de adivinar.

¿Por qué mi antivirus lo marca?

Porque inyectar una biblioteca en otro proceso es una técnica de Windows legítima y documentada que el malware también usa. Es un falso positivo provocado por la técnica, no por nada de lo que la herramienta hace en tu equipo. La biblioteca inyectada es chrono_hook.dll, compilada a partir del código fuente público bajo GPL-3.0, y puedes recompilarla tú mismo. El modo Chromium y Electron no inyecta nada.

La página de descarga explica qué hacer al respecto.

¿Sirve para alargar una prueba o saltarse una licencia?

No, y no está hecho para eso. Chrono Mock sirve para probar software del que eres responsable - la caducidad de tu propia licencia, tu propia lógica de renovación, tu propio informe de fin de mes. Ningún ejemplo, escenario ni página de aquí demostrará jamás cómo alargar el periodo de prueba de un software ajeno.

El software con protección de licencia es, de hecho, el caso con más probabilidades de derrotar a esta herramienta: el código antimanipulación suele leer la hora por vías elegidas a propósito para que sean difíciles de interceptar, y retroceder un reloj es una condición que ese software está escrito para detectar. Se planea una función en el otro sentido - un modo que ejecuta una serie de manipulaciones del tiempo contra tu propia aplicación e informa de cuáles detectó tu protección.

¿Puedo usarlo en integración continua?

Sí. La versión de línea de comandos es una descarga aparte de alrededor de 2,4 MB sin entorno de ejecución que instalar. Todos los comandos entienden --json y terminan con un código sobre el que un pipeline puede bifurcar, y una sesión puede escribir su evidencia en un archivo.

¿En qué se diferencia de RunAsDate?

RunAsDate intercepta cinco funciones del reloj de pared y lo hace bien. Esta herramienta vigila 44 canales de tiempo y pasa 30 de ellos al reloj de la sesión, puede acelerar el reloj, da al proceso su propia zona horaria, sigue a los procesos hijos y te dice después qué canales se cubrieron de verdad. Además es de código abierto, mientras que RunAsDate es freeware cerrado. RunAsDate, por su parte, puede engancharse a una aplicación que ya está en marcha, y esta herramienta no.

La comparación completa también dice dónde RunAsDate es la mejor opción.

¿Es libfaketime para Windows?

En espíritu, sí - la misma idea de mover el tiempo para un programa y no para la máquina. En la práctica es otra implementación, porque libfaketime depende de LD_PRELOAD, que no existe en Windows. Hay una página dedicada exactamente a eso.

¿Es gratis, y envía algo a algún sitio?

Gratis y de código abierto bajo GPL-3.0. Sin cuenta, sin telemetría, y nunca se conecta a internet - toda la herramienta funciona con el cable de red desenchufado.

La ventana sí tiene dos controles que llevan fuera de ella, así que conviene nombrarlos en vez de dejar que los descubras: los botones Donate y GitHub en la barra de título. Al pulsar uno de ellos se entrega una dirección a tu navegador, y es tu navegador el que se conecta. Chrono Mock no abre ninguna conexión en ningún caso, y nada de lo que midió sobre tu aplicación va a ningún sitio.