Moved dynamic loading back to loader. Added helper classes for BeEF::Module/s BeEF::Extension/s. This is to facilitate issues 319, 322, 324
git-svn-id: https://beef.googlecode.com/svn/trunk@934 b87d56ec-f9c0-11de-8c8a-61c5e9addfc9
This commit is contained in:
5
core/extension.rb
Normal file
5
core/extension.rb
Normal file
@@ -0,0 +1,5 @@
|
||||
module BeEF
|
||||
module Extension
|
||||
|
||||
end
|
||||
end
|
||||
@@ -1,17 +1,6 @@
|
||||
module BeEF
|
||||
module Extension
|
||||
module Extensions
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
# Include only enabled extensions
|
||||
config = BeEF::Core::Configuration.instance
|
||||
extensions = config.get('beef.extension').select{|key, ext|
|
||||
ext['enable'] == true
|
||||
}
|
||||
|
||||
extensions.each{ |k,v|
|
||||
if File.exists?('extensions/'+k+'/extension.rb')
|
||||
require 'extensions/'+k+'/extension.rb'
|
||||
end
|
||||
}
|
||||
|
||||
@@ -34,8 +34,28 @@ require 'core/settings'
|
||||
# Include the core of BeEF
|
||||
require 'core/core'
|
||||
|
||||
# Include the extensions
|
||||
# Include helpers
|
||||
require 'core/module'
|
||||
require 'core/modules'
|
||||
require 'core/extension'
|
||||
require 'core/extensions'
|
||||
|
||||
# Include the modules
|
||||
require 'core/modules'
|
||||
config = BeEF::Core::Configuration.instance
|
||||
|
||||
# Include extensions defined in the Configuration
|
||||
extensions = config.get('beef.extension').select{|key, ext| ext['enable'] == true }
|
||||
extensions.each{ |k,v|
|
||||
if File.exists?('extensions/'+k+'/extension.rb')
|
||||
require 'extensions/'+k+'/extension.rb'
|
||||
end
|
||||
}
|
||||
|
||||
# Include modules defined in the Configuration
|
||||
modules = config.get('beef.module').select{|key, mod| mod['enable'] == true and mod['category'] != nil }
|
||||
modules.each{ |k,v|
|
||||
cat = BeEF::Module.safe_category(v['category'])
|
||||
if File.exists?('modules/'+cat+'/'+k+'/module.rb')
|
||||
require 'modules/'+cat+'/'+k+'/module.rb'
|
||||
config.set('beef.module.'+k+'.loaded', true)
|
||||
end
|
||||
}
|
||||
|
||||
11
core/module.rb
Normal file
11
core/module.rb
Normal file
@@ -0,0 +1,11 @@
|
||||
module BeEF
|
||||
module Module
|
||||
|
||||
def self.safe_category(cat)
|
||||
return cat.to_s.strip.downcase.sub(/\s/, '_')
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1,30 +1,9 @@
|
||||
module BeEF
|
||||
module Module
|
||||
module Modules
|
||||
|
||||
def self.safe_category(cat)
|
||||
return cat.to_s.strip.downcase.sub(/\s/, '_')
|
||||
end
|
||||
|
||||
def self.loaded
|
||||
config = BeEF::Core::Configuration.instance
|
||||
return config.get('beef.module').select{|v| v.has_key?('loaded') and v['loaded'] == true }
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
# Include only enabled modules
|
||||
config = BeEF::Core::Configuration.instance
|
||||
modules = config.get('beef.module').select{|key, mod|
|
||||
mod['enable'] == true and mod['category'] != nil
|
||||
}
|
||||
|
||||
# Include each module
|
||||
modules.each{ |k,v|
|
||||
cat = BeEF::Module.safe_category(v['category'])
|
||||
if File.exists?('modules/'+cat+'/'+k+'/module.rb')
|
||||
require 'modules/'+cat+'/'+k+'/module.rb'
|
||||
config.set('beef.module.'+k+'.loaded', true)
|
||||
end
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user