class TurboRex::Fuzzer::CoverageClient

Public Class Methods

new(mapping_name, buf_size=65536) click to toggle source
# File lib/turborex/fuzzer/coverage.rb, line 4
def initialize(mapping_name, buf_size=65536)
  setting_mapping(mapping_name, buf_size)
  @virgin_bits = [0xFF] * buf_size
  @view_size = buf_size
  @bitmap_size = 0
end

Public Instance Methods

trace_bits() click to toggle source
# File lib/turborex/fuzzer/coverage.rb, line 11
def trace_bits
  page = [0].pack('C')*@view_size
  return if TurboRex::Windows::Win32API.readprocessmemory(-1, @buf, page, @view_size, 0) == 0
  page
end

Private Instance Methods

setting_mapping(mapping_name, buf_size) click to toggle source
ret

end

# File lib/turborex/fuzzer/coverage.rb, line 41
def setting_mapping(mapping_name, buf_size)
  @mapping_name = mapping_name

  @hmap = TurboRex::Windows::Win32API.openfilemappinga(
    TurboRex::Windows::Win32API::FILE_MAP_ALL_ACCESS,
    false,
    mapping_name
  )

  raise "Error opening file mapping" unless @hmap

  @buf = TurboRex::Windows::Win32API.mapviewoffile(
    @hmap,
    TurboRex::Windows::Win32API::FILE_MAP_ALL_ACCESS,
    0,
    0,
    buf_size
  )

  unless @buf
    TurboRex::Windows::Win32API.closehandle(@hmap)
    raise "Error mapping view of file"
  end
end