class TurboRex::MSRPC::MIDL::TypeFormatString::SimpleType
Constants
- MAPPING
Public Instance Methods
decompile()
click to toggle source
# File lib/turborex/msrpc/midl.rb, line 500 def decompile type_fc = @typefs_stream.read(1).unpack('C').first case type_fc when FC_ENUM16 symbol_name = "DUMMY_ENUM16_#{SecureRandom.hex(2).upcase}".to_sym enum = DataType::Enum.new(symbol_name, :dummy_member) return DataType::TypeDefinition.new(symbol_name, enum, [symbol_name]) when FC_ENUM32 symbol_name = "DUMMY_ENUM32_#{SecureRandom.hex(2).upcase}".to_sym enum = DataType::Enum.new(symbol_name, :dummy_member) enum.attributes << :v1_enum return DataType::TypeDefinition.new(symbol_name, enum, [symbol_name], enum.attributes) else MAPPING.each do |m| if m[:value] == type_fc signed = true if m[:mapping].is_a?(Hash) symbol_name = m[:mapping][:type] signed = m[:mapping][:signed] else symbol_name = m[:mapping] end return DataType::BaseType.new(symbol_name, signed) end end end raise TurboRex::Exception::MSRPC::InvalidTypeFormatString end