fscan/adapters
ZacharyZcR 32223db6e3 refactor: 重新组织插件架构,分离老版本插件和适配器
目录结构优化:
- 保留 plugins/ 目录下的老版本插件代码不变
- 新增 adapters/ 目录专门存放适配器相关代码
- adapters/legacy_plugin.go - 老版本插件适配器框架
- adapters/legacy_plugins/ - 老版本插件适配器实现

架构分离:
- plugins/ - 原始老版本插件代码,保持不变
- plugins/services/ - 新架构服务插件
- adapters/ - 各种适配器,实现架构间桥接

设计原则:
- 零侵入性:老版本插件完全不需要修改
- 分离关注点:不同类型的代码放在合适的目录
- 统一管理:通过注册表统一管理所有插件

测试验证:✓ 重组后所有插件功能正常
2025-08-09 16:24:26 +08:00
..
legacy_plugins refactor: 重新组织插件架构,分离老版本插件和适配器 2025-08-09 16:24:26 +08:00
legacy_plugin.go refactor: 重新组织插件架构,分离老版本插件和适配器 2025-08-09 16:24:26 +08:00
README.md refactor: 重新组织插件架构,分离老版本插件和适配器 2025-08-09 16:24:26 +08:00

Adapters Directory

这个目录包含了各种适配器实现,用于将不同架构的代码无缝集成到新的插件系统中。

目录结构

adapters/
├── README.md                 # 本文档
├── legacy_plugin.go          # 老版本插件适配器框架
└── legacy_plugins/           # 老版本插件适配器实现
    ├── README.md             # 老版本插件适配器说明
    ├── ms17010/              # MS17010漏洞检测适配器
    ├── smbghost/             # SMBGhost漏洞检测适配器
    ├── smb/                  # SMB服务检测适配器
    ├── smb2/                 # SMB2服务检测适配器
    ├── rdp/                  # RDP服务检测适配器
    ├── netbios/              # NetBIOS信息收集适配器
    └── elasticsearch/        # Elasticsearch服务检测适配器

设计原则

1. 分离关注点

  • plugins/: 存放原始的老版本插件代码,保持不变
  • plugins/services/: 存放新架构的服务插件
  • adapters/: 存放各种适配器,实现不同架构间的桥接

2. 零侵入性

  • 老版本插件代码完全不需要修改
  • 通过适配器模式实现无缝集成
  • 保持原有功能和行为不变

3. 统一管理

  • 所有插件(新架构 + 适配器)通过统一的插件注册表管理
  • 提供一致的调用接口和结果格式
  • 支持统一的配置和控制机制

适配器类型

LegacyPlugin适配器

将老版本插件函数适配为新架构的Plugin接口

// 老版本插件函数
func PluginFunc(*common.HostInfo) error

// 通过适配器转换为
type Plugin interface {
    Scanner
    Exploiter
    // ...其他接口方法
}

扩展方式

如需添加新的适配器类型:

  1. 在此目录创建对应的适配器框架文件
  2. 在子目录中实现具体的适配器插件
  3. 在 core/Registry.go 中注册适配器插件
  4. 更新相关文档

使用示例

适配器插件会自动注册,使用方式与标准插件相同:

# 使用老版本插件(通过适配器)
fscan -h target -m ms17010,smb2

# 混合使用新旧插件
fscan -h target -m mysql,redis,ms17010

适配器确保了新旧插件的完全兼容性和统一体验。