class Metasm::ELF::Symbol
Attributes
bind[RW]
name[RW]
name_p[RW]
other[RW]
shndx[RW]
size[RW]
thunk[RW]
type[RW]
value[RW]
Public Instance Methods
decode(elf, strtab=nil)
click to toggle source
Calls superclass method
Metasm::SerialStruct#decode
# File metasm/exe_format/elf_decode.rb, line 37 def decode(elf, strtab=nil) super(elf) @name = elf.readstr(strtab, @name_p) if strtab end
make_name_p(elf, strtab)
click to toggle source
sets the value of @name_p, appends @name to strtab if needed
# File metasm/exe_format/elf_encode.rb, line 91 def make_name_p(elf, strtab) s = strtab.kind_of?(EncodedData) ? strtab.data : strtab return if name_p and s[@name_p, @name.length+1] == @name+0.chr return if @name_p = s.index(@name+0.chr) @name_p = strtab.length @name.force_encoding('BINARY') if name.respond_to?(:force_encoding) strtab << @name << 0 end
set_default_values(elf, strtab)
click to toggle source
Calls superclass method
Metasm::SerialStruct#set_default_values
# File metasm/exe_format/elf_encode.rb, line 85 def set_default_values(elf, strtab) make_name_p elf, strtab if strtab and name and @name != '' super(elf) end
struct_specialized(elf)
click to toggle source
# File metasm/exe_format/elf.rb, line 485 def struct_specialized(elf) return Symbol32 if not elf case elf.bitsize when 32; Symbol32 else Symbol64 end end