package binsec

  1. Overview
  2. Docs

doc/binsec_kernel_loader/Binsec_kernel_loader/Loader_pe/index.html

Module Binsec_kernel_loader.Loader_peSource

Sourcetype file_header = private {
  1. machine : Loader_types.u16;
  2. number_of_sections : int;
  3. time_date_stamp : Loader_types.u32;
  4. pointer_to_symbol_table : int;
  5. number_of_symbols : int;
  6. size_of_optional_header : int;
  7. characteristics : Loader_types.u16;
}
Sourcetype standard_fields = private {
  1. magic : Loader_types.u16;
  2. size_of_code : Loader_types.u32;
  3. size_of_initialized_data : Loader_types.u32;
  4. size_of_uninitialized_data : Loader_types.u32;
  5. address_of_entry_point : Binsec_base.Virtual_address.t;
  6. base_of_code : Loader_types.u32;
  7. base_of_data : Loader_types.u32 option;
}
Sourcetype windows_fields = private {
  1. image_base : Binsec_base.Virtual_address.t;
  2. section_alignement : Loader_types.u32;
  3. file_alignement : Loader_types.u32;
  4. size_of_image : Loader_types.u32;
  5. size_of_headers : Loader_types.u32;
  6. checksum : Loader_types.u32;
  7. subsystem : Loader_types.u16;
  8. dll_characteristics : Loader_types.u16;
  9. size_of_stack_reserve : Loader_types.u64;
  10. size_of_stack_commit : Loader_types.u64;
  11. size_of_heap_reserve : Loader_types.u64;
  12. size_of_heap_commit : Loader_types.u64;
  13. number_of_rva_and_sizes : Loader_types.u32;
}
Sourcetype data_directory = {
  1. virtual_address : Loader_types.u32;
  2. size : Loader_types.u32;
}
Sourcetype data_directories = {
  1. export_directory : data_directory;
  2. import_directory : data_directory;
  3. resource_directory : data_directory;
  4. exception_directory : data_directory;
  5. security_directory : data_directory;
  6. basereloc_directory : data_directory;
  7. debug_directory : data_directory;
  8. globalptr_directory : data_directory;
  9. tls_directory : data_directory;
  10. load_config_directory : data_directory;
  11. bound_import_directory : data_directory;
  12. iat_directory : data_directory;
  13. delay_import_directory : data_directory;
  14. clr_header_directory : data_directory;
}
Sourcetype optional_header = private {
  1. standard_fields : standard_fields;
  2. windows_fields : windows_fields;
  3. data_directories : data_directories;
}
Sourcetype section = private {
  1. section_name : string;
  2. virtual_size : Loader_types.u32;
  3. virtual_address : Binsec_base.Virtual_address.t;
  4. size_of_raw_data : int;
  5. pointer_to_raw_data : int;
  6. characteristics : Loader_types.u32;
}
Sourcetype symbol = private {
  1. symbol_name : string;
  2. value : Binsec_base.Virtual_address.t;
  3. section_number : Loader_types.u16;
  4. storage_class : Loader_types.u8;
  5. number_of_aux_symbols : Loader_types.u8;
}
include Loader_sigs.S with type Section.header = section and type Symbol.header = symbol and type Img.header = file_header * optional_header
Sourcemodule Section : sig ... end
Sourcemodule Symbol : sig ... end
Sourcemodule Img : sig ... end
Sourceval check_magic : Loader_types.buffer -> bool
Sourceval load_file_descr : Unix.file_descr -> Img.t
Sourceval load_file : string -> Img.t
Sourceval read_offset : Img.t -> int -> Loader_types.u8