User Interface Overview
The Header Menu
The top navigation bar provides quick access to project management, your C-schema extraction tools, and general application support.
File
The File menu handles all standard project management operations, allowing you to load, save, and organize your .vhb bundles and workspace configurations.
- New Project: Initializes a clean workspace with a blank
.vhbfile and default target settings. - Open Project: Loads an existing EMU project from your local file system.
- Save: Commits the current workspace configurations and TCL script changes to your active project file.
- Save As: Duplicates the current workspace into a new project file at a location of your choosing.
- Close: Safely shuts down the current project and returns you to the launch screen.
Schemas
Because EMU translates raw kernel memory into readable TCL variables, it needs to know the exact shape of that memory. The Schemas menu is the powerhouse of the application, giving you multiple ways to map out those memory structures.
- Schema Builder: Opens a graphical interface where you can manually define or edit existing structs, padding, and data types.
- Scan DWARF Library: Analyzes compiled binaries (
.so,.elf) that contain DWARF debug symbols to automatically extract the exact memory structures used by the target application. - Scan C Header: Parses raw C/C++ source code headers (
.hfiles) to automatically generate EMU schemas, perfect for when you are testing against proprietary driver code. - Inspect Schemas: Opens a viewer to let you verify, search, and audit all currently loaded memory schemas within your project.
- Import Standard Schemas: Instantly loads EMU’s pre-packaged, architecture-specific OS schemas (like POSIX networking, ALSA audio, or V4L2 video structs) so you don’t have to extract them yourself.
Help
- About EMU: Displays the current version of the EMU engine you are running, along with a brief overview of the EMU product suite.
- Send Feedback: Opens a direct line to the development team. You can provide a star rating and leave specific comments or feature requests, which are automatically routed to our community Discord server.
Pre-Shipped Standard Schemas
When you select Import Standard Schemas from the header menu, EMU instantly loads a curated library of pre-compiled memory structures for common Linux hardware subsystems.
| Subsystem | Standard Header(s) | Use Case |
|---|---|---|
| Audio (ALSA) | /usr/include/sound/asound.h | Virtualizing sound cards, microphones, speakers, and DSP interactions (like SDR++). |
| USB Core | /usr/include/linux/usbdevice_fs.h | Defining usbfs structures; crucial for intercepting raw USB communications via libusb. |
| Video (V4L2) | /usr/include/linux/videodev2.h | Mocking webcams, video capture cards, and hardware video encoders/decoders. |
| Bluetooth (BlueZ) | bluetooth.h, hci.h, rfcomm.h | Spoofing device discovery, HCI commands, and RFCOMM serial connections. |
| Input (evdev) | /usr/include/linux/input.h | Mocking keyboards, mice, touchscreens, and gamepads. |
| I2C & SPI | i2c-dev.h, spidev.h | Low-level peripheral communication (temperature sensors, EEPROMs, etc.). |
| TUN/TAP | if_tun.h, sockios.h | Mocking virtual network adapters, VPN tunnels (TUN), or network bridges (TAP). |
| Networking | <sys/socket.h>, <netinet/in.h> | Standard POSIX networking (IPv4, IPv6, and UNIX domain sockets). |