AsmWord
|
Represents a smallest chunk of an assembly statement. Specifically, we
divide an assembly statement into a series of AsmWords, each of which
represents a chunk of the assembly statement. For example, the assembly
statement "mov eax, 1" can be divided into five AsmWords: "mov", " ", "eax",
", ", and "1". The first AsmWord is a mnemonic, the second is a space
character, the third is a variable (register), the fourth is a space
character, and the fifth is a value (immediate).
|
AsmWordDisasmBuilder
|
Represents a disassembly builder that accumulates .
|
AsmWordKind
|
Represents a kind of a assembly word.
|
BinReader
|
Provides a function to instantiate a binary reader that implements .
|
ByteSpan
|
Represents a read-only span for byte arrays. This is a type alias for
ReadOnlySpan<byte> . We define this alias because B2R2 uses this
type quite frequently.
|
ConditionCodeOp
|
Represents a lastly used opcode, which can be lazily remembered by an
emulator to compute condition flags.
|
ConstantFolding
|
Provides a function that performs a constant folding optimization for the
lifted IR statements. This function assumes that the statements are
localized, i.e., they represent a basic block.
|
DeadCodeElimination
|
Provides a function that performs dead code elimination for the lifted IR
statements. This function assumes that the statements are localized, i.e.,
they represent a basic block.
|
DisasmSyntax
|
Represents the disassembly syntax.
|
IBinReader
|
Provides an interface for reading byte sequences from a byte array (or a
ByteSpan). The endianness is determined by the implementation of the
interface.
|
IDisasmBuilder
|
Provides an interface for producing disassembly, which is used to accumulate
disassembly strings and to return them as a single string or an array of
AsmWords when requested.
|
IInstruction
|
Represents a single machine instruction in a platform-independent manner.
It provides useful methods for accessing useful information about the
instruction.
|
IInstructionParsable
|
Provides an interface for parsing binary instructions.
|
IIRBlockOptimizable
|
Provides an interface for optimizing a block of IR statements.
|
ILowUIRBuilder
|
Provides a common functionality for building LowUIR statements from
instructions. Some CPU architectures may extend this interface to provide
additional functionalities, although most architectures will simply
implement the default implementation as is.
|
INameReadable
|
Represents an interface for reading symbolic names in a binary.
|
InvalidOpcodeException
|
Raised when an invalid opcode has been encountered during parsing/lifting.
|
InvalidOperandException
|
Raised when an invalid operand has been encountered during parsing/lifting.
|
InvalidOperandSizeException
|
Raised when an invalid operand type has been encountered during
parsing/lifting.
|
InvalidRegisterException
|
Raised when an invalid register has been encountered during parsing/lifting.
|
IRegisterFactory
|
Provides a platform-agnostic interface for accessing register information.
|
LiftingUtils
|
Provides several utility functions for lifting binary code to IR.
|
LocalOptimizer
|
Represents an intra-block local IR optimizer.
|
LowUIRStream
|
Provides a stream for building LowUIR statements. This will accumulate
LowUIR statements and return them as an array when requested. It also
maintains internal counters for temporary variables and labels to avoid
name collisions.
|
NotImplementedIRException
|
Raised when the IR is not implemented yet.
|
ParsingFailureException
|
Raised when parsing binary code failed. This exception indicates a
non-recoverable parsing failure.
|
ParsingUtils
|
Provides several utility functions to parse binary code.
|
StringDisasmBuilder
|
Represents a disassembly builder that simply accumulates strings without any
type annotation.
|