# # Copyright (c) 2006-2021 Hal Brodigan (postmodern.mod3 at gmail.com) # # This file is part of ronin-support. # # ronin-support is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # ronin-support is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with ronin-support. If not, see . # require 'ronin/binary/hexdump/parser' class File # # Converts a hexdump file to it's original binary data. # # @param [Pathname, String] path # The path of the hexdump file. # # @param [Hash] options # Additional options. # # @option options [Symbol] :format # The expected format of the hexdump. Must be either `:od` or # `:hexdump`. # # @option options [Symbol] :encoding # Denotes the encoding used for the bytes within the hexdump. # Must be one of the following: # # * `:binary` # * `:octal` # * `:octal_bytes` # * `:octal_shorts` # * `:octal_ints` # * `:octal_quads` (Ruby 1.9 only) # * `:decimal` # * `:decimal_bytes` # * `:decimal_shorts` # * `:decimal_ints` # * `:decimal_quads` (Ruby 1.9 only) # * `:hex` # * `:hex_chars` # * `:hex_bytes` # * `:hex_shorts` # * `:hex_ints` # * `:hex_quads` # * `:named_chars` (Ruby 1.9 only) # * `:floats` # * `:doubles` # # @option options [:little, :big, :network] :endian (:little) # The endianness of the words. # # @option options [Integer] :segment (16) # The length in bytes of each segment in the hexdump. # # @return [String] # The raw-data from the hexdump. # # @api public # def File.unhexdump(path,options={}) Ronin::Binary::Hexdump::Parser.new(options).parse(File.new(path)) end end