class Metasm::Bflt::Header

Public Instance Methods

decode(exe) click to toggle source
Calls superclass method
# File metasm/exe_format/bflt.rb, line 26
def decode(exe)
        super(exe)

        case @magic
        when MAGIC
        else raise InvalidExeFormat, "Bad bFLT signature #@magic"
        end

        if @rev >= 0x01000000 and (@rev & 0x00f0ffff) == 0
                puts "Bflt: probable wrong endianness, retrying" if $VERBOSE
                exe.endianness = { :big => :little, :little => :big }[exe.endianness]
                exe.encoded.ptr -= 4*16
                super(exe)
        end
end
set_default_values(exe) click to toggle source
Calls superclass method
# File metasm/exe_format/bflt.rb, line 42
def set_default_values(exe)
        @magic ||= MAGIC
        @rev ||= 4
        @entry ||= 0x40
        @data_start ||= 0x40 + exe.text.length if exe.text
        @data_end ||= @data_start + exe.data.data.length if exe.data
        @bss_end ||= @data_start + exe.data.length if exe.data
        @stack_size ||= 0x1000
        @reloc_start ||= @data_end
        @reloc_count ||= exe.reloc.length
        @flags ||= []

        super(exe)
end