Refactored core.utility.expand_module_steps to make it easier to maintain and read

This commit is contained in:
Nils Franzen 2022-10-06 19:12:43 +02:00
parent e1fba7e5d7
commit 28c5eb1b16
1 changed files with 12 additions and 18 deletions

View File

@ -544,26 +544,20 @@ def nettacker_fuzzer_repeater_perform(arrays):
original_arrays[array_name] = processed_array original_arrays[array_name] = processed_array
return original_arrays return original_arrays
def expand_module_steps(content): def expand_module_steps(content):
original_content = copy.deepcopy(content) return [expand_protocol(x) for x in copy.deepcopy(content)]
for protocol_lib in content:
for sub_step in content[content.index(protocol_lib)]['steps']:
arrays = nettacker_fuzzer_repeater_perform(find_repeaters(sub_step, '', {}))
if arrays:
original_content[content.index(protocol_lib)]['steps'][
original_content[content.index(protocol_lib)]['steps'].index(sub_step)
] = generate_new_sub_steps(sub_step, class_to_value(arrays_to_matrix(arrays)), arrays)
else:
original_content[content.index(protocol_lib)]['steps'][
original_content[content.index(protocol_lib)]['steps'].index(sub_step)
] = [ # minimum 1 step in array
original_content[content.index(protocol_lib)]['steps'][
original_content[content.index(protocol_lib)]['steps'].index(sub_step)
]
]
return original_content
def expand_protocol(protocol):
protocol['steps'] = [expand_step(x) for x in protocol['steps']]
return protocol
def expand_step(step):
arrays = nettacker_fuzzer_repeater_perform(find_repeaters(step, '', {}))
if arrays:
return generate_new_sub_steps(step, class_to_value(arrays_to_matrix(arrays)), arrays)
else:
# Minimum 1 step in array
return [step]
def sort_dictonary(dictionary): def sort_dictonary(dictionary):
etc_flag = '...' in dictionary etc_flag = '...' in dictionary