Class: RubySMB::GenericPacket
- Inherits:
-
BinData::Record
- Object
- BinData::Record
- RubySMB::GenericPacket
- Defined in:
- lib/ruby_smb/generic_packet.rb
Overview
Parent class for all SMB Packets.
Direct Known Subclasses
SMB1::Packet::EchoRequest, SMB1::Packet::EchoResponse, SMB1::Packet::EmptyPacket, SMB1::Packet::LogoffRequest, SMB1::Packet::LogoffResponse, SMB1::Packet::NegotiateRequest, SMB1::Packet::NegotiateResponse, SMB1::Packet::NegotiateResponseExtended, SMB1::Packet::NtTrans::CreateRequest, SMB1::Packet::NtTrans::CreateResponse, SMB1::Packet::NtTrans::Request, SMB1::Packet::NtTrans::Response, SMB1::Packet::SessionSetupRequest, SMB1::Packet::SessionSetupResponse, SMB1::Packet::Trans2::Open2Request, SMB1::Packet::Trans2::Open2Response, SMB1::Packet::Trans2::Request, SMB1::Packet::Trans2::RequestSecondary, SMB1::Packet::Trans2::Response, SMB1::Packet::TreeConnectRequest, SMB1::Packet::TreeConnectResponse, SMB1::Packet::TreeDisconnectRequest, SMB1::Packet::TreeDisconnectResponse, SMB2::Packet::EchoRequest, SMB2::Packet::EchoResponse, SMB2::Packet::ErrorPacket, SMB2::Packet::LogoffRequest, SMB2::Packet::LogoffResponse, SMB2::Packet::NegotiateRequest, SMB2::Packet::NegotiateResponse, SMB2::Packet::SessionSetupRequest, SMB2::Packet::SessionSetupResponse, SMB2::Packet::TreeConnectRequest, SMB2::Packet::TreeConnectResponse, SMB2::Packet::TreeDisconnectRequest, SMB2::Packet::TreeDisconnectResponse
Class Method Summary collapse
-
.describe ⇒ String
Outputs a nicely formatted string representation of the Packet's structure.
Instance Method Summary collapse
Class Method Details
.describe ⇒ String
Outputs a nicely formatted string representation of the Packet's structure.
8 9 10 11 12 13 14 |
# File 'lib/ruby_smb/generic_packet.rb', line 8 def self.describe description = '' fields_hashed.each do |field| description << format_field(field) end description end |
Instance Method Details
#display ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/ruby_smb/generic_packet.rb', line 16 def display display_str = '' self.class.fields_hashed.each do |field| display_str << display_field(field) end display_str end |
#packet_smb_version ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/ruby_smb/generic_packet.rb', line 25 def packet_smb_version class_name = self.class.to_s case class_name when /SMB1/ 'SMB1' when /SMB2/ 'SMB2' else '' end end |
#status_code ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/ruby_smb/generic_packet.rb', line 37 def status_code value = -1 smb_version = packet_smb_version case smb_version when 'SMB1' value = self.smb_header.nt_status.value when 'SMB2' value = self.smb2_header.nt_status.value end status_code = WindowsError::NTStatus.find_by_retval(value).first if status_code.nil? status_code = WindowsError::ErrorCode.new("0x#{value.to_s(16)}", value, "Unknown 0x#{value.to_s(16)}") end status_code end |