mifare_fuzzer_i.h 2.0 KB

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