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:
passbe
2011-04-27 04:14:56 +00:00
parent 3fe7e3971c
commit b9818239e3
5 changed files with 41 additions and 37 deletions

5
core/extension.rb Normal file
View File

@@ -0,0 +1,5 @@
module BeEF
module Extension
end
end

View File

@@ -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
}

View File

@@ -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
View 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

View File

@@ -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
}