/* * canbus_fuzz.h * CAN bus fuzzing engine — ID scan, data mutation, random injection, UDS auth brute-force. */ #pragma once #include #include #ifdef __cplusplus extern "C" { #endif typedef enum { FUZZ_MODE_ID_SCAN, /* Iterate all CAN IDs, fixed payload */ FUZZ_MODE_DATA_MUTATE, /* Fixed ID, mutate data bytes systematically */ FUZZ_MODE_RANDOM, /* Random ID + random data */ FUZZ_MODE_UDS_AUTH, /* Brute-force UDS SecurityAccess keys */ } fuzz_mode_t; typedef struct { fuzz_mode_t mode; uint32_t id_start, id_end; /* For ID_SCAN range */ uint32_t target_id; /* For DATA_MUTATE / UDS_AUTH */ int delay_ms; /* Inter-frame delay */ int max_iterations; /* 0 = unlimited */ uint8_t seed_data[8]; /* Initial data for mutation */ uint8_t seed_dlc; /* DLC for seed data */ } fuzz_config_t; /* Start fuzzing in background task. request_id for C2 streaming. */ bool can_fuzz_start(const fuzz_config_t *cfg, const char *request_id); /* Stop fuzzing */ void can_fuzz_stop(void); /* Check if fuzzing is active */ bool can_fuzz_is_running(void); #ifdef __cplusplus } #endif