rename unit and sint to human readable forms
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user