metasploit-model 0.28.0-java → 0.29.0-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -1
- data/config/locales/en.yml +0 -171
- data/lib/metasploit/model.rb +0 -2
- data/lib/metasploit/model/spec.rb +0 -130
- data/lib/metasploit/model/version.rb +1 -1
- data/spec/support/shared/examples/metasploit/model/search/operator/help.rb +4 -6
- data/spec/support/shared/examples/metasploit/model/translation.rb +1 -1
- data/spec/support/shared/examples/search_association.rb +1 -1
- data/spec/support/shared/examples/search_with.rb +4 -2
- metadata +2 -348
- data/app/models/metasploit/model/module/ancestor/spec/template.rb +0 -125
- data/app/models/metasploit/model/module/class/spec/template.rb +0 -92
- data/app/models/metasploit/model/module/instance/spec/template.rb +0 -97
- data/app/models/metasploit/model/spec/template.rb +0 -277
- data/app/validators/derivation_validator.rb +0 -17
- data/app/validators/dynamic_length_validator.rb +0 -45
- data/lib/metasploit/model/architecture.rb +0 -342
- data/lib/metasploit/model/author.rb +0 -54
- data/lib/metasploit/model/authority.rb +0 -141
- data/lib/metasploit/model/authority/bid.rb +0 -10
- data/lib/metasploit/model/authority/cve.rb +0 -10
- data/lib/metasploit/model/authority/msb.rb +0 -10
- data/lib/metasploit/model/authority/osvdb.rb +0 -10
- data/lib/metasploit/model/authority/pmasa.rb +0 -10
- data/lib/metasploit/model/authority/secunia.rb +0 -10
- data/lib/metasploit/model/authority/us_cert_vu.rb +0 -10
- data/lib/metasploit/model/authority/waraxe.rb +0 -31
- data/lib/metasploit/model/authority/zdi.rb +0 -10
- data/lib/metasploit/model/derivation.rb +0 -109
- data/lib/metasploit/model/derivation/full_name.rb +0 -19
- data/lib/metasploit/model/email_address.rb +0 -124
- data/lib/metasploit/model/module.rb +0 -20
- data/lib/metasploit/model/module/action.rb +0 -52
- data/lib/metasploit/model/module/ancestor.rb +0 -491
- data/lib/metasploit/model/module/ancestor/spec.rb +0 -6
- data/lib/metasploit/model/module/architecture.rb +0 -34
- data/lib/metasploit/model/module/author.rb +0 -40
- data/lib/metasploit/model/module/class.rb +0 -403
- data/lib/metasploit/model/module/class/spec.rb +0 -6
- data/lib/metasploit/model/module/handler.rb +0 -29
- data/lib/metasploit/model/module/instance.rb +0 -622
- data/lib/metasploit/model/module/instance/spec.rb +0 -6
- data/lib/metasploit/model/module/path.rb +0 -159
- data/lib/metasploit/model/module/platform.rb +0 -32
- data/lib/metasploit/model/module/rank.rb +0 -85
- data/lib/metasploit/model/module/reference.rb +0 -32
- data/lib/metasploit/model/module/stance.rb +0 -16
- data/lib/metasploit/model/module/target.rb +0 -78
- data/lib/metasploit/model/module/target/architecture.rb +0 -34
- data/lib/metasploit/model/module/target/platform.rb +0 -34
- data/lib/metasploit/model/module/type.rb +0 -38
- data/lib/metasploit/model/platform.rb +0 -246
- data/lib/metasploit/model/real_pathname.rb +0 -16
- data/lib/metasploit/model/reference.rb +0 -104
- data/spec/app/models/metasploit/model/module/ancestor/spec/template_spec.rb +0 -174
- data/spec/app/models/metasploit/model/module/class/spec/template_spec.rb +0 -222
- data/spec/app/models/metasploit/model/module/instance/spec/template_spec.rb +0 -201
- data/spec/app/models/metasploit/model/search/operator/deprecated/app_spec.rb +0 -62
- data/spec/app/models/metasploit/model/search/operator/deprecated/author_spec.rb +0 -197
- data/spec/app/models/metasploit/model/search/operator/deprecated/authority_spec.rb +0 -135
- data/spec/app/models/metasploit/model/search/operator/deprecated/platform_spec.rb +0 -124
- data/spec/app/models/metasploit/model/search/operator/deprecated/ref_spec.rb +0 -387
- data/spec/app/models/metasploit/model/search/operator/deprecated/text_spec.rb +0 -399
- data/spec/app/models/metasploit/model/spec/template_spec.rb +0 -23
- data/spec/app/validators/derivation_validator_spec.rb +0 -92
- data/spec/app/validators/dynamic_length_validator_spec.rb +0 -293
- data/spec/dummy/app/models/dummy/architecture.rb +0 -92
- data/spec/dummy/app/models/dummy/author.rb +0 -15
- data/spec/dummy/app/models/dummy/authority.rb +0 -130
- data/spec/dummy/app/models/dummy/email_address.rb +0 -27
- data/spec/dummy/app/models/dummy/module/action.rb +0 -25
- data/spec/dummy/app/models/dummy/module/ancestor.rb +0 -67
- data/spec/dummy/app/models/dummy/module/architecture.rb +0 -19
- data/spec/dummy/app/models/dummy/module/author.rb +0 -28
- data/spec/dummy/app/models/dummy/module/class.rb +0 -69
- data/spec/dummy/app/models/dummy/module/instance.rb +0 -209
- data/spec/dummy/app/models/dummy/module/path.rb +0 -64
- data/spec/dummy/app/models/dummy/module/platform.rb +0 -19
- data/spec/dummy/app/models/dummy/module/rank.rb +0 -44
- data/spec/dummy/app/models/dummy/module/reference.rb +0 -19
- data/spec/dummy/app/models/dummy/module/target.rb +0 -62
- data/spec/dummy/app/models/dummy/module/target/architecture.rb +0 -19
- data/spec/dummy/app/models/dummy/module/target/platform.rb +0 -19
- data/spec/dummy/app/models/dummy/platform.rb +0 -58
- data/spec/dummy/app/models/dummy/reference.rb +0 -31
- data/spec/dummy/spec/factories/dummy/architectures.rb +0 -13
- data/spec/dummy/spec/factories/dummy/authorities.rb +0 -32
- data/spec/dummy/spec/factories/dummy/authors.rb +0 -8
- data/spec/dummy/spec/factories/dummy/email_addresses.rb +0 -8
- data/spec/dummy/spec/factories/dummy/module/actions.rb +0 -13
- data/spec/dummy/spec/factories/dummy/module/ancestors.rb +0 -45
- data/spec/dummy/spec/factories/dummy/module/architectures.rb +0 -35
- data/spec/dummy/spec/factories/dummy/module/authors.rb +0 -10
- data/spec/dummy/spec/factories/dummy/module/classes.rb +0 -40
- data/spec/dummy/spec/factories/dummy/module/instances.rb +0 -86
- data/spec/dummy/spec/factories/dummy/module/paths.rb +0 -16
- data/spec/dummy/spec/factories/dummy/module/platforms.rb +0 -35
- data/spec/dummy/spec/factories/dummy/module/ranks.rb +0 -14
- data/spec/dummy/spec/factories/dummy/module/references.rb +0 -17
- data/spec/dummy/spec/factories/dummy/module/target/architectures.rb +0 -40
- data/spec/dummy/spec/factories/dummy/module/target/platforms.rb +0 -41
- data/spec/dummy/spec/factories/dummy/module/targets.rb +0 -46
- data/spec/dummy/spec/factories/dummy/platforms.rb +0 -3
- data/spec/dummy/spec/factories/dummy/references.rb +0 -26
- data/spec/factories/metasploit/model/architectures.rb +0 -6
- data/spec/factories/metasploit/model/authorities.rb +0 -28
- data/spec/factories/metasploit/model/authors.rb +0 -9
- data/spec/factories/metasploit/model/email_addresses.rb +0 -14
- data/spec/factories/metasploit/model/module/actions.rb +0 -9
- data/spec/factories/metasploit/model/module/ancestors.rb +0 -180
- data/spec/factories/metasploit/model/module/architectures.rb +0 -15
- data/spec/factories/metasploit/model/module/classes.rb +0 -47
- data/spec/factories/metasploit/model/module/handlers.rb +0 -3
- data/spec/factories/metasploit/model/module/instances.rb +0 -83
- data/spec/factories/metasploit/model/module/paths.rb +0 -51
- data/spec/factories/metasploit/model/module/platforms.rb +0 -15
- data/spec/factories/metasploit/model/module/ranks.rb +0 -9
- data/spec/factories/metasploit/model/module/references.rb +0 -11
- data/spec/factories/metasploit/model/module/stances.rb +0 -3
- data/spec/factories/metasploit/model/module/targets.rb +0 -22
- data/spec/factories/metasploit/model/module/types.rb +0 -5
- data/spec/factories/metasploit/model/references.rb +0 -88
- data/spec/lib/metasploit/model/architecture_spec.rb +0 -52
- data/spec/lib/metasploit/model/author_spec.rb +0 -6
- data/spec/lib/metasploit/model/authority/bid_spec.rb +0 -17
- data/spec/lib/metasploit/model/authority/cve_spec.rb +0 -17
- data/spec/lib/metasploit/model/authority/msb_spec.rb +0 -17
- data/spec/lib/metasploit/model/authority/osvdb_spec.rb +0 -17
- data/spec/lib/metasploit/model/authority/pmasa_spec.rb +0 -17
- data/spec/lib/metasploit/model/authority/secunia_spec.rb +0 -17
- data/spec/lib/metasploit/model/authority/us_cert_vu_spec.rb +0 -17
- data/spec/lib/metasploit/model/authority/waraxe_spec.rb +0 -51
- data/spec/lib/metasploit/model/authority/zdi_spec.rb +0 -21
- data/spec/lib/metasploit/model/authority_spec.rb +0 -10
- data/spec/lib/metasploit/model/derivation/full_name_spec.rb +0 -75
- data/spec/lib/metasploit/model/derivation_spec.rb +0 -217
- data/spec/lib/metasploit/model/email_address_spec.rb +0 -19
- data/spec/lib/metasploit/model/module/action_spec.rb +0 -6
- data/spec/lib/metasploit/model/module/ancestor_spec.rb +0 -6
- data/spec/lib/metasploit/model/module/architecture_spec.rb +0 -9
- data/spec/lib/metasploit/model/module/author_spec.rb +0 -6
- data/spec/lib/metasploit/model/module/class_spec.rb +0 -19
- data/spec/lib/metasploit/model/module/handler_spec.rb +0 -61
- data/spec/lib/metasploit/model/module/instance_spec.rb +0 -183
- data/spec/lib/metasploit/model/module/path_spec.rb +0 -6
- data/spec/lib/metasploit/model/module/platform_spec.rb +0 -9
- data/spec/lib/metasploit/model/module/rank_spec.rb +0 -29
- data/spec/lib/metasploit/model/module/reference_spec.rb +0 -9
- data/spec/lib/metasploit/model/module/stance_spec.rb +0 -30
- data/spec/lib/metasploit/model/module/target/architecture_spec.rb +0 -9
- data/spec/lib/metasploit/model/module/target/platform_spec.rb +0 -9
- data/spec/lib/metasploit/model/module/target_spec.rb +0 -9
- data/spec/lib/metasploit/model/module/type_spec.rb +0 -125
- data/spec/lib/metasploit/model/platform_spec.rb +0 -100
- data/spec/lib/metasploit/model/reference_spec.rb +0 -21
- data/spec/support/shared/contexts/metasploit/model/module/ancestor/contents/metasploit_module.rb +0 -12
- data/spec/support/shared/contexts/metasploit/model/module/ancestor/factory/contents.rb +0 -10
- data/spec/support/shared/contexts/metasploit/model/module/ancestor/factory/contents/metasploit_module.rb +0 -15
- data/spec/support/shared/examples/derives.rb +0 -115
- data/spec/support/shared/examples/metasploit/model/architecture.rb +0 -425
- data/spec/support/shared/examples/metasploit/model/architecture/seed.rb +0 -25
- data/spec/support/shared/examples/metasploit/model/author.rb +0 -27
- data/spec/support/shared/examples/metasploit/model/authority.rb +0 -124
- data/spec/support/shared/examples/metasploit/model/authority/seed.rb +0 -49
- data/spec/support/shared/examples/metasploit/model/email_address.rb +0 -220
- data/spec/support/shared/examples/metasploit/model/module/action.rb +0 -26
- data/spec/support/shared/examples/metasploit/model/module/ancestor.rb +0 -2004
- data/spec/support/shared/examples/metasploit/model/module/ancestor/payload_factory.rb +0 -63
- data/spec/support/shared/examples/metasploit/model/module/architecture.rb +0 -36
- data/spec/support/shared/examples/metasploit/model/module/author.rb +0 -29
- data/spec/support/shared/examples/metasploit/model/module/class.rb +0 -1514
- data/spec/support/shared/examples/metasploit/model/module/handler.rb +0 -21
- data/spec/support/shared/examples/metasploit/model/module/instance.rb +0 -1384
- data/spec/support/shared/examples/metasploit/model/module/instance/class_methods.rb +0 -537
- data/spec/support/shared/examples/metasploit/model/module/instance/is_not_stanced_with_module_type.rb +0 -22
- data/spec/support/shared/examples/metasploit/model/module/instance/is_stanced_with_module_type.rb +0 -38
- data/spec/support/shared/examples/metasploit/model/module/instance/validates/dynamic_length_of.rb +0 -131
- data/spec/support/shared/examples/metasploit/model/module/path.rb +0 -493
- data/spec/support/shared/examples/metasploit/model/module/platform.rb +0 -36
- data/spec/support/shared/examples/metasploit/model/module/rank.rb +0 -92
- data/spec/support/shared/examples/metasploit/model/module/reference.rb +0 -16
- data/spec/support/shared/examples/metasploit/model/module/target.rb +0 -29
- data/spec/support/shared/examples/metasploit/model/module/target/architecture.rb +0 -56
- data/spec/support/shared/examples/metasploit/model/module/target/platform.rb +0 -56
- data/spec/support/shared/examples/metasploit/model/platform.rb +0 -213
- data/spec/support/shared/examples/metasploit/model/real_pathname.rb +0 -29
- data/spec/support/shared/examples/metasploit/model/reference.rb +0 -410
- data/spec/support/shared/examples/search/query/metasploit/model/search/operator/deprecated/app.rb +0 -44
- data/spec/support/shared/examples/search/query/metasploit/model/search/operator/deprecated/authority.rb +0 -72
- data/spec/support/templates/metasploit/model/module/ancestors/_attributes.rb.erb +0 -9
- data/spec/support/templates/metasploit/model/module/ancestors/_methods.rb.erb +0 -8
- data/spec/support/templates/metasploit/model/module/ancestors/_validations.rb.erb +0 -6
- data/spec/support/templates/metasploit/model/module/ancestors/base.rb.erb +0 -3
- data/spec/support/templates/metasploit/model/module/ancestors/module_types/_auxiliary.rb.erb +0 -1
- data/spec/support/templates/metasploit/model/module/ancestors/module_types/_encoder.rb.erb +0 -1
- data/spec/support/templates/metasploit/model/module/ancestors/module_types/_exploit.rb.erb +0 -1
- data/spec/support/templates/metasploit/model/module/ancestors/module_types/_non_payload.rb.erb +0 -5
- data/spec/support/templates/metasploit/model/module/ancestors/module_types/_nop.rb.erb +0 -1
- data/spec/support/templates/metasploit/model/module/ancestors/module_types/_payload.rb.erb +0 -4
- data/spec/support/templates/metasploit/model/module/ancestors/module_types/_post.rb.erb +0 -1
- data/spec/support/templates/metasploit/model/module/ancestors/payload_types/_handled.rb.erb +0 -20
- data/spec/support/templates/metasploit/model/module/ancestors/payload_types/_single.rb.erb +0 -1
- data/spec/support/templates/metasploit/model/module/ancestors/payload_types/_stage.rb.erb +0 -0
- data/spec/support/templates/metasploit/model/module/ancestors/payload_types/_stager.rb.erb +0 -1
- data/spec/support/templates/metasploit/model/module/classes/_methods.rb.erb +0 -9
@@ -1,35 +0,0 @@
|
|
1
|
-
FactoryGirl.define do
|
2
|
-
factory :dummy_module_architecture,
|
3
|
-
class: Dummy::Module::Architecture,
|
4
|
-
traits: [
|
5
|
-
:metasploit_model_base,
|
6
|
-
:metasploit_model_module_architecture
|
7
|
-
] do
|
8
|
-
ignore do
|
9
|
-
# have to use module_type from metasploit_model_module_architecture trait to ensure module_instance will support
|
10
|
-
# module architectures.
|
11
|
-
module_class { FactoryGirl.create(:dummy_module_class, module_type: module_type) }
|
12
|
-
end
|
13
|
-
|
14
|
-
architecture { generate :dummy_architecture }
|
15
|
-
module_instance {
|
16
|
-
FactoryGirl.build(
|
17
|
-
:dummy_module_instance,
|
18
|
-
# disable module_instance factory from building module_architectures since this factory is already building
|
19
|
-
# one
|
20
|
-
module_architectures_length: 0,
|
21
|
-
module_class: module_class
|
22
|
-
)
|
23
|
-
}
|
24
|
-
|
25
|
-
after(:build) do |module_architecture|
|
26
|
-
module_instance = module_architecture.module_instance
|
27
|
-
|
28
|
-
if module_instance
|
29
|
-
unless module_instance.module_architectures.include? module_architecture
|
30
|
-
module_instance.module_architectures << module_architecture
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,10 +0,0 @@
|
|
1
|
-
FactoryGirl.define do
|
2
|
-
factory :dummy_module_author, :class => Dummy::Module::Author do
|
3
|
-
association :author, :factory => :dummy_author
|
4
|
-
association :module_instance, :factory => :dummy_module_instance
|
5
|
-
|
6
|
-
factory :full_dummy_module_author do
|
7
|
-
association :email_address, :factory => :dummy_email_address
|
8
|
-
end
|
9
|
-
end
|
10
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
FactoryGirl.define do
|
2
|
-
factory :dummy_module_class,
|
3
|
-
:class => Dummy::Module::Class,
|
4
|
-
:traits => [
|
5
|
-
:metasploit_model_base,
|
6
|
-
:metasploit_model_module_class
|
7
|
-
] do
|
8
|
-
#
|
9
|
-
# Associations
|
10
|
-
#
|
11
|
-
|
12
|
-
# depends on module_type and payload_type
|
13
|
-
ancestors {
|
14
|
-
ancestors = []
|
15
|
-
|
16
|
-
# ignored attribute from factory; NOT the instance attribute
|
17
|
-
case module_type
|
18
|
-
when 'payload'
|
19
|
-
# ignored attribute from factory; NOT the instance attribute
|
20
|
-
case payload_type
|
21
|
-
when 'single'
|
22
|
-
ancestors << FactoryGirl.create(:single_payload_dummy_module_ancestor)
|
23
|
-
when 'staged'
|
24
|
-
ancestors << FactoryGirl.create(:stage_payload_dummy_module_ancestor)
|
25
|
-
ancestors << FactoryGirl.create(:stager_payload_dummy_module_ancestor)
|
26
|
-
else
|
27
|
-
raise ArgumentError,
|
28
|
-
"Don't know how to create Dummy::Module::Class#ancestors " \
|
29
|
-
"for Dummy::Module::Class#payload_type (#{payload_type})"
|
30
|
-
end
|
31
|
-
else
|
32
|
-
ancestors << FactoryGirl.create(:dummy_module_ancestor, :module_type => module_type)
|
33
|
-
end
|
34
|
-
|
35
|
-
ancestors
|
36
|
-
}
|
37
|
-
|
38
|
-
rank { generate :dummy_module_rank }
|
39
|
-
end
|
40
|
-
end
|
@@ -1,86 +0,0 @@
|
|
1
|
-
FactoryGirl.define do
|
2
|
-
factory_by_attribute = {
|
3
|
-
actions: :dummy_module_action,
|
4
|
-
module_references: :dummy_module_reference,
|
5
|
-
}
|
6
|
-
|
7
|
-
factory :dummy_module_instance,
|
8
|
-
:class => Dummy::Module::Instance,
|
9
|
-
:traits => [
|
10
|
-
:metasploit_model_base,
|
11
|
-
:metasploit_model_module_instance
|
12
|
-
] do
|
13
|
-
#
|
14
|
-
# Associations
|
15
|
-
#
|
16
|
-
|
17
|
-
association :module_class, :factory => :dummy_module_class
|
18
|
-
|
19
|
-
# attribute must be called after association is created so that support_stance? has access to module_class
|
20
|
-
# needs to be declared explicitly after association as calling trait here (instead as an argument to factory
|
21
|
-
# :traits) did not work.
|
22
|
-
stance {
|
23
|
-
if stanced?
|
24
|
-
generate :metasploit_model_module_stance
|
25
|
-
else
|
26
|
-
nil
|
27
|
-
end
|
28
|
-
}
|
29
|
-
|
30
|
-
# needs to be an after(:build) and not an after(:create) to ensure counted associations are populated before being
|
31
|
-
# validated.
|
32
|
-
after(:build) do |dummy_module_instance, evaluator|
|
33
|
-
dummy_module_instance.module_authors = evaluator.module_authors_length.times.collect {
|
34
|
-
FactoryGirl.build(:dummy_module_author, module_instance: dummy_module_instance)
|
35
|
-
}
|
36
|
-
|
37
|
-
module_class = dummy_module_instance.module_class
|
38
|
-
|
39
|
-
# only attempt to build supported associations if the module_class is valid because supports depends on a valid
|
40
|
-
# module_type and validating the module_class will derive module_type.
|
41
|
-
if module_class && module_class.valid?
|
42
|
-
factory_by_attribute.each do |attribute, factory|
|
43
|
-
if dummy_module_instance.allows?(attribute)
|
44
|
-
length = evaluator.send("#{attribute}_length")
|
45
|
-
|
46
|
-
collection = length.times.collect {
|
47
|
-
FactoryGirl.build(factory, module_instance: dummy_module_instance)
|
48
|
-
}
|
49
|
-
|
50
|
-
dummy_module_instance.send("#{attribute}=", collection)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
# make sure targets are generated first so that module_architectures and module_platforms can be include
|
55
|
-
# the targets' architectures and platforms.
|
56
|
-
if dummy_module_instance.allows?(:targets)
|
57
|
-
# factory adds built module_targets to module_instance.
|
58
|
-
FactoryGirl.build_list(
|
59
|
-
:dummy_module_target,
|
60
|
-
evaluator.targets_length,
|
61
|
-
module_instance: dummy_module_instance
|
62
|
-
)
|
63
|
-
# module_architectures and module_platforms will be derived from targets
|
64
|
-
else
|
65
|
-
# if there are no targets, then architectures and platforms need to be explicitly defined on module instance
|
66
|
-
# since they can't be derived from anything
|
67
|
-
[:architecture, :platform].each do |suffix|
|
68
|
-
attribute = "module_#{suffix.to_s.pluralize}".to_sym
|
69
|
-
|
70
|
-
if dummy_module_instance.allows?(attribute)
|
71
|
-
factory = "dummy_module_#{suffix}"
|
72
|
-
length = evaluator.send("#{attribute}_length")
|
73
|
-
|
74
|
-
collection = FactoryGirl.build_list(
|
75
|
-
factory,
|
76
|
-
length,
|
77
|
-
module_instance: dummy_module_instance
|
78
|
-
)
|
79
|
-
dummy_module_instance.send("#{attribute}=", collection)
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
FactoryGirl.define do
|
2
|
-
# Used to test {Metasploit::Model::Module::Path} and to ensure that traits work when used in factories.
|
3
|
-
factory :dummy_module_path,
|
4
|
-
:aliases => [
|
5
|
-
:unnamed_dummy_module_path
|
6
|
-
],
|
7
|
-
:class => Dummy::Module::Path,
|
8
|
-
:traits => [
|
9
|
-
:unnamed_metasploit_model_module_path
|
10
|
-
] do
|
11
|
-
factory :named_dummy_module_path,
|
12
|
-
:traits => [
|
13
|
-
:named_metasploit_model_module_path
|
14
|
-
]
|
15
|
-
end
|
16
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
FactoryGirl.define do
|
2
|
-
factory :dummy_module_platform,
|
3
|
-
class: Dummy::Module::Platform,
|
4
|
-
traits: [
|
5
|
-
:metasploit_model_base,
|
6
|
-
:metasploit_model_module_platform
|
7
|
-
] do
|
8
|
-
ignore do
|
9
|
-
# have to use module_type from metasploit_model_module_platform trait to ensure module_instance will support
|
10
|
-
# module platforms.
|
11
|
-
module_class { FactoryGirl.create(:dummy_module_class, module_type: module_type) }
|
12
|
-
end
|
13
|
-
|
14
|
-
module_instance {
|
15
|
-
FactoryGirl.build(
|
16
|
-
:dummy_module_instance,
|
17
|
-
module_class: module_class,
|
18
|
-
# disable module_instance factory from building module_platforms since this factory is already building one
|
19
|
-
module_platforms_length: 0
|
20
|
-
)
|
21
|
-
}
|
22
|
-
platform { generate :dummy_platform }
|
23
|
-
|
24
|
-
after(:build) do |module_platform|
|
25
|
-
module_instance = module_platform.module_instance
|
26
|
-
|
27
|
-
if module_instance
|
28
|
-
unless module_instance.module_platforms.include? module_platform
|
29
|
-
module_instance.module_platforms << module_platform
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
@@ -1,14 +0,0 @@
|
|
1
|
-
FactoryGirl.define do
|
2
|
-
# Dummy::Module::Rank does not have a factory because all valid records are seeded, so it only has a sequence to grab
|
3
|
-
# a seeded record
|
4
|
-
|
5
|
-
names = Metasploit::Model::Module::Rank::NUMBER_BY_NAME.keys
|
6
|
-
|
7
|
-
sequence :dummy_module_rank do |n|
|
8
|
-
name = names[n % names.length]
|
9
|
-
|
10
|
-
rank = Dummy::Module::Rank.with_name(name)
|
11
|
-
|
12
|
-
rank
|
13
|
-
end
|
14
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
FactoryGirl.define do
|
2
|
-
factory :dummy_module_reference,
|
3
|
-
class: Dummy::Module::Reference,
|
4
|
-
traits: [
|
5
|
-
:metasploit_model_base,
|
6
|
-
:metasploit_model_module_reference
|
7
|
-
] do
|
8
|
-
ignore do
|
9
|
-
# have to use module_type from metasploit_model_module_reference trait to ensure module_instance will support
|
10
|
-
# module references.
|
11
|
-
module_class { FactoryGirl.create(:dummy_module_class, module_type: module_type) }
|
12
|
-
end
|
13
|
-
|
14
|
-
module_instance { FactoryGirl.create(:dummy_module_instance, module_class: module_class) }
|
15
|
-
association :reference, factory: :dummy_reference
|
16
|
-
end
|
17
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
FactoryGirl.define do
|
2
|
-
factory :dummy_module_target_architecture,
|
3
|
-
class: Dummy::Module::Target::Architecture,
|
4
|
-
traits: [
|
5
|
-
:metasploit_model_base
|
6
|
-
] do
|
7
|
-
architecture { generate :dummy_architecture }
|
8
|
-
association :module_target,
|
9
|
-
factory: :dummy_module_target,
|
10
|
-
strategy: :build,
|
11
|
-
# disable module_target factory from building target_architectures since this factory is already
|
12
|
-
# building one
|
13
|
-
target_architectures_length: 0
|
14
|
-
|
15
|
-
after(:build) do |module_target_architecture|
|
16
|
-
module_target = module_target_architecture.module_target
|
17
|
-
|
18
|
-
if module_target
|
19
|
-
unless module_target.target_architectures.include? module_target_architecture
|
20
|
-
module_target.target_architectures << module_target_architecture
|
21
|
-
end
|
22
|
-
|
23
|
-
architecture = module_target_architecture.architecture
|
24
|
-
module_instance = module_target.module_instance
|
25
|
-
|
26
|
-
if architecture && module_instance
|
27
|
-
actual_architecture_set = module_instance.module_architectures.map(&:architecture)
|
28
|
-
|
29
|
-
unless actual_architecture_set.include? architecture
|
30
|
-
module_instance.module_architectures << FactoryGirl.build(
|
31
|
-
:dummy_module_architecture,
|
32
|
-
architecture: architecture,
|
33
|
-
module_instance: module_instance
|
34
|
-
)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
FactoryGirl.define do
|
2
|
-
factory :dummy_module_target_platform,
|
3
|
-
class: Dummy::Module::Target::Platform,
|
4
|
-
traits: [
|
5
|
-
:metasploit_model_base
|
6
|
-
] do
|
7
|
-
association :module_target,
|
8
|
-
factory: :dummy_module_target,
|
9
|
-
strategy: :build,
|
10
|
-
# disable module_target factory from building target_platforms since this factory is already
|
11
|
-
# building one
|
12
|
-
target_platforms_length: 0
|
13
|
-
|
14
|
-
platform { generate :dummy_platform }
|
15
|
-
|
16
|
-
after(:build) do |module_target_platform|
|
17
|
-
module_target = module_target_platform.module_target
|
18
|
-
|
19
|
-
if module_target
|
20
|
-
unless module_target.target_platforms.include? module_target_platform
|
21
|
-
module_target.target_platforms << module_target_platform
|
22
|
-
end
|
23
|
-
|
24
|
-
module_instance = module_target.module_instance
|
25
|
-
platform = module_target_platform.platform
|
26
|
-
|
27
|
-
if module_instance && platform
|
28
|
-
actual_platform_set = module_instance.module_platforms.map(&:platform)
|
29
|
-
|
30
|
-
unless actual_platform_set.include? platform
|
31
|
-
module_instance.module_platforms << FactoryGirl.build(
|
32
|
-
:dummy_module_platform,
|
33
|
-
module_instance: module_instance,
|
34
|
-
platform: platform
|
35
|
-
)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
FactoryGirl.define do
|
2
|
-
factory :dummy_module_target,
|
3
|
-
:class => Dummy::Module::Target,
|
4
|
-
:traits => [
|
5
|
-
:metasploit_model_base,
|
6
|
-
:metasploit_model_module_target
|
7
|
-
] do
|
8
|
-
ignore do
|
9
|
-
# have to use module_type from metasploit_model_module_target trait to ensure module_instance will support
|
10
|
-
# module targets.
|
11
|
-
module_class { FactoryGirl.create(:dummy_module_class, module_type: module_type) }
|
12
|
-
end
|
13
|
-
|
14
|
-
module_instance {
|
15
|
-
# module_instance MUST be built because it will fail validation without targets
|
16
|
-
FactoryGirl.build(
|
17
|
-
:dummy_module_instance,
|
18
|
-
module_class: module_class,
|
19
|
-
# disable module_instance factory's after(:build) from building module_targets since this factory is already
|
20
|
-
# building it and if they both build module_targets, then the validations will detect a mismatch.
|
21
|
-
targets_length: 0
|
22
|
-
)
|
23
|
-
}
|
24
|
-
|
25
|
-
after(:build) { |dummy_module_target, evaluator|
|
26
|
-
[:architecture, :platform].each do |infix|
|
27
|
-
attribute = "target_#{infix.to_s.pluralize}"
|
28
|
-
factory = "dummy_module_target_#{infix}"
|
29
|
-
length = evaluator.send("#{attribute}_length")
|
30
|
-
|
31
|
-
# factories add selves to associations on dummy_module_target
|
32
|
-
FactoryGirl.build_list(
|
33
|
-
factory,
|
34
|
-
length,
|
35
|
-
module_target: dummy_module_target
|
36
|
-
)
|
37
|
-
end
|
38
|
-
|
39
|
-
module_instance = dummy_module_target.module_instance
|
40
|
-
|
41
|
-
unless module_instance.targets.include? dummy_module_target
|
42
|
-
module_instance.targets << dummy_module_target
|
43
|
-
end
|
44
|
-
}
|
45
|
-
end
|
46
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
FactoryGirl.define do
|
2
|
-
factory :dummy_reference,
|
3
|
-
:class => Dummy::Reference,
|
4
|
-
:traits => [
|
5
|
-
:metasploit_model_base,
|
6
|
-
:metasploit_model_reference
|
7
|
-
] do
|
8
|
-
#
|
9
|
-
# Associations
|
10
|
-
#
|
11
|
-
|
12
|
-
association :authority, :factory => :dummy_authority
|
13
|
-
|
14
|
-
factory :obsolete_dummy_reference,
|
15
|
-
:traits => [
|
16
|
-
:obsolete_metasploit_model_reference
|
17
|
-
] do
|
18
|
-
association :authority, :factory => :obsolete_dummy_authority
|
19
|
-
end
|
20
|
-
|
21
|
-
factory :url_dummy_reference,
|
22
|
-
:traits => [
|
23
|
-
:url_metasploit_model_reference
|
24
|
-
]
|
25
|
-
end
|
26
|
-
end
|
@@ -1,6 +0,0 @@
|
|
1
|
-
FactoryGirl.define do
|
2
|
-
sequence :metasploit_model_architecture_abbreviation, Metasploit::Model::Architecture::ABBREVIATIONS.cycle
|
3
|
-
sequence :metasploit_model_architecture_bits, Metasploit::Model::Architecture::BITS.cycle
|
4
|
-
sequence :metasploit_model_architecture_endianness, Metasploit::Model::Architecture::ENDIANNESSES.cycle
|
5
|
-
sequence :metasploit_model_architecture_family, Metasploit::Model::Architecture::FAMILIES.cycle
|
6
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
FactoryGirl.define do
|
2
|
-
sequence :metasploit_model_authority_abbreviation do |n|
|
3
|
-
# can't use '-' as {Metasploit::Model::Search::Operator::Deprecated::Ref} treats '-' as separating authority
|
4
|
-
# abbreviation from reference designation.
|
5
|
-
"METASPLOIT_MODEL_AUTHORITY#{n}"
|
6
|
-
end
|
7
|
-
|
8
|
-
sequence :metasploit_model_authority_summary do |n|
|
9
|
-
"Metasploit::Model::Authority #{n}"
|
10
|
-
end
|
11
|
-
|
12
|
-
sequence :metasploit_model_authority_url do |n|
|
13
|
-
"http://example.com/metasploit/model/authority/#{n}"
|
14
|
-
end
|
15
|
-
|
16
|
-
trait :metasploit_model_authority do
|
17
|
-
abbreviation { generate :metasploit_model_authority_abbreviation }
|
18
|
-
end
|
19
|
-
|
20
|
-
trait :full_metasploit_model_authority do
|
21
|
-
summary { generate :metasploit_model_authority_summary }
|
22
|
-
url { generate :metasploit_model_authority_url }
|
23
|
-
end
|
24
|
-
|
25
|
-
trait :obsolete_metasploit_model_authority do
|
26
|
-
obsolete { true }
|
27
|
-
end
|
28
|
-
end
|