Calibration Guard¶
Calibration Guard is a Windows background daemon that protects ViciVision machine calibration data from unauthorized modification. It is bundled with and installed alongside VIA Onboard.
What it protects¶
ViciVision machines store all configuration in .ini files. These files contain both day-to-day operational settings (safe to change) and calibration lookup tables (dangerous to change without engineering authorization). The calibration sections — primarily [LOOKUP] and [LOOKUP_VERT] — contain measurement correction coefficients set during factory or on-site calibration. Modifying these without authorization can produce incorrect measurements or damage the machine.
Calibration Guard watches these files around the clock and enforces a simple rule:
- Valid license → changes are allowed. The guard backs up the protected sections after every valid change.
- Expired or missing license → changes are reverted. The guard restores the protected sections from its last known-good backup, shows a Windows dialog, and logs the event.
Security level¶
Calibration Guard is designed to stop non-technical operators and accidental edits — not determined developers. It uses XOR+base64 key encoding (not cryptographic signing) and relies on Windows Registry access control for key storage. This is appropriate for the threat model: protecting calibration values from operator error or casual tampering.
Components¶
| Component | Purpose |
|---|---|
guard.exe |
The daemon — compiled from guard.js via pkg. Runs as a Windows Scheduled Task. |
guard-config.json |
Runtime configuration (watch paths, protected sections, log location). |
install-key.js |
CLI tool to write a license key to the Windows Registry (run as Administrator). |
key-gen.js |
Internal tool to generate license keys (run by ViciVision staff on the License Key Server). |
src/license.js |
Key encode/decode/validate logic (shared between guard and key generator). |
src/registry.js |
Windows Registry read/write via reg.exe. |
src/ini.js |
Custom INI parser that preserves file formatting exactly. |
src/backup.js |
Per-file backup storage in C:\ProgramData\ViciCalibGuard\backups\. |
src/watcher.js |
Core guard logic: detect change → check license → allow or revert. |
src/notify.js |
Windows dialog (via PowerShell) and log file writer. |
How it integrates with VIA Onboard¶
Calibration Guard ships as part of the VIA Onboard installer. When VIA Onboard is installed:
guard.exeandguard-config.jsonare placed inC:\Program Files\ViaOnboard\resources\.- The NSIS installer registers a Windows Scheduled Task named ViciCalibGuard that runs
guard.exeon every user logon at highest privilege. - The guard starts immediately without requiring a reboot.
- When VIA Onboard is uninstalled, the Scheduled Task is stopped and removed automatically.
For license key installation, VIA Onboard provides a UI in Settings → Service that writes the key to the Windows Registry.