Class: TurboRex::MSRPC::MIDL::TypeFormatString::SimpleType
- Inherits:
-
TurboRex::MSRPC::MIDL::TypeFormatString
- Object
- TurboRex::MSRPC::MIDL::TypeFormatString
- TurboRex::MSRPC::MIDL::TypeFormatString::SimpleType
- Defined in:
- lib/turborex/msrpc/midl.rb
Constant Summary collapse
- MAPPING =
[ {value: FC_BYTE, mapping: :byte}, {value: FC_CHAR, mapping: :char}, {value: FC_SMALL, mapping: :small}, {value: FC_USMALL, mapping: {type: :small, signed: false}}, {value: FC_WCHAR, mapping: :wchar_t}, {value: FC_SHORT, mapping: :short}, {value: FC_USHORT, mapping: {type: :short, signed: false}}, {value: FC_LONG, mapping: :long}, {value: FC_ULONG, mapping: {type: :long, signed: false}}, {value: FC_FLOAT, mapping: :float}, {value: FC_HYPER, mapping: :hyper}, {value: FC_DOUBLE, mapping: :double}, {value: FC_ERROR_STATUS_T, mapping: :error_status_t}, {value: FC_INT3264, mapping: :__int3264}, {value: FC_UINT3264, mapping: {type: :__int3264, signed: false}} ]
Constants inherited from TurboRex::MSRPC::MIDL::TypeFormatString
Constants included from NDRType
NDRType::DECODE_IS_USED, NDRType::ENCODE_IS_USED, NDRType::FC_ADD_1, NDRType::FC_ALIGNM2, NDRType::FC_ALIGNM4, NDRType::FC_ALIGNM8, NDRType::FC_AUTO_HANDLE, NDRType::FC_BIND_CONTEXT, NDRType::FC_BIND_GENERIC, NDRType::FC_BIND_PRIMITIVE, NDRType::FC_BLKHOLE, NDRType::FC_BOGUS_ARRAY, NDRType::FC_BOGUS_STRUCT, NDRType::FC_BSTRING, NDRType::FC_BYTE, NDRType::FC_BYTE_COUNT_POINTER, NDRType::FC_CALLBACK, NDRType::FC_CALLBACK_HANDLE, NDRType::FC_CARRAY, NDRType::FC_CHAR, NDRType::FC_CONSTANT_IID, NDRType::FC_CPSTRUCT, NDRType::FC_CSTRING, NDRType::FC_CSTRUCT, NDRType::FC_CVARRAY, NDRType::FC_CVSTRUCT, NDRType::FC_C_BSTRING, NDRType::FC_C_CSTRING, NDRType::FC_C_SSTRING, NDRType::FC_C_WSTRING, NDRType::FC_DEREFERENCE, NDRType::FC_DIV_2, NDRType::FC_DOUBLE, NDRType::FC_EMBEDDED_COMPLEX, NDRType::FC_ENCAPSULATED_UNION, NDRType::FC_END, NDRType::FC_END_OF_UNIVERSE, NDRType::FC_ENUM16, NDRType::FC_ENUM32, NDRType::FC_ERROR_STATUS_T, NDRType::FC_EXPLICIT_HANDLE, NDRType::FC_EXPR, NDRType::FC_FIXED_OFFSET, NDRType::FC_FIXED_REPEAT, NDRType::FC_FLOAT, NDRType::FC_FP, NDRType::FC_HARD_STRUCT, NDRType::FC_HYPER, NDRType::FC_IGNORE, NDRType::FC_INT3264, NDRType::FC_IN_OUT_PARAM, NDRType::FC_IN_PARAM, NDRType::FC_IN_PARAM_BASETYPE, NDRType::FC_IN_PARAM_NO_FREE_INST, NDRType::FC_IP, NDRType::FC_LGFARRAY, NDRType::FC_LGVARRAY, NDRType::FC_LONG, NDRType::FC_MULT_2, NDRType::FC_NON_ENCAPSULATED_UNION, NDRType::FC_NO_REPEAT, NDRType::FC_OP, NDRType::FC_OUT_PARAM, NDRType::FC_PAD, NDRType::FC_PIPE, NDRType::FC_POINTER, NDRType::FC_PP, NDRType::FC_PSTRUCT, NDRType::FC_RANGE, NDRType::FC_REPRESENT_AS, NDRType::FC_REPRESENT_AS_PTR, NDRType::FC_RETURN_PARAM, NDRType::FC_RETURN_PARAM_BASETYPE, NDRType::FC_RP, NDRType::FC_SHORT, NDRType::FC_SMALL, NDRType::FC_SMFARRAY, NDRType::FC_SMVARRAY, NDRType::FC_SPLIT_ADD_1, NDRType::FC_SPLIT_CALLBACK, NDRType::FC_SPLIT_DEREFERENCE, NDRType::FC_SPLIT_DIV_2, NDRType::FC_SPLIT_MULT_2, NDRType::FC_SPLIT_SUB_1, NDRType::FC_SSTRING, NDRType::FC_STRING_SIZED, NDRType::FC_STRUCT, NDRType::FC_STRUCTPAD1, NDRType::FC_STRUCTPAD2, NDRType::FC_STRUCTPAD3, NDRType::FC_STRUCTPAD4, NDRType::FC_STRUCTPAD5, NDRType::FC_STRUCTPAD6, NDRType::FC_STRUCTPAD7, NDRType::FC_SUB_1, NDRType::FC_TRANSMIT_AS, NDRType::FC_TRANSMIT_AS_PTR, NDRType::FC_UINT3264, NDRType::FC_ULONG, NDRType::FC_UNUSED1, NDRType::FC_UNUSED2, NDRType::FC_UNUSED3, NDRType::FC_UNUSED4, NDRType::FC_UNUSED5, NDRType::FC_UP, NDRType::FC_USER_MARSHAL, NDRType::FC_USHORT, NDRType::FC_USMALL, NDRType::FC_VARIABLE_OFFSET, NDRType::FC_VARIABLE_REPEAT, NDRType::FC_WCHAR, NDRType::FC_WSTRING, NDRType::FC_ZERO, NDRType::Oi_FULL_PTR_USED, NDRType::Oi_HAS_COMM_OR_FAULT, NDRType::Oi_HAS_RPCFLAGS, NDRType::Oi_IGNORE_OBJECT_EXCEPTION_HANDLING, NDRType::Oi_OBJECT_PROC, NDRType::Oi_OBJ_USE_V2_INTERPRETER, NDRType::Oi_RPCSS_ALLOC_USED, NDRType::Oi_USE_NEW_INIT_ROUTINES, NDRType::Oi_Unused, NDRType::Oi_overloaded1, NDRType::Oi_overloaded2, NDRType::WIN2K_EXT64_SIZE, NDRType::WIN2K_EXT_SIZE
Instance Method Summary collapse
Methods inherited from TurboRex::MSRPC::MIDL::TypeFormatString
#fs_length, #initialize, #select_handler
Constructor Details
This class inherits a constructor from TurboRex::MSRPC::MIDL::TypeFormatString
Instance Method Details
#decompile ⇒ Object
500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 |
# 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 |