callgraph

package
v1.8.14 Latest Latest
Warning

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

Go to latest
Published: Mar 21, 2024 License: MIT Imports: 9 Imported by: 0

README

Callgraph Generation

The Debricked CLI can generate static callgraphs for projects to enable reachability analysis for vulnerabilities.

For the only currently supported language, Java, some setup is required for callgraph generation to work properly. For more information on this see the Language Support section below.

Language Support

Debricked CLI callgraph generation currently only supports Java, the specific documentation for the Java callgraph generation can be found here.

Use

To generate a callgraph for your project you can use the direct command:

debricked callgraph <path>
debricked callgraph --help

Or you can enable it in your scan to add reachability analysis:

debricked scan --callgraph 

To analyze the generated callgraph it needs to be uploaded using the scan command, either with the callgraph generation flag as above, or with an already generated call graph by omitting the flag.

For more information see documentation on the specific langauge implementation or see full CLI documentation here

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Generation

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

func NewGeneration

func NewGeneration(jobs []job.IJob) Generation

func (Generation) HasErr

func (g Generation) HasErr() bool

func (Generation) Jobs

func (g Generation) Jobs() []job.IJob

type Generator

type Generator struct {
	Generation IGeneration
	// contains filtered or unexported fields
}

func NewGenerator

func NewGenerator(
	finder finder.IFinder,
	strategyFactory strategy.IFactory,
	scheduler IScheduler,
) *Generator

func (*Generator) Generate

func (g *Generator) Generate(paths []string, exclusions []string, configs []config.IConfig, ctx cgexec.IContext) error

func (*Generator) GenerateWithTimer

func (g *Generator) GenerateWithTimer(paths []string, exclusions []string, configs []config.IConfig, timeout int) error

type IGeneration

type IGeneration interface {
	Jobs() []job.IJob
	HasErr() bool
}

type IGenerator

type IGenerator interface {
	GenerateWithTimer(paths []string, exclusions []string, configs []config.IConfig, timeout int) error
	Generate(paths []string, exclusions []string, configs []config.IConfig, ctx cgexec.IContext) error
}

type IScheduler

type IScheduler interface {
	Schedule(jobs []job.IJob, ctx cgexec.IContext) (IGeneration, error)
}

type Scheduler

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

func NewScheduler

func NewScheduler(workers int) *Scheduler

func (*Scheduler) Schedule

func (scheduler *Scheduler) Schedule(jobs []job.IJob, ctx cgexec.IContext) (IGeneration, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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