The EZCOV ("Easy Coverage") format was created to simplify the formatting of coverage data and to provide Ghidra-specific functionality in Cartographer.
Below is an example of the EZCOV format.
EZCOV VERSION: 1
0x00101000, 20, [ ]
0x00101016, 5, [ ]
0x00201251, 6, [ MAIN ]
0x00201257, 22, [ MAIN ]
0x00101160, 9, [ OVR1 ]
EZCOV files consist of 3 sections:
- Version
- Options (optional)
- Coverage Data
Single-line comments start with the #
character.
The version is a single line at the top of the file that dictates the EZCOV version.
EZCOV VERSION: 1
The options section is an optional section that defines any additional functionality, features, or options about the coverage data.
This section begins with the OPTIONS:
keyword, followed by one or more lines of options.
Note: This section is unused in EZCOV version 1.
OPTIONS:
fix_jumps
auto_disassemble
...
Each line of coverage data contains a series of comma-separate values that determine which parts of the program were executed.
At minimum, this contains the offset, size, and address space.
- Offset: Hexadecimal address in memory where the program began execution.
- Size: Decimal number of bytes executed.
- Address Space: Name of the address space where the code was executed.
- This is useful for exploring multiple loaded binaries that occupy the same address(es) in RAM.
- If blank, the program's default address space is used.
#
# Columns:
#
# OFFSET, SIZE, [ ADDRESS_SPACE ]
#
0x4002B260, 12, [ ]
0x4002B270, 12, [ ]
0x400A2F34, 8, [ OV1 ]
0x400A3278, 20, [ OV1 ]
0x400A328C, 12, [ OV1 ]