Documentation
¶
Index ¶
- Constants
- func Opt2fuzz(o *opt.Opt) (fuzz1 *fuzzTypes.Fuzz, err error)
- type Fuzzer
- func (f *Fuzzer) Do(job *fuzzTypes.Fuzz) (jid int, timeLapsed time.Duration, newJobs []*fuzzTypes.Fuzz, err error)
- func (f *Fuzzer) GetApiToken() string
- func (f *Fuzzer) GetJob(jid int) (jobCtx *fuzzCtx.JobCtx, ok bool)
- func (f *Fuzzer) GetJobIds() []int
- func (f *Fuzzer) Start() error
- func (f *Fuzzer) StartHttpApi(apiConf WebApiConfig) error
- func (f *Fuzzer) Status() int8
- func (f *Fuzzer) Stop() error
- func (f *Fuzzer) StopHttpApi() error
- func (f *Fuzzer) StopJob(jid int) error
- func (f *Fuzzer) Submit(job *fuzzTypes.Fuzz) (int, error)
- func (f *Fuzzer) Wait()
- type WebApiConfig
Constants ¶
View Source
const ( FuzzerStatInit = 0 FuzzerStatRunning = 1 FuzzerStatStopped = 2 )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Fuzzer ¶
type Fuzzer struct {
// contains filtered or unexported fields
}
Fuzzer 用来执行模糊测试任务,允许多个任务并发执行,内部维护一个任务协程池 注意:此结构是一次性的,也就是说调用Stop之后就不能再调用Start启动,否则可 能导致未定义行为,必须使用NewFuzzer重新获取(因为我实在是懒得调它的状态机 了,越调可能出现的问题越多,就这样写还更好) Fuzzer对象只能通过NewFuzzer函数获取,不能直接声明后就使用 这个结构体可以在其它的go代码中使用,只要遵循上面的原则就行
func NewFuzzer ¶
func NewFuzzer(concurrency int, apiConf ...WebApiConfig) (*Fuzzer, error)
NewFuzzer 获取一个Fuzzer对象 concurrency 指定任务并发池的大小 apiConf 指定是否启动api模式及启动的配置,只要指定了这个参数就会启动api,如果要自定义配置,则指定具体配置
func (*Fuzzer) Do ¶
func (f *Fuzzer) Do(job *fuzzTypes.Fuzz) (jid int, timeLapsed time.Duration, newJobs []*fuzzTypes.Fuzz, err error)
Do 用于阻塞运行一个fuzz任务
func (*Fuzzer) GetApiToken ¶
GetApiToken 如果启动了http api模式,获取api模式的token
func (*Fuzzer) GetJob ¶
GetJob 获取当前协程池中一个正在运行的任务的任务上下文,并且标记1次占用,防止使用时就被关闭 注意,目前版本暂不支持获取到jobCtx后更改,否则可能出现并发安全问题,获取后需要手动调用 jobCtx.Release方法释放,否则会导致关闭时阻塞
func (*Fuzzer) StartHttpApi ¶
func (f *Fuzzer) StartHttpApi(apiConf WebApiConfig) error
Click to show internal directories.
Click to hide internal directories.