mirror of
https://github.com/rapid7/metasploit-framework
synced 2024-11-05 14:57:30 +01:00
b863978028
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.
49 lines
1.1 KiB
Ruby
Executable File
49 lines
1.1 KiB
Ruby
Executable File
#!/usr/bin/env ruby
|
|
|
|
# Lists the current count of modules, by type, and outputs a bare CSV.
|
|
|
|
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'
|
|
|
|
# Always disable the database (we never need it just to list module
|
|
# information).
|
|
framework_opts = { 'DisableDatabase' => true }
|
|
|
|
# Initialize the simplified framework instance.
|
|
$framework = Msf::Simple::Framework.create(framework_opts)
|
|
Indent = ' '
|
|
|
|
i = 0
|
|
module_types = {
|
|
:exploit => 0,
|
|
:auxiliary => 0,
|
|
:post => 0,
|
|
:payload => 0,
|
|
:encoder => 0,
|
|
:nop => 0
|
|
}
|
|
|
|
$framework.modules.each do |name, mod|
|
|
this_mod = mod.new
|
|
[:exploit, :auxiliary, :post, :payload, :encoder, :nop].each do |meth|
|
|
interrogative = "#{meth}?".intern
|
|
if this_mod.send(interrogative)
|
|
module_types[meth] += 1
|
|
end
|
|
end
|
|
end
|
|
|
|
puts module_types.keys.map {|k| k.to_s}.join(",")
|
|
puts module_types.values.join(",")
|