@@ -21,6 +21,7 @@ package bootstrap
2121import (
2222 "context"
2323 "errors"
24+ "github.com/rabbitstack/fibratus/internal/evasion"
2425 "github.com/rabbitstack/fibratus/pkg/aggregator"
2526 "github.com/rabbitstack/fibratus/pkg/alertsender"
2627 "github.com/rabbitstack/fibratus/pkg/api"
@@ -138,7 +139,7 @@ func NewApp(cfg *config.Config, options ...Option) (*App, error) {
138139 var engine * rules.Engine
139140 var rs * config.RulesCompileResult
140141
141- if cfg .Filters .Rules .Enabled && ! cfg .ForwardMode && ! cfg .IsCaptureSet () {
142+ if cfg .Filters .Rules .Enabled && ! cfg .ForwardMode && ! cfg .IsCaptureSet () && ! cfg . IsFilamentSet () {
142143 engine = rules .NewEngine (psnap , cfg )
143144 var err error
144145 rs , err = engine .Compile ()
@@ -203,9 +204,8 @@ func (f *App) Run(args []string) error {
203204 // In case of a regular run, we additionally set up the aggregator.
204205 // The aggregator will grab the events from the queue, assemble them
205206 // into batches and hand over to output sinks.
206- filamentName := cfg .Filament .Name
207- if filamentName != "" {
208- f .filament , err = filament .New (filamentName , f .psnap , f .hsnap , cfg )
207+ if cfg .IsFilamentSet () {
208+ f .filament , err = filament .New (cfg .Filament .Name , f .psnap , f .hsnap , cfg )
209209 if err != nil {
210210 return err
211211 }
@@ -234,6 +234,10 @@ func (f *App) Run(args []string) error {
234234 f .symbolizer = symbolize .NewSymbolizer (symbolize .NewDebugHelpResolver (cfg ), f .psnap , cfg , false )
235235 f .evs .RegisterEventListener (f .symbolizer )
236236 }
237+ // register evasion scanner
238+ if cfg .Evasion .Enabled {
239+ f .evs .RegisterEventListener (evasion .NewScanner (cfg .Evasion ))
240+ }
237241 // register rule engine
238242 if f .engine != nil {
239243 f .evs .RegisterEventListener (f .engine )
@@ -314,9 +318,9 @@ func (f *App) ReadCapture(ctx context.Context, args []string) error {
314318 if err != nil {
315319 return err
316320 }
317- filamentName := f . config . Filament . Name
318- if filamentName != "" {
319- f .filament , err = filament .New (filamentName , f .psnap , f .hsnap , f .config )
321+
322+ if f . config . IsFilamentSet () {
323+ f .filament , err = filament .New (f . config . Filament . Name , f .psnap , f .hsnap , f .config )
320324 if err != nil {
321325 return err
322326 }
@@ -355,6 +359,7 @@ func (f *App) ReadCapture(ctx context.Context, args []string) error {
355359 return err
356360 }
357361 }
362+
358363 return api .StartServer (f .config )
359364}
360365
0 commit comments