Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
beefproject
GitHub Repository: beefproject/beef
Path: blob/master/core/extensions.rb
1146 views
1
#
2
# Copyright (c) 2006-2025 Wade Alcorn - [email protected]
3
# Browser Exploitation Framework (BeEF) - https://beefproject.com
4
# See the file 'doc/COPYING' for copying permission
5
#
6
module BeEF
7
module Extensions
8
# Returns configuration of all enabled extensions
9
# @return [Array] an array of extension configuration hashes that are enabled
10
def self.get_enabled
11
BeEF::Core::Configuration.instance.get('beef.extension').select { |_k, v| v['enable'] == true }
12
rescue StandardError => e
13
print_error "Failed to get enabled extensions: #{e.message}"
14
print_error e.backtrace
15
end
16
17
# Returns configuration of all loaded extensions
18
# @return [Array] an array of extension configuration hashes that are loaded
19
def self.get_loaded
20
BeEF::Core::Configuration.instance.get('beef.extension').select { |_k, v| v['loaded'] == true }
21
rescue StandardError => e
22
print_error "Failed to get loaded extensions: #{e.message}"
23
print_error e.backtrace
24
end
25
26
# Load all enabled extensions
27
# @note API fire for post_load
28
def self.load
29
BeEF::Core::Configuration.instance.load_extensions_config
30
get_enabled.each do |k, _v|
31
BeEF::Extension.load k
32
end
33
# API post extension load
34
BeEF::API::Registrar.instance.fire BeEF::API::Extensions, 'post_load'
35
rescue StandardError => e
36
print_error "Failed to load extensions: #{e.message}"
37
print_error e.backtrace
38
end
39
end
40
end
41
42