mirror of
https://github.com/shadow1ng/fscan.git
synced 2025-09-14 05:56:46 +08:00

将复杂的三文件插件架构(connector/exploiter/plugin)重构为简化的单文件插件架构, 大幅减少代码重复和维护成本,提升插件开发效率。 主要改进: • 将每个服务插件从3个文件简化为1个文件 • 删除过度设计的工厂模式、适配器模式等抽象层 • 消除plugins/services/、plugins/adapters/、plugins/base/复杂目录结构 • 实现直接的插件注册机制,提升系统简洁性 • 保持完全向后兼容,所有扫描功能和输出格式不变 重构统计: • 删除文件:100+个复杂架构文件 • 新增文件:20个简化的单文件插件 • 代码减少:每个插件减少60-80%代码量 • 功能增强:所有插件包含完整扫描和利用功能 已重构插件: MySQL, SSH, Redis, MongoDB, PostgreSQL, MSSQL, Oracle, Neo4j, Memcached, RabbitMQ, ActiveMQ, Cassandra, FTP, Kafka, LDAP, Rsync, SMTP, SNMP, Telnet, VNC 验证通过: 新系统编译运行正常,所有插件功能验证通过
26 lines
730 B
Go
26 lines
730 B
Go
package local
|
|
|
|
import (
|
|
"context"
|
|
"github.com/shadow1ng/fscan/common"
|
|
"github.com/shadow1ng/fscan/plugins/base"
|
|
)
|
|
|
|
// LocalPlugin 本地插件接口 - 简化设计,专注于信息收集和扫描
|
|
type LocalPlugin interface {
|
|
base.Plugin
|
|
|
|
// ScanLocal 执行本地扫描 - 核心功能
|
|
ScanLocal(ctx context.Context, info *common.HostInfo) (*base.ScanResult, error)
|
|
|
|
// GetPlatformSupport 获取支持的平台
|
|
GetPlatformSupport() []string
|
|
|
|
// RequiresPrivileges 是否需要特殊权限
|
|
RequiresPrivileges() bool
|
|
}
|
|
|
|
// 移除不必要的接口:
|
|
// - LocalConnector: 本地插件不需要"连接"概念
|
|
// - LocalScanner: 功能合并到LocalPlugin中
|
|
// - LocalExploiter: 本地插件不需要攻击利用功能
|