runner

package
v1.6.16 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 17, 2026 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultOptions = Options{
	Threads: 10,
	Timeout: 30,
}

DefaultOptions 默认配置选项

Functions

func CreateMatchPartGetter

func CreateMatchPartGetter(banner *crawl.Banner) rule.MatchPartGetter

CreateMatchPartGetter 创建一个从banner中提取匹配部分的函数

func MatchWpPlugin

func MatchWpPlugin(body string) map[string]map[string]string

MatchWpPlugin 匹配WordPress插件

func MergeMaps

func MergeMaps(m1, m2 map[string]map[string]string) map[string]map[string]string

MergeMaps 合并两个map

Types

type BannerAdapter

type BannerAdapter struct {
	// contains filtered or unexported fields
}

BannerAdapter 将crawl.Banner适配为matchers.BannerInfo

func (*BannerAdapter) GetMatchPart

func (a *BannerAdapter) GetMatchPart(part string) string

GetMatchPart 实现BannerInfo接口的GetMatchPart方法

func (*BannerAdapter) GetStatusCode

func (a *BannerAdapter) GetStatusCode() int

GetStatusCode 实现BannerInfo接口的GetStatusCode方法

func (*BannerAdapter) GetURI

func (a *BannerAdapter) GetURI() string

GetURI 实现BannerInfo接口的GetURI方法

type ExecutorsPlugin

type ExecutorsPlugin struct {
	Plugin *rule.Plugin
	Banner *crawl.Banner
}

type OptionFunc

type OptionFunc func(*RunnerBuilder)

OptionFunc 定义一个函数类型,用于设置Runner的选项

func WithCallback

func WithCallback(callback func(target string, result *Result)) OptionFunc

WithCallback 设置结果处理回调函数

func WithCrawler

func WithCrawler(crawler *crawl.Crawler) OptionFunc

WithCrawler 设置自定义爬虫

func WithJSONOutput

func WithJSONOutput(json bool) OptionFunc

WithJSONOutput 设置是否输出JSON格式

func WithOutput

func WithOutput(output string) OptionFunc

WithOutput 设置输出文件路径

func WithRuleManager

func WithRuleManager(manager *rule.Manager) OptionFunc

WithRuleManager 设置自定义规则管理器

func WithRulePath

func WithRulePath(path string) OptionFunc

WithRulePath 设置规则库路径

func WithSilent

func WithSilent(silent bool) OptionFunc

WithSilent 设置是否静默模式

func WithThreads

func WithThreads(threads int) OptionFunc

WithThreads 设置并发线程数

func WithTimeout

func WithTimeout(timeout int) OptionFunc

WithTimeout 设置超时时间(秒)

func WithVerbose

func WithVerbose(verbose bool) OptionFunc

WithVerbose 设置是否输出详细信息

type Options

type Options struct {
	// 输入相关
	Target  string   // 单个目标URL
	Targets []string // 多个目标URL列表
	File    string   // 目标文件路径
	Stdin   bool     // 是否使用标准输入
	// 运行相关
	Threads  int    // 并发线程数
	Timeout  int    // 超时时间(秒)
	Verbose  bool   // 是否输出详细信息
	Silent   bool   // 是否静默模式
	RulePath string // 规则库路径

	// 输出相关
	Output    string // 输出文件路径
	JSON      bool   // 是否输出JSON格式
	NoColor   bool   // 是否禁用彩色输出
	OutputAll bool   // 是否输出所有结果(包括未识别到指纹的目标)
	// 回调函数,用于处理扫描结果
	Callback func(target string, result *Result)
}

Options 运行时配置选项

type OutputFields

type OutputFields struct {
	URL     string                       `json:"url"`
	Extract map[string]map[string]string `json:"extract,omitempty"`
}

OutputFields 输出字段

type Result

type Result struct {
	Banner     *crawl.Banner
	Components map[string]map[string]string
}

Result 表示指纹识别结果

type Runner

type Runner struct {
	// contains filtered or unexported fields
}

Runner 负责协调爬虫和规则匹配的执行流程

func New

func New(opts ...OptionFunc) (*Runner, error)

New 使用功能选项模式创建Runner实例

func NewDefaultRunner

func NewDefaultRunner(options *crawl.Options, finger *rule.Finger) *Runner

NewDefaultRunner 创建默认的Runner实例

func NewRunner

func NewRunner(crawler *crawl.Crawler, ruleManager *rule.Manager, options *Options) (*Runner, error)

NewRunner 从现有的crawler和ruleManager创建Runner实例

func NewRunnerCompat

func NewRunnerCompat(crawler *crawl.Crawler, ruleManager *rule.Manager) *Runner

NewRunnerCompat 向后兼容的NewRunner函数,用于支持现有代码

func NewRunnerWithOptions

func NewRunnerWithOptions(options *Options) (*Runner, error)

NewRunnerWithOptions 从选项创建Runner实例

func (*Runner) Enumerate

func (r *Runner) Enumerate() error

Enumerate 执行指纹识别任务

func (*Runner) ExecuteWithPlugin

func (r *Runner) ExecuteWithPlugin(ctx context.Context, baseURL string, plugin *rule.Plugin) ([]*crawl.Banner, error)

ExecuteWithPlugin 使用插件执行额外请求

func (*Runner) Match

func (r *Runner) Match(uri string) (banner *crawl.Banner, m map[string]map[string]string, err error)

Match 兼容旧版API的匹配方法

func (*Runner) Scan

func (r *Runner) Scan(uri string) (*Result, error)

Scan 扫描URL

func (*Runner) ScanWithContext

func (r *Runner) ScanWithContext(ctx context.Context, uri string) (*Result, error)

ScanWithContext 执行指纹识别流程

type RunnerBuilder

type RunnerBuilder struct {
	// contains filtered or unexported fields
}

RunnerBuilder 用于构建Runner实例的构建器

func NewBuilder

func NewBuilder() *RunnerBuilder

NewBuilder 创建一个新的Runner构建器

func (*RunnerBuilder) Build

func (rb *RunnerBuilder) Build() (*Runner, error)

Build 构建Runner实例

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL