Module: Ronin::Exploits::Mixins::Binary

Included in:
FormatString, SEH, StackOverflow
Defined in:
lib/ronin/exploits/mixins/binary.rb

Overview

Adds methods for packing binary data.

Since:

  • 1.0.0

Instance Method Summary collapse

Instance Method Details

#pack(type, value) ⇒ String

Packs a binary value for the given type.

Since:

  • 1.0.0



105
106
107
# File 'lib/ronin/exploits/mixins/binary.rb', line 105

def pack(type,value)
  platform[type].pack(value)
end

#perform_validateObject

Validates that the exploit defines an arch method and that all required params are set.

Raises:

Since:

  • 1.0.0



50
51
52
53
54
55
56
57
58
59
60
# File 'lib/ronin/exploits/mixins/binary.rb', line 50

def perform_validate
  unless respond_to?(:arch)
    raise(ValidationError,"exploit #{self.class} did not include Ronin::Exploits::Metadata::Arch or Ronin::Exploits::Mixins::HasTargets")
  end

  unless arch
    raise(ValidationError,"exploit #{self.class} did not include define an architecture")
  end

  super()
end

#platformRonin::Support::Binary::CTypes, ...

The target platform.

Raises:

  • (ArgumentError)

    The exploit defined an unknown arch or os value.

Since:

  • 1.0.0



86
87
88
89
90
91
# File 'lib/ronin/exploits/mixins/binary.rb', line 86

def platform
  @platform ||= Support::Binary::CTypes.platform(
                  arch: arch,
                  os:   (os if respond_to?(:os))
                )
end