angr.knowledge_plugins.cfg.memory_data

class angr.knowledge_plugins.cfg.memory_data.MemoryDataSort

Bases: object

Unspecified = None
Unknown = 'unknown'
Integer = 'integer'
PointerArray = 'pointer-array'
String = 'string'
UnicodeString = 'unicode'
SegmentBoundary = 'segment-boundary'
CodeReference = 'code reference'
GOTPLTEntry = 'GOT PLT Entry'
ELFHeader = 'elf-header'
FloatingPoint = 'fp'
Alignment = 'alignment'
PEImportDirectory = 'pe-import-directory'
PEExportDirectory = 'pe-export-directory'
PEDelayImportDirectory = 'pe-delay-import-directory'
EHFuncInfo = 'eh-funcinfo'
EHUnwindMapEntry = 'eh-unwindmapentry'
EH4ScopeTable = 'eh4-scopetable'
EHTryBlockMap = 'eh-tryblockmap'
EHHandlerType = 'eh-handlertype'
class angr.knowledge_plugins.cfg.memory_data.MemoryData

Bases: Serializable

MemoryData describes the syntactic content of a single address of memory.

reference_size reflects the size of content. It can be different from size, which is the actual size of the memory data item in memory. The intended way to get the actual content in memory is self.content[:self.size].

__init__(address, size, sort, pointer_addr=None, max_size=None, reference_size=None)
Parameters:
  • address (int)

  • size (int)

  • sort (str | None)

  • pointer_addr (int | None)

  • max_size (int | None)

  • reference_size (int | None)

addr: int
size: int
reference_size: int
sort: str | None
max_size: int | None
pointer_addr: int | None
content: bytes | None
property address
copy()

Make a copy of the MemoryData.

Returns:

A copy of the MemoryData instance.

Return type:

MemoryData

fill_content(loader)

Load data to fill self.content.

Parameters:

loader – The project loader.

Returns:

None