1
mirror of https://github.com/rapid7/metasploit-framework synced 2024-10-29 18:07:27 +01:00
metasploit-framework/tools/module_ports.rb
Luke Imhoff b863978028
Remove fastlib
MSP-11368
MSP-11143

Remove fastlib as it slows down the code loading process.  From the
previous commit, the mean loading for
`METASPLOIT_FRAMEWORK_PROFILE=true msfconsole -q -x exit` was
27.9530±0.3485 seconds (N=10).  The mean after removal of fastlib
was 17.9820±0.6497 seconds (N=10).  This means an average 35.67%
reduction in boot time.
2014-09-18 15:24:21 -05:00

54 lines
1.1 KiB
Ruby
Executable File

#!/usr/bin/env ruby
#
# $Id$
#
# This script lists each module by the default ports it uses
#
# $Revision$
#
msfbase = __FILE__
while File.symlink?(msfbase)
msfbase = File.expand_path(File.readlink(msfbase), File.dirname(msfbase))
end
$:.unshift(File.expand_path(File.join(File.dirname(msfbase), '..', 'lib')))
require 'msfenv'
$:.unshift(ENV['MSF_LOCAL_LIB']) if ENV['MSF_LOCAL_LIB']
require 'rex'
require 'msf/ui'
require 'msf/base'
# Initialize the simplified framework instance.
$framework = Msf::Simple::Framework.create('DisableDatabase' => true)
all_modules = $framework.exploits.merge($framework.auxiliary)
all_ports = {}
all_modules.each_module { |name, mod|
x = mod.new
ports = []
if x.datastore['RPORT']
ports << x.datastore['RPORT']
end
if(x.respond_to?('autofilter_ports'))
x.autofilter_ports.each do |rport|
ports << rport
end
end
ports = ports.map{|p| p.to_i}
ports.uniq!
ports.sort{|a,b| a <=> b}.each do |rport|
# Just record the first occurance.
all_ports[rport] = x.fullname unless all_ports[rport]
end
}
all_ports.sort.each { |k,v|
puts "%5s # %s" % [k,v]
}