hackagent.attacks.techniques.registry
Name → class lookup for the attacks a campaign can run.
Attack modules are imported on first use, so naming an attack does not pull in the image dependencies of FC or MML.
get_attack_class
def get_attack_class(name: str) -> AttackType
Return the attack class registered under name.
params_schema
def params_schema(name: str) -> Optional[dict[str, Any]]
JSON schema of name's parameters, roles left out.
A role field holds a callable, which has no JSON schema, so the schema
comes from a model of the plain parameters. Those are exactly the keys
a campaign file puts under parameters, which is what every form and
planner catalogue needs to offer.