Section
A Section represents a named section of a binary.
The corresponding Protobuf message type is Section
.
Guaranteed Properties
- A Section is a Node.
- Each Section object must have the following information, and the API must provide functionality for getting and setting each.
- name
- section_flags (as a bitset or enumeration set)
- byte_intervals (as a collection of ByteInterval, order defined by target language)
- Each Section must belong to either zero (0) or one (1) Module objects. The owning Module must be stored as a reference.
- This reference may be null, in which case the Section is freestanding and does not belong to any Module.
- The following operations must be available for the set of ByteInterval objects in the Section.
- Find all ByteInterval objects that intersect a given address or range of addresses.
- Find all ByteInterval objects that begin at a given address or range of addresses. This operation must complete in O(M + log n) time where m is the size of the returned set and n is the number of ByteInterval objects in the Section.
API Implementations
The guaranteed functionality is provided as follows.
Section Classes
Required Field Getters/Setters
name
section_flags
byte_intervals
Find ByteInterval Objects...
[*] Address range checking is not yet implemented for Common Lisp at-address
Associated Module
Links