mifare_fuzzer_emulator.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. #include "lib/nfc/protocols/iso14443_3a/iso14443_3a.h"
  8. typedef void (*MifareFuzzerEmulatorCallback)(MifareFuzzerEvent event, void* context);
  9. typedef enum MifareCard {
  10. MifareCardClassic1k = 1,
  11. MifareCardClassic4k,
  12. MifareCardUltralight,
  13. } MifareCard;
  14. typedef enum MifareFuzzerAttack {
  15. MifareFuzzerAttackTestValues = 1,
  16. MifareFuzzerAttackRandomValues,
  17. MifareFuzzerAttackLoadUidsFromFile,
  18. } MifareFuzzerAttack;
  19. typedef struct MifareFuzzerEmulator {
  20. View* view;
  21. MifareFuzzerEmulatorCallback callback;
  22. void* context;
  23. bool is_attacking;
  24. uint8_t ticks_between_cards;
  25. } MifareFuzzerEmulator;
  26. typedef struct MifareFuzzerEmulatorModel {
  27. const char* title;
  28. MifareCard mifare_card;
  29. const char* mifare_card_dsc;
  30. MifareFuzzerAttack attack;
  31. const char* attack_dsc;
  32. Iso14443_3aData nfc_data;
  33. bool is_attacking;
  34. uint8_t tick_num;
  35. uint8_t ticks_between_cards;
  36. } MifareFuzzerEmulatorModel;
  37. MifareFuzzerEmulator* mifare_fuzzer_emulator_alloc();
  38. void mifare_fuzzer_emulator_free(MifareFuzzerEmulator* context);
  39. View* mifare_fuzzer_emulator_get_view(MifareFuzzerEmulator* context);
  40. void mifare_fuzzer_emulator_set_card(
  41. MifareFuzzerEmulator* mifare_fuzzer_emulator,
  42. MifareCard mifare_card);
  43. void mifare_fuzzer_emulator_set_attack(
  44. MifareFuzzerEmulator* mifare_fuzzer_emulator,
  45. MifareFuzzerAttack mifare_attack);
  46. void mifare_fuzzer_emulator_set_callback(
  47. MifareFuzzerEmulator* mifare_fuzzer_emulator,
  48. MifareFuzzerEmulatorCallback callback,
  49. void* context);
  50. void mifare_fuzzer_emulator_set_nfc_data(
  51. MifareFuzzerEmulator* mifare_fuzzer_emulator,
  52. Iso14443_3aData nfc_data);
  53. void mifare_fuzzer_emulator_set_ticks_between_cards(
  54. MifareFuzzerEmulator* mifare_fuzzer_emulator,
  55. uint8_t ticks);
  56. void mifare_fuzzer_emulator_set_tick_num(
  57. MifareFuzzerEmulator* mifare_fuzzer_emulator,
  58. uint8_t tick_num);