Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

The .vhb Ecosystem (Portability & Sharing)

EMU is designed for collaboration. Once you have successfully virtualized a piece of hardware, you shouldn’t have to keep it to yourself. This portability is managed through the .vhb (Virtual Hardware Behavior) file format family.

File Formats

EMU supports two project file formats, giving you control over how sensitive your shared hardware profile is.

.vhb — Plain Text (Non-Sensitive Sharing)

A .vhb file is a portable, human-readable container that holds everything required to spoof a specific piece of hardware. Use this format when sharing within a trusted environment (e.g., internal teams, version control).

It encapsulates:

  • The Intercept Targets: The specific file paths (e.g., /dev/ttyUSB0) or network ports the Engine needs to hook.
  • The Hardware Specs: Your list of tracked system calls and communications to and from the hardware.
  • Schema References: The structs and schemas used to map raw memory into structured data.
  • The TCL Scripts: All of your custom logic and state-machine behavior associated with your Hardware Specs.

.vhbx — Encrypted (Sensitive Sharing)

A .vhbx file contains the same profile data as a .vhb file, but the contents are encoded before being written to disk. Use this format when distributing a hardware profile outside of a trusted context — for example, sharing with an external contractor, a customer, or over an untrusted channel.

When saving a project, select VHB Encrypted Project in the file dialog to produce a .vhbx file. EMU will automatically decrypt it on load.

Warning — Limited Security in Current Release

.vhbx files are currently encoded using Base64 only. Base64 is an encoding scheme, not true encryption — a determined party can decode the contents without a key. Do not rely on .vhbx for strong confidentiality at this time.

A future release will upgrade .vhbx to full AES-256-GCM encryption, where files will be locked to a specific individual or team license key. Only holders of the matching license will be able to open the file. Until that upgrade ships, treat .vhbx as obfuscated rather than secure.

Choosing the Right Format

ScenarioRecommended Format
Committing to a team Git repository.vhb
Sharing with an external partner or customer.vhbx
Automated CI/CD pipelines (internal infrastructure).vhb
Distributing a hardware profile publicly or externally.vhbx

Collaboration & Version Control

Because the .vhb file completely encapsulates the virtual hardware profile, it is perfect for modern development workflows:

Git Integration

You can commit .vhb files directly to your Git repository alongside your application source code. This ensures that the hardware environment is versioned right next to the software that depends on it.

Team Consistency

Any other developer on your team can simply download the EMU app, import your .vhb or .vhbx file, and instantly possess the exact same virtual hardware environment. This eliminates the “it works on my machine” problem caused by differing physical hardware revisions or local driver configurations.

CI/CD Ready

By bundling hardware behavior into a file, you enable automated testing environments to “plug in” virtual devices on demand, guaranteeing test consistency across your entire organization.