Class: Exerb::Win32::Struct::ImageDosHeader

Inherits:
Base
  • Object
show all
Defined in:
lib/exerb/win32/struct/image_dos_header.rb

Overview

==============================================================================#

Constant Summary collapse

FORMAT =
'SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSL'
SIGNATURE =
0x5A4D

Instance Attribute Summary collapse

Attributes inherited from Base

#position

Instance Method Summary collapse

Methods inherited from Base

read, #read, #size, #update

Constructor Details

#initialize ⇒ ImageDosHeader

Returns a new instance of ImageDosHeader.



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 24

def initialize
  @magic                       = 0
  @last_page_size              = 0
  @total_pages_in_file         = 0
  @relocation_items            = 0
  @paragraphs_in_header        = 0
  @minimum_extra_paragraphs    = 0
  @maximum_extra_paragraphs    = 0
  @initial_stack_segment       = 0
  @initial_stack_pointer       = 0
  @complemented_checksum       = 0
  @initial_instraction_pointer = 0
  @initial_code_segment        = 0
  @relocation_table_offset     = 0
  @overlay_number              = 0
  @reserved1_1                 = 0
  @reserved1_2                 = 0
  @reserved1_3                 = 0
  @reserved1_4                 = 0
  @oem_identifier              = 0
  @oem_information             = 0
  @reserved2_1                 = 0
  @reserved2_2                 = 0
  @reserved2_3                 = 0
  @reserved2_4                 = 0
  @reserved2_5                 = 0
  @reserved2_6                 = 0
  @reserved2_7                 = 0
  @reserved2_8                 = 0
  @reserved2_9                 = 0
  @reserved2_10                = 0
  @offset_to_new_header        = 0
end

Instance Attribute Details

#complemented_checksum ⇒ Object

Returns the value of attribute complemented_checksum.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def complemented_checksum
  @complemented_checksum
end

#initial_code_segment ⇒ Object

Returns the value of attribute initial_code_segment.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def initial_code_segment
  @initial_code_segment
end

#initial_instraction_pointer ⇒ Object

Returns the value of attribute initial_instraction_pointer.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def initial_instraction_pointer
  @initial_instraction_pointer
end

#initial_stack_pointer ⇒ Object

Returns the value of attribute initial_stack_pointer.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def initial_stack_pointer
  @initial_stack_pointer
end

#initial_stack_segment ⇒ Object

Returns the value of attribute initial_stack_segment.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def initial_stack_segment
  @initial_stack_segment
end

#last_page_size ⇒ Object

Returns the value of attribute last_page_size.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def last_page_size
  @last_page_size
end

#magic ⇒ Object

Returns the value of attribute magic.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def magic
  @magic
end

#maximum_extra_paragraphs ⇒ Object

Returns the value of attribute maximum_extra_paragraphs.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def maximum_extra_paragraphs
  @maximum_extra_paragraphs
end

#minimum_extra_paragraphs ⇒ Object

Returns the value of attribute minimum_extra_paragraphs.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def minimum_extra_paragraphs
  @minimum_extra_paragraphs
end

#oem_identifier ⇒ Object

Returns the value of attribute oem_identifier.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def oem_identifier
  @oem_identifier
end

#oem_information ⇒ Object

Returns the value of attribute oem_information.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def oem_information
  @oem_information
end

#offset_to_new_header ⇒ Object

Returns the value of attribute offset_to_new_header.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def offset_to_new_header
  @offset_to_new_header
end

#overlay_number ⇒ Object

Returns the value of attribute overlay_number.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def overlay_number
  @overlay_number
end

#paragraphs_in_header ⇒ Object

Returns the value of attribute paragraphs_in_header.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def paragraphs_in_header
  @paragraphs_in_header
end

#relocation_items ⇒ Object

Returns the value of attribute relocation_items.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def relocation_items
  @relocation_items
end

#relocation_table_offset ⇒ Object

Returns the value of attribute relocation_table_offset.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def relocation_table_offset
  @relocation_table_offset
end

#reserved1_1 ⇒ Object

Returns the value of attribute reserved1_1.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def reserved1_1
  @reserved1_1
end

#reserved1_2 ⇒ Object

Returns the value of attribute reserved1_2.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def reserved1_2
  @reserved1_2
end

#reserved1_3 ⇒ Object

Returns the value of attribute reserved1_3.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def reserved1_3
  @reserved1_3
end

#reserved1_4 ⇒ Object

Returns the value of attribute reserved1_4.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def reserved1_4
  @reserved1_4
end

#reserved2_1 ⇒ Object

Returns the value of attribute reserved2_1.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def reserved2_1
  @reserved2_1
end

#reserved2_10 ⇒ Object

Returns the value of attribute reserved2_10.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def reserved2_10
  @reserved2_10
end

#reserved2_2 ⇒ Object

Returns the value of attribute reserved2_2.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def reserved2_2
  @reserved2_2
end

#reserved2_3 ⇒ Object

Returns the value of attribute reserved2_3.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def reserved2_3
  @reserved2_3
end

#reserved2_4 ⇒ Object

Returns the value of attribute reserved2_4.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def reserved2_4
  @reserved2_4
end

#reserved2_5 ⇒ Object

Returns the value of attribute reserved2_5.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def reserved2_5
  @reserved2_5
end

#reserved2_6 ⇒ Object

Returns the value of attribute reserved2_6.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def reserved2_6
  @reserved2_6
end

#reserved2_7 ⇒ Object

Returns the value of attribute reserved2_7.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def reserved2_7
  @reserved2_7
end

#reserved2_8 ⇒ Object

Returns the value of attribute reserved2_8.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def reserved2_8
  @reserved2_8
end

#reserved2_9 ⇒ Object

Returns the value of attribute reserved2_9.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def reserved2_9
  @reserved2_9
end

#total_pages_in_file ⇒ Object

Returns the value of attribute total_pages_in_file.



58
59
60
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 58

def total_pages_in_file
  @total_pages_in_file
end

Instance Method Details

#pack ⇒ Object



60
61
62
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 60

def pack
  return [@magic, @last_page_size, @total_pages_in_file, @relocation_items, @paragraphs_in_header, @minimum_extra_paragraphs, @maximum_extra_paragraphs, @initial_stack_segment, @initial_stack_pointer, @complemented_checksum, @initial_instraction_pointer, @initial_code_segment, @relocation_table_offset, @overlay_number, @reserved1_1, @reserved1_2, @reserved1_3, @reserved1_4, @oem_identifier, @oem_information, @reserved2_1, @reserved2_2, @reserved2_3, @reserved2_4, @reserved2_5, @reserved2_6, @reserved2_7, @reserved2_8, @reserved2_9, @reserved2_10, @offset_to_new_header].pack(FORMAT)
end

#unpack(bin) ⇒ Object



64
65
66
67
68
# File 'lib/exerb/win32/struct/image_dos_header.rb', line 64

def unpack(bin)
  @magic, @last_page_size, @total_pages_in_file, @relocation_items, @paragraphs_in_header, @minimum_extra_paragraphs, @maximum_extra_paragraphs, @initial_stack_segment, @initial_stack_pointer, @complemented_checksum, @initial_instraction_pointer, @initial_code_segment, @relocation_table_offset, @overlay_number, @reserved1_1, @reserved1_2, @reserved1_3, @reserved1_4, @oem_identifier, @oem_information, @reserved2_1, @reserved2_2, @reserved2_3, @reserved2_4, @reserved2_5, @reserved2_6, @reserved2_7, @reserved2_8, @reserved2_9, @reserved2_10, @offset_to_new_header = bin.unpack(FORMAT)
  raise('dos header has invalid signature') unless @magic == SIGNATURE
  return self
end