Land #10802, Make `msfvenom -f` case-insensitive

This commit is contained in:
Adam Cammack 2018-11-21 16:04:30 -06:00
commit 317f71f7f4
No known key found for this signature in database
GPG Key ID: C9378BA088092D66
3 changed files with 8 additions and 4 deletions

View File

@ -14,6 +14,7 @@ module Simple
### ###
module Buffer module Buffer
class BufferFormatError < ::ArgumentError; end
# #
# Serializes a buffer to a provided format. The formats supported are raw, # Serializes a buffer to a provided format. The formats supported are raw,
# num, dword, ruby, python, perl, bash, c, js_be, js_le, java and psh # num, dword, ruby, python, perl, bash, c, js_be, js_le, java and psh
@ -58,7 +59,7 @@ module Buffer
when 'vbapplication' when 'vbapplication'
buf = Rex::Text.to_vbapplication(buf, var_name) buf = Rex::Text.to_vbapplication(buf, var_name)
else else
raise ArgumentError, "Unsupported buffer format: #{fmt}", caller raise BufferFormatError, "Unsupported buffer format: #{fmt}", caller
end end
return buf return buf
@ -88,7 +89,7 @@ module Buffer
when 'java' when 'java'
buf = Rex::Text.to_c_comment(buf) buf = Rex::Text.to_c_comment(buf)
else else
raise ArgumentError, "Unsupported buffer format: #{fmt}", caller raise BufferFormatError, "Unsupported buffer format: #{fmt}", caller
end end
return buf return buf

View File

@ -144,7 +144,7 @@ module Msf
@framework = opts.fetch(:framework) @framework = opts.fetch(:framework)
raise ArgumentError, "Invalid Payload Selected" unless payload_is_valid? raise ArgumentError, "Invalid Payload Selected" unless payload_is_valid?
raise ArgumentError, "Invalid Format Selected" unless format_is_valid? raise ::Msf::Simple::Buffer::BufferFormatError, "Invalid Format Selected" unless format_is_valid?
# In smallest mode, override the payload @space & @encoder_space settings # In smallest mode, override the payload @space & @encoder_space settings
if @smallest if @smallest

View File

@ -90,7 +90,7 @@ def parse_args(args)
end end
opt.on('-f', '--format <format>', String, "Output format (use --list formats to list)") do |f| opt.on('-f', '--format <format>', String, "Output format (use --list formats to list)") do |f|
opts[:format] = f opts[:format] = f.downcase
end end
opt.on('-e', '--encoder <encoder>', String, 'The encoder to use (use --list encoders to list)') do |e| opt.on('-e', '--encoder <encoder>', String, 'The encoder to use (use --list encoders to list)') do |e|
@ -444,6 +444,9 @@ generator_opts[:cli] = true
begin begin
venom_generator = Msf::PayloadGenerator.new(generator_opts) venom_generator = Msf::PayloadGenerator.new(generator_opts)
payload = venom_generator.generate_payload payload = venom_generator.generate_payload
rescue ::Msf::Simple::Buffer::BufferFormatError => e
$stderr.puts "Error: #{e.message}"
$stderr.puts dump_formats
rescue ::Exception => e rescue ::Exception => e
elog("#{e.class} : #{e.message}\n#{e.backtrace * "\n"}") elog("#{e.class} : #{e.message}\n#{e.backtrace * "\n"}")
$stderr.puts "Error: #{e.message}" $stderr.puts "Error: #{e.message}"