RapiCoverZero uses two types of inputs from which to produce structural coverage results. The first is the executable file and a disassembly of it, and the second is a branch trace* collected while the program under analysis is executed. From these inputs, RapiCoverZero can understand both the program structure and the events that occurred during the program execution, allowing it to perform structural coverage analysis and produce coverage results.
*In some circumstances, other data collection methods such as using a branch map may be possible.