mifare_fuzzer_i.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #pragma once
  2. #include <furi.h>
  3. #include <furi_hal.h>
  4. #include <lib/nfc/nfc_device.h>
  5. #include <lib/nfc/protocols/nfc_protocol.h>
  6. #include "lib/nfc/protocols/mf_classic/mf_classic.h"
  7. #include <gui/gui.h>
  8. #include <gui/view_dispatcher.h>
  9. #include <gui/scene_manager.h>
  10. #include <gui/modules/submenu.h>
  11. #include <dialogs/dialogs.h>
  12. #include <input/input.h>
  13. #include <toolbox/stream/stream.h>
  14. //#include <toolbox/stream/string_stream.h>
  15. //#include <toolbox/stream/file_stream.h>
  16. #include <toolbox/stream/buffered_file_stream.h>
  17. #include "mifare_fuzzer.h"
  18. #include "scenes/mifare_fuzzer_scene.h"
  19. #include "views/mifare_fuzzer_emulator.h"
  20. #include "mifare_fuzzer_worker.h"
  21. #define TAG "MifareFuzzerApp"
  22. #define MIFARE_FUZZER_APP_FOLDER EXT_PATH("mifare_fuzzer")
  23. #define MIFARE_FUZZER_UID_FILE_EXT ".txt"
  24. #define MIFARE_FUZZER_CARD_FILE_EXT ".nfc"
  25. #define MIFARE_FUZZER_TICK_PERIOD 200
  26. #define MIFARE_FUZZER_DEFAULT_TICKS_BETWEEN_CARDS 10
  27. #define MIFARE_FUZZER_MIN_TICKS_BETWEEN_CARDS 5
  28. #define MIFARE_FUZZER_MAX_TICKS_BETWEEN_CARDS 50
  29. typedef enum MifareFuzzerSceneState {
  30. MifareFuzzerSceneStateClassic1k,
  31. MifareFuzzerSceneStateClassic4k,
  32. MifareFuzzerSceneStateUltralight,
  33. } MifareFuzzerSceneState;
  34. typedef enum {
  35. MifareFuzzerViewSelectCard,
  36. MifareFuzzerViewSelectAttack,
  37. MifareFuzzerViewEmulator,
  38. } MifareFuzzerView;
  39. struct MifareFuzzerApp {
  40. Gui* gui;
  41. ViewDispatcher* view_dispatcher;
  42. SceneManager* scene_manager;
  43. DialogsApp* dialogs;
  44. Storage* storage;
  45. // Common Views
  46. Submenu* submenu_card;
  47. Submenu* submenu_attack;
  48. MifareFuzzerEmulator* emulator_view;
  49. MifareFuzzerWorker* worker;
  50. MifareCard card;
  51. MifareFuzzerAttack attack;
  52. FuriString* app_folder;
  53. FuriString* card_file_path;
  54. FuriString* uid_file_path;
  55. FuriString* uid_str;
  56. Stream* uids_stream;
  57. };