65 lines
1.2 KiB
Ruby
65 lines
1.2 KiB
Ruby
# -*- coding: binary -*-
|
|
require 'msf/core'
|
|
|
|
module Msf
|
|
|
|
###
|
|
#
|
|
# This class acts as the base class for all nop generators.
|
|
#
|
|
###
|
|
class Nop < Msf::Module
|
|
|
|
#
|
|
# Returns MODULE_NOP to indicate that this is a NOP module.
|
|
#
|
|
def self.type
|
|
return MODULE_NOP
|
|
end
|
|
|
|
#
|
|
# Returns MODULE_NOP to indicate that this is a NOP module.
|
|
#
|
|
def type
|
|
return MODULE_NOP
|
|
end
|
|
|
|
#
|
|
# Initializes the NOP generator, defaulting it to being usable on all
|
|
# platforms.
|
|
#
|
|
def initialize(info = {})
|
|
super({
|
|
'Platform' => '' # All platforms by default
|
|
}.update(info))
|
|
end
|
|
|
|
#
|
|
# Stub method for generating a sled with the provided arguments. Derived
|
|
# Nop implementations must supply a length and can supply one or more of
|
|
# the following options:
|
|
#
|
|
# - Random (true/false)
|
|
# Indicates that the caller desires random NOPs (if supported).
|
|
# - SaveRegisters (array)
|
|
# The list of registers that should not be clobbered by the NOP
|
|
# generator.
|
|
# - BadChars (string)
|
|
# The list of characters that should be avoided by the NOP
|
|
# generator.
|
|
#
|
|
def generate_sled(length, opts)
|
|
return nil
|
|
end
|
|
|
|
#
|
|
# Default repetition threshold when finding nop characters.
|
|
#
|
|
def nop_repeat_threshold
|
|
return 10000
|
|
end
|
|
|
|
end
|
|
|
|
end
|