ducky.mm.binary module

class ducky.mm.binary.File(logger, stream)[source]

Bases: ducky.util.BinaryFile

MAGIC = 57005
VERSION = 1
create_header()[source]
create_section()[source]
get_header()[source]
get_section(i)[source]
get_section_by_name(name)[source]
load()[source]
load_symbols()[source]
static open(*args, **kwargs)[source]
save()[source]
sections()[source]
set_content(header, content)[source]
setup()[source]
class ducky.mm.binary.FileFlags[source]

Bases: ducky.util.Flags

field = ('mmapable', <class 'ctypes.c_ushort'>, 1)
class ducky.mm.binary.FileFlagsEncoding[source]

Bases: _ctypes.Structure

mmapable

Structure/Union member

class ducky.mm.binary.FileHeader[source]

Bases: _ctypes.Structure

flags

Structure/Union member

magic

Structure/Union member

sections

Structure/Union member

version

Structure/Union member

class ducky.mm.binary.RelocEntry[source]

Bases: _ctypes.Structure

flags

Structure/Union member

name

Structure/Union member

patch_add

Structure/Union member

patch_address

Structure/Union member

patch_offset

Structure/Union member

patch_section

Structure/Union member

patch_size

Structure/Union member

class ducky.mm.binary.RelocFlags[source]

Bases: ducky.util.Flags

field = ('inst_aligned', <class 'ctypes.c_ushort'>, 1)
class ducky.mm.binary.RelocFlagsEncoding[source]

Bases: _ctypes.Structure

inst_aligned

Structure/Union member

relative

Structure/Union member

class ducky.mm.binary.SectionFlags[source]

Bases: ducky.util.Flags

field = ('globally_visible', <class 'ctypes.c_ubyte'>, 1)
class ducky.mm.binary.SectionFlagsEncoding[source]

Bases: _ctypes.Structure

bss

Structure/Union member

executable

Structure/Union member

globally_visible

Structure/Union member

loadable

Structure/Union member

mmapable

Structure/Union member

readable

Structure/Union member

writable

Structure/Union member

class ducky.mm.binary.SectionHeader[source]

Bases: _ctypes.Structure

base

Structure/Union member

data_size

Structure/Union member

file_size

Structure/Union member

flags

Structure/Union member

index

Structure/Union member

items

Structure/Union member

name

Structure/Union member

offset

Structure/Union member

padding

Structure/Union member

type

Structure/Union member

class ducky.mm.binary.SectionTypes[source]

Bases: enum.IntEnum

DATA = <SectionTypes.DATA: 2>
RELOC = <SectionTypes.RELOC: 5>
STRINGS = <SectionTypes.STRINGS: 4>
SYMBOLS = <SectionTypes.SYMBOLS: 3>
TEXT = <SectionTypes.TEXT: 1>
UNKNOWN = <SectionTypes.UNKNOWN: 0>
class ducky.mm.binary.SymbolDataTypes[source]

Bases: enum.IntEnum

ASCII = <SymbolDataTypes.ASCII: 5>
BYTE = <SymbolDataTypes.BYTE: 3>
CHAR = <SymbolDataTypes.CHAR: 2>
FUNCTION = <SymbolDataTypes.FUNCTION: 6>
INT = <SymbolDataTypes.INT: 0>
SHORT = <SymbolDataTypes.SHORT: 1>
STRING = <SymbolDataTypes.STRING: 4>
UNKNOWN = <SymbolDataTypes.UNKNOWN: 7>
class ducky.mm.binary.SymbolEntry[source]

Bases: _ctypes.Structure

address

Structure/Union member

filename

Structure/Union member

flags

Structure/Union member

lineno

Structure/Union member

name

Structure/Union member

section

Structure/Union member

size

Structure/Union member

type

Structure/Union member

class ducky.mm.binary.SymbolFlags[source]

Bases: ducky.util.Flags

field = ('globally_visible', <class 'ctypes.c_ushort'>, 1)
class ducky.mm.binary.SymbolFlagsEncoding[source]

Bases: _ctypes.Structure

globally_visible

Structure/Union member