module TurboRex::MSRPC::RPCBase
Constants
- DCE_TransferSyntax
- GUID
- MIDL_SERVER_INFO
- MIDL_SERVER_INFO32
- MIDL_SERVER_INFO64
- MIDL_STUBLESS_PROXY_INFO
- MIDL_STUBLESS_PROXY_INFO32
- MIDL_STUBLESS_PROXY_INFO64
- MIDL_STUB_DESC
- MIDL_STUB_DESC32
- MIDL_STUB_DESC64
- MIDL_SYNTAX_INFO
- MIDL_SYNTAX_INFO32
- MIDL_SYNTAX_INFO64
- NDR64_TransferSyntax
- RPC_DISPATCH_TABLE_T
- RPC_DISPATCH_TABLE_T32
- RPC_DISPATCH_TABLE_T64
- RPC_IF_ID
- RPC_PROTSEQ_ENDPOINT
- RPC_PROTSEQ_ENDPOINT32
- RPC_PROTSEQ_ENDPOINT64
- RPC_SERVER_INTERFACE
- RPC_SERVER_INTERFACE32
- RPC_SERVER_INTERFACE64
- RPC_SYNTAX_IDENTIFIER
- RPC_SYNTAX_IDENTIFIER64
- RPC_Struct_Mgr32
- RPC_Struct_Mgr64
- RPC_VERSION
Public Class Methods
from_guid_str(guid_str)
click to toggle source
# File lib/turborex/msrpc/rpcbase.rb, line 233 def self.from_guid_str(guid_str) if guid_str.count('-') == 3 hexData1, hexData2, hexData3, hexData4 = guid_str.split('-') data1 = hexData1.to_i(16) data2 = hexData2.to_i(16) data3 = hexData3.to_i(16) data4 = [hexData4.to_i(16)].pack('Q<').unpack('CCCCCCCC') guid_struct = GUID.make guid_struct['data1'].value = data1 guid_struct['data2'].value = data2 guid_struct['data3'].value = data3 data4.each_with_index do |c, i| guid_struct['data4'][i].value = c end guid_struct elsif guid_str.count('-') == 4 hexData1, hexData2, hexData3, hexData4Hi, hexData4 = guid_str.split('-') data1 = hexData1.to_i(16) data2 = hexData2.to_i(16) data3 = hexData3.to_i(16) data4Hi = hexData4Hi.to_i(16) data4 = [] (0...hexData4.length).step(2) do |i| data4 << hexData4[i...i + 2].to_i(16) end guid_struct = GUID.make guid_struct['data1'].value = data1 guid_struct['data2'].value = data2 guid_struct['data3'].value = data3 guid_struct['data4'][0].value = data4Hi >> 8 guid_struct['data4'][1].value = data4Hi & 0xff data4.each_with_index do |c, i| guid_struct['data4'][i + 2].value = c end guid_struct end end
make_transferSyntax(guid, majorVersion, minorVersion)
click to toggle source
# File lib/turborex/msrpc/rpcbase.rb, line 280 def self.make_transferSyntax(guid, majorVersion, minorVersion) ident = RPC_SYNTAX_IDENTIFIER.make ident['syntaxGUID'].from_s from_guid_str(guid).to_s ident['syntaxVersion'][0].value = majorVersion ident['syntaxVersion'][1].value = minorVersion ident end