libfgiu

package
v0.2.5 Latest Latest
Warning

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

Go to latest
Published: Dec 11, 2025 License: MIT Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FuzzerStatInit    = 0
	FuzzerStatRunning = 1
	FuzzerStatStopped = 2
)

Variables

This section is empty.

Functions

func Opt2fuzz

func Opt2fuzz(o *opt.Opt) (fuzz1 *fuzzTypes.Fuzz, err error)

Opt2fuzz 将opt结构转化为fuzz结构

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

func (f *Fuzzer) GetApiToken() string

GetApiToken 如果启动了http api模式,获取api模式的token

func (*Fuzzer) GetJob

func (f *Fuzzer) GetJob(jid int) (jobCtx *fuzzCtx.JobCtx, ok bool)

GetJob 获取当前协程池中一个正在运行的任务的任务上下文,并且标记1次占用,防止使用时就被关闭 注意,目前版本暂不支持获取到jobCtx后更改,否则可能出现并发安全问题,获取后需要手动调用 jobCtx.Release方法释放,否则会导致关闭时阻塞

func (*Fuzzer) GetJobIds

func (f *Fuzzer) GetJobIds() []int

GetJobIds 获取当前任务池中运行的所有任务

func (*Fuzzer) Start

func (f *Fuzzer) Start() error

Start 启动Fuzzer的任务池,在此之后可使用Submit方法向其中提交任务

func (*Fuzzer) StartHttpApi

func (f *Fuzzer) StartHttpApi(apiConf WebApiConfig) error

func (*Fuzzer) Status

func (f *Fuzzer) Status() int8

Status 获取fuzzer当前的状态

func (*Fuzzer) Stop

func (f *Fuzzer) Stop() error

Stop 停止fuzzer的运行,并停止所有任务的运行

func (*Fuzzer) StopHttpApi

func (f *Fuzzer) StopHttpApi() error

StopHttpApi 关闭http api

func (*Fuzzer) StopJob

func (f *Fuzzer) StopJob(jid int) error

StopJob 停止一个任务

func (*Fuzzer) Submit

func (f *Fuzzer) Submit(job *fuzzTypes.Fuzz) (int, error)

Submit 用于非阻塞执行一个fuzz任务(提交到任务池中) 返回提交任务的id和错误

func (*Fuzzer) Wait

func (f *Fuzzer) Wait()

Wait 等待fuzzer对象直到其处于空闲状态(即没有任务执行,也没有待执行的任务)

type WebApiConfig

type WebApiConfig struct {
	ServAddr     string
	TLS          bool
	CertFileName string
	CertKeyName  string
}

WebApiConfig 若要使用web api,指定web api的设置

Jump to

Keyboard shortcuts

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