Class: TurboRex::MSRPC::MIDL::TypeFormatString
- Inherits:
-
Object
- Object
- TurboRex::MSRPC::MIDL::TypeFormatString
- Includes:
- NDRType
- Defined in:
- lib/turborex/msrpc/midl.rb
Direct Known Subclasses
CommonPtr, ConformatArray, FixedSizedArray, PointerLayout, SimpleType
Defined Under Namespace
Classes: CommonPtr, ConformatArray, FixedSizedArray, PointerLayout, SimpleType
Constant Summary collapse
- HANDLER_TABLE =
[ { type: [FC_BYTE, FC_CHAR, FC_SMALL, FC_USMALL, FC_WCHAR, FC_SHORT, FC_USHORT, FC_LONG, FC_ULONG, FC_FLOAT, FC_HYPER, FC_DOUBLE, FC_ENUM16, FC_ENUM32, FC_ERROR_STATUS_T, FC_INT3264, FC_UINT3264], handler: SimpleType }, { type: [FC_RP, FC_UP, FC_FP, FC_OP], handler: CommonPtr, }, { type: [FC_SMFARRAY, FC_LGFARRAY], handler: FixedSizedArray }, { type: [FC_PP], handler: PointerLayout } ]
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
-
#decompile ⇒ Object
return an object of the subclass of DataType.
- #fs_length ⇒ Object
-
#initialize(typefs_stream, cparser) ⇒ TypeFormatString
constructor
A new instance of TypeFormatString.
- #select_handler(type_fc) ⇒ Object
Constructor Details
#initialize(typefs_stream, cparser) ⇒ TypeFormatString
Returns a new instance of TypeFormatString.
456 457 458 459 |
# File 'lib/turborex/msrpc/midl.rb', line 456 def initialize(typefs_stream, cparser) @typefs_stream = typefs_stream @cparser = cparser end |
Instance Method Details
#decompile ⇒ Object
return an object of the subclass of DataType
462 463 464 465 |
# File 'lib/turborex/msrpc/midl.rb', line 462 def decompile fc = @typefs_stream.read(1).unpack('C').first select_handler(fc).new(@typefs_stream, @cparser).decompile end |
#fs_length ⇒ Object
467 468 469 |
# File 'lib/turborex/msrpc/midl.rb', line 467 def fs_length end |
#select_handler(type_fc) ⇒ Object
471 472 473 474 475 476 477 478 479 |
# File 'lib/turborex/msrpc/midl.rb', line 471 def select_handler(type_fc) HANDLER_TABLE.each do |h| if h[:type].include?(type_fc) return h[:handler] end end raise TurboRex::Exception::MSRPC::InvalidTypeFormatString end |