subbrute_worker.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #pragma once
  2. #include "../subbrute_protocols.h"
  3. typedef enum {
  4. SubBruteWorkerStateIDLE,
  5. SubBruteWorkerStateReady,
  6. SubBruteWorkerStateTx,
  7. SubBruteWorkerStateFinished
  8. } SubBruteWorkerState;
  9. typedef void (*SubBruteWorkerCallback)(void* context, SubBruteWorkerState state);
  10. typedef struct SubBruteWorker SubBruteWorker;
  11. SubBruteWorker* subbrute_worker_alloc();
  12. void subbrute_worker_free(SubBruteWorker* instance);
  13. uint64_t subbrute_worker_get_step(SubBruteWorker* instance);
  14. bool subbrute_worker_set_step(SubBruteWorker* instance, uint64_t step);
  15. bool subbrute_worker_is_running(SubBruteWorker* instance);
  16. bool subbrute_worker_init_default_attack(
  17. SubBruteWorker* instance,
  18. SubBruteAttacks attack_type,
  19. uint64_t step,
  20. const SubBruteProtocol* protocol,
  21. uint8_t extra_repeats);
  22. bool subbrute_worker_init_file_attack(
  23. SubBruteWorker* instance,
  24. uint64_t step,
  25. uint8_t load_index,
  26. uint64_t file_key,
  27. SubBruteProtocol* protocol,
  28. uint8_t extra_repeats,
  29. bool two_bytes);
  30. bool subbrute_worker_start(SubBruteWorker* instance);
  31. void subbrute_worker_stop(SubBruteWorker* instance);
  32. bool subbrute_worker_transmit_current_key(SubBruteWorker* instance, uint64_t step);
  33. bool subbrute_worker_can_manual_transmit(SubBruteWorker* instance);
  34. void subbrute_worker_set_callback(
  35. SubBruteWorker* instance,
  36. SubBruteWorkerCallback callback,
  37. void* context);