package services import ( "context" "fmt" "github.com/shadow1ng/fscan/common" "github.com/shadow1ng/fscan/plugins" ) type OraclePlugin struct { plugins.BasePlugin } func NewOraclePlugin() *OraclePlugin { return &OraclePlugin{ BasePlugin: plugins.NewBasePlugin("oracle"), } } func (p *OraclePlugin) Scan(ctx context.Context, info *common.HostInfo) *ScanResult { if common.DisableBrute { return p.identifyService(ctx, info) } return &ScanResult{ Success: false, Service: "oracle", Error: fmt.Errorf("Oracle驱动未安装"), } } func (p *OraclePlugin) identifyService(ctx context.Context, info *common.HostInfo) *ScanResult { return &ScanResult{ Success: false, Service: "oracle", Error: fmt.Errorf("Oracle驱动未安装"), } } func init() { // 使用高效注册方式:直接传递端口信息,避免实例创建 RegisterPluginWithPorts("oracle", func() Plugin { return NewOraclePlugin() }, []int{1521, 1522, 1525}) }