class Rex::ElfScan::Scanner::RegexScanner
Public Instance Methods
config(param)
click to toggle source
# File lib/rex/elfscan/scanner.rb, line 192 def config(param) self.regex = Regexp.new(param['args'], nil, 'n') end
scan_segment(program_header, param={})
click to toggle source
# File lib/rex/elfscan/scanner.rb, line 196 def scan_segment(program_header, param={}) offset = program_header.p_offset hits = [] while offset < program_header.p_offset + program_header.p_filesz && (offset = elf.index(regex, offset)) != nil idx = offset buf = '' mat = nil while (! (mat = buf.match(regex))) buf << elf.read(idx, 1) idx += 1 end rva = elf.offset_to_rva(offset) hits << [ rva, buf.unpack("H*") ] offset += buf.length end return hits end