pub fn set_telemetry_callback(cb: Box<dyn TelemetryEvent>)Examples found in repository?
examples/demo.rs (line 38)
33fn main() {
34 // 1. Set up logging at INFO level
35 env_logger::builder().filter_level(LevelFilter::Info).init();
36
37 // 2. Register a telemetry callback for event monitoring
38 set_telemetry_callback(Box::new(ConsoleTelemetry));
39
40 // 3. Load configuration file if present (e.g., `config.toml` in project root)
41 let config = FrameworkConfig::from_file("config.toml");
42 println!("Loaded configuration: {:?}", config);
43
44 // 4. Prepare a default context for stages (no payload, empty metadata)
45 let ctx = StageContext { payload: None, metadata: Default::default() };
46
47 // 5. Demonstrate persistence stage chain
48 println!("--> Running persistence chain...");
49 let _ = run_persistence_chain(&["RegistryRunKeys", "ScheduledTasks"]);
50
51 // 6. Demonstrate execution stage chain
52 println!("--> Running execution chain...");
53 let _ = run_execution_chain(&["ClassicProcessInjection", "MappingInjection"]);
54
55 // 7. Demonstrate C2 stage chain
56 println!("--> Running C2 chain...");
57 let _ = run_c2_chain(&["HTTPSCommunication", "DNSTunneling"]);
58
59 // 8. Demonstrate anti-analysis stage chain
60 println!("--> Running anti-analysis chain...");
61 let _ = run_anti_analysis_chain(&["AntiDebugging", "VMDetection"]);
62
63 println!("Demo completed successfully.");
64}