mifare_fuzzer_emulator.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #pragma once
  2. #include "../mifare_fuzzer_custom_events.h"
  3. #include <furi.h>
  4. #include <furi_hal.h>
  5. #include <gui/view.h>
  6. #include <gui/elements.h>
  7. typedef void (*MifareFuzzerEmulatorCallback)(MifareFuzzerEvent event, void* context);
  8. typedef enum MifareCard {
  9. MifareCardClassic1k = 1,
  10. MifareCardClassic4k,
  11. MifareCardUltralight,
  12. } MifareCard;
  13. typedef enum MifareFuzzerAttack {
  14. MifareFuzzerAttackTestValues = 1,
  15. MifareFuzzerAttackRandomValues,
  16. MifareFuzzerAttackLoadUidsFromFile,
  17. } MifareFuzzerAttack;
  18. typedef struct MifareFuzzerEmulator {
  19. View* view;
  20. MifareFuzzerEmulatorCallback callback;
  21. void* context;
  22. bool is_attacking;
  23. uint8_t ticks_between_cards;
  24. } MifareFuzzerEmulator;
  25. typedef struct MifareFuzzerEmulatorModel {
  26. const char* title;
  27. MifareCard mifare_card;
  28. const char* mifare_card_dsc;
  29. MifareFuzzerAttack attack;
  30. const char* attack_dsc;
  31. FuriHalNfcDevData nfc_dev_data;
  32. bool is_attacking;
  33. uint8_t tick_num;
  34. uint8_t ticks_between_cards;
  35. } MifareFuzzerEmulatorModel;
  36. MifareFuzzerEmulator* mifare_fuzzer_emulator_alloc();
  37. void mifare_fuzzer_emulator_free(MifareFuzzerEmulator* context);
  38. View* mifare_fuzzer_emulator_get_view(MifareFuzzerEmulator* context);
  39. void mifare_fuzzer_emulator_set_card(
  40. MifareFuzzerEmulator* mifare_fuzzer_emulator,
  41. MifareCard mifare_card);
  42. void mifare_fuzzer_emulator_set_attack(
  43. MifareFuzzerEmulator* mifare_fuzzer_emulator,
  44. MifareFuzzerAttack mifare_attack);
  45. void mifare_fuzzer_emulator_set_callback(
  46. MifareFuzzerEmulator* mifare_fuzzer_emulator,
  47. MifareFuzzerEmulatorCallback callback,
  48. void* context);
  49. void mifare_fuzzer_emulator_set_nfc_dev_data(
  50. MifareFuzzerEmulator* mifare_fuzzer_emulator,
  51. FuriHalNfcDevData nfc_dev_data);
  52. void mifare_fuzzer_emulator_set_ticks_between_cards(
  53. MifareFuzzerEmulator* mifare_fuzzer_emulator,
  54. uint8_t ticks);
  55. void mifare_fuzzer_emulator_set_tick_num(
  56. MifareFuzzerEmulator* mifare_fuzzer_emulator,
  57. uint8_t tick_num);