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

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

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

测试验证:✓ 重组后所有插件功能正常
2025-08-09 16:24:26 +08:00

77 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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接口
```go
// 老版本插件函数
func PluginFunc(*common.HostInfo) error
// 通过适配器转换为
type Plugin interface {
Scanner
Exploiter
// ...其他接口方法
}
```
## 扩展方式
如需添加新的适配器类型:
1. 在此目录创建对应的适配器框架文件
2. 在子目录中实现具体的适配器插件
3. 在 core/Registry.go 中注册适配器插件
4. 更新相关文档
## 使用示例
适配器插件会自动注册,使用方式与标准插件相同:
```bash
# 使用老版本插件(通过适配器)
fscan -h target -m ms17010,smb2
# 混合使用新旧插件
fscan -h target -m mysql,redis,ms17010
```
适配器确保了新旧插件的完全兼容性和统一体验。