# # ronin-exploits - A Ruby library for ronin-rb that provides exploitation and # payload crafting functionality. # # Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com) # # ronin-exploits is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # ronin-exploits is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with ronin-exploits. If not, see . # require 'ronin/exploits/metadata/default_filename' module Ronin module Exploits module Params # # Adds the required `filename` param to the exploit. # # ## Examples # # include Params::Filename # # Setting the default port value: # # include Params::Filename # # default_filename 'exploit.docx' # # @api public # # @since 1.0.0 # module Filename # # Adds the required `filename` param to the exploit class including # {Params::Filename}. # # @param [Class] exploit # The exploit class including {Params::Filename}. # # @api private # def self.included(exploit) exploit.include Metadata::DefaultFilename exploit.param :filename, String, required: true, default: ->{ exploit.default_filename }, desc: 'The filename for the exploit' end # # The `filename` param. # # @return [String] # def filename params[:filename] end end end end end