Class: PacketGen::Plugin::SMB2::Base

Inherits:
Header::Base
  • Object
show all
Defined in:
lib/packetgen/plugin/smb2/base.rb

Overview

Helper class to ease definition of SMB2 classes

Author:

  • Sylvain Daubert

Class Method Summary collapse

Class Method Details

.define_smb2_pad_field(name) ⇒ void

This method returns an undefined value.

Helper to define pad fields used to align next field on 8-byte offset

Parameters:

  • name (Symbol)

    name of padding field



19
20
21
22
23
24
25
26
# File 'lib/packetgen/plugin/smb2/base.rb', line 19

def self.define_smb2_pad_field(name)
  prev_field = self.fields.last
  lf = lambda do |hdr|
    (8 - (hdr.offset_of(prev_field) + hdr[prev_field].sz) % 8) % 8
  end
  define_field name, PacketGen::Types::String, default: SMB2::MAX_PADDING,
               builder: ->(h, t) { t.new(length_from: -> { lf[h] }) }
end