Class: ELFTools::Note::Note

Inherits:
Object
  • Object
show all
Defined in:
lib/elftools/note.rb

Overview

Class of a note.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(header, stream, offset) ⇒ Note

Instantiate a ELFTools::Note::Note object.

Parameters:

  • header (ELF_Nhdr)

    The note header.

  • stream (#pos=, #read)

    Streaming object.

  • offset (Integer)

    Start address of this note, includes the header.



97
98
99
100
101
# File 'lib/elftools/note.rb', line 97

def initialize(header, stream, offset)
  @header = header
  @stream = stream
  @offset = offset
end

Instance Attribute Details

#headerELFTools::Structs::ELF_Nhdr (readonly)

Returns Note header.

Returns:



88
89
90
# File 'lib/elftools/note.rb', line 88

def header
  @header
end

#offsetInteger (readonly)

Returns Address of this note start, includes note header.

Returns:

  • (Integer)

    Address of this note start, includes note header.



90
91
92
# File 'lib/elftools/note.rb', line 90

def offset
  @offset
end

#stream#pos=, #read (readonly)

Returns Streaming object.

Returns:

  • (#pos=, #read)

    Streaming object.



89
90
91
# File 'lib/elftools/note.rb', line 89

def stream
  @stream
end

Instance Method Details

#descString Also known as: description

Description of this note.

Returns:

  • (String)

    The description.



114
115
116
117
118
119
# File 'lib/elftools/note.rb', line 114

def desc
  return @desc if instance_variable_defined?(:@desc)

  stream.pos = @offset + SIZE_OF_NHDR + Util.align(header.n_namesz, 2)
  @desc = stream.read(header.n_descsz)
end

#nameString

Name of this note.

Returns:

  • (String)

    The name.



105
106
107
108
109
110
# File 'lib/elftools/note.rb', line 105

def name
  return @name if defined?(@name)

  stream.pos = @offset + SIZE_OF_NHDR
  @name = stream.read(header.n_namesz)[0..-2]
end