ConfigGenerator

duetector.tools.config_generator._recursive_load(config_scope: str, config_dict: dict, default_config: dict)[source]

Support .(dot) separated config_scope

Example

>>> _recursive_load("monitor.bcc", {}, {"auto_init": True})
{'monitor': {'bcc': {'auto_init': True}}}
class duetector.tools.config_generator.ConfigGenerator(load: bool = True, path: bool | None = None, load_env: bool = True, include_extension: bool = True)[source]

Bases: object

Tools for generate config file by inspecting all modules.

Parameters:
  • load (bool) – Load config file or not.

  • path (str) – Path to config file.

  • load_env (bool) – Load environment variables or not.

  • include_extension (bool) – Include extensions or not.

HEADLINES = "# This is a auto generated config file for duetector🔍\n# You can modify this file to change duetector's behavior\n# For more information, please visit https://github.com/hitsz-ids/duetector\n\n# All config keys will be converted to lower case.\n# It's ok to use upper case or camel case for readability.\n\n"
generate(dump_path)[source]

Generate config file to dump_path.

managers = [<class 'duetector.managers.filter.FilterManager'>, <class 'duetector.managers.tracer.TracerManager'>, <class 'duetector.managers.collector.CollectorManager'>, <class 'duetector.managers.analyzer.AnalyzerManager'>, <class 'duetector.managers.injector.InjectorManager'>]

All managers to inspect.

monitors = [<class 'duetector.monitors.bcc_monitor.BccMonitor'>, <class 'duetector.monitors.sh_monitor.ShMonitor'>, <class 'duetector.monitors.subprocess_monitor.SubprocessMonitor'>]

All monitors to inspect.

others = [<class 'duetector.service.config.ServerConfig'>]