rename unit and sint to human readable forms

This commit is contained in:
Torsten Ruger
2016-12-31 18:45:22 +02:00
parent 5f3744d6af
commit b094bcc64f
10 changed files with 66 additions and 66 deletions

View File

@ -26,9 +26,9 @@ module Elf
string_table = write_string_table(io)
io.write_uint16 @sections.length # section header count
io.write_unsigned_int_16 @sections.length # section header count
io.write_uint16 @sections.length-1 # section name string table index
io.write_unsigned_int_16 @sections.length-1 # section name string table index
section_data = write_sections(io)
@ -37,7 +37,7 @@ module Elf
write_section_data(section_data, string_table , io)
io.seek sh_offset_pos
io.write_uint32 sh_offset
io.write_unsigned_int_32 sh_offset
end
def write_string_table(io)
@ -53,23 +53,23 @@ module Elf
section_data.each { |data|
section, offset, size = data[:section], data[:offset], data[:size]
# write header first
io.write_uint32 string_table.index_for(section.name)
io.write_uint32 section.type
io.write_uint32 section.flags
io.write_uint32 section.addr
io.write_unsigned_int_32 string_table.index_for(section.name)
io.write_unsigned_int_32 section.type
io.write_unsigned_int_32 section.flags
io.write_unsigned_int_32 section.addr
if (section.type == SHT_NOBITS)
raise 'SHT_NOBITS not handled yet'
elsif (section.type == SHT_NULL)
io.write_uint32 0
io.write_uint32 0
io.write_unsigned_int_32 0
io.write_unsigned_int_32 0
else
io.write_uint32 offset
io.write_uint32 size
io.write_unsigned_int_32 offset
io.write_unsigned_int_32 size
end
io.write_uint32 section.link
io.write_uint32 section.info
io.write_uint32 section.alignment
io.write_uint32 section.ent_size
io.write_unsigned_int_32 section.link
io.write_unsigned_int_32 section.info
io.write_unsigned_int_32 section.alignment
io.write_unsigned_int_32 section.ent_size
}
end
@ -85,26 +85,26 @@ module Elf
end
def write_header(io)
io.write_uint32 0 # section header table offset
io.write_uint32 0 # no flags
io.write_uint16 52 # header length
io.write_uint16 0 # program header length
io.write_uint16 0 # program header count
io.write_uint16 40 # section header length
io.write_unsigned_int_32 0 # section header table offset
io.write_unsigned_int_32 0 # no flags
io.write_unsigned_int_16 52 # header length
io.write_unsigned_int_16 0 # program header length
io.write_unsigned_int_16 0 # program header count
io.write_unsigned_int_16 40 # section header length
end
def write_preamble(io)
io << "\x7fELF"
io.write_uint8 @target[0]
io.write_uint8 @target[1]
io.write_uint8 EV_CURRENT
io.write_uint8 @target[2]
io.write_unsigned_int_8 @target[0]
io.write_unsigned_int_8 @target[1]
io.write_unsigned_int_8 EV_CURRENT
io.write_unsigned_int_8 @target[2]
io << "\x00" * 8 # pad
io.write_uint16 ET_REL
io.write_uint16 @target[3]
io.write_uint32 EV_CURRENT
io.write_uint32 0 # entry point
io.write_uint32 0 # no program header table
io.write_unsigned_int_16 ET_REL
io.write_unsigned_int_16 @target[3]
io.write_unsigned_int_32 EV_CURRENT
io.write_unsigned_int_32 0 # entry point
io.write_unsigned_int_32 0 # no program header table
end
end
end