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

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 .vhb file 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 (.h files) 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.

SubsystemStandard Header(s)Use Case
Audio (ALSA)/usr/include/sound/asound.hVirtualizing sound cards, microphones, speakers, and DSP interactions (like SDR++).
USB Core/usr/include/linux/usbdevice_fs.hDefining usbfs structures; crucial for intercepting raw USB communications via libusb.
Video (V4L2)/usr/include/linux/videodev2.hMocking webcams, video capture cards, and hardware video encoders/decoders.
Bluetooth (BlueZ)bluetooth.h, hci.h, rfcomm.hSpoofing device discovery, HCI commands, and RFCOMM serial connections.
Input (evdev)/usr/include/linux/input.hMocking keyboards, mice, touchscreens, and gamepads.
I2C & SPIi2c-dev.h, spidev.hLow-level peripheral communication (temperature sensors, EEPROMs, etc.).
TUN/TAPif_tun.h, sockios.hMocking 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).