From e74847a40f012fc56c4588db83d8cef076583b10 Mon Sep 17 00:00:00 2001 From: SkeletonMan03 Date: Fri, 3 Nov 2023 20:16:22 -0500 Subject: [PATCH] Add Keri and Jablotron to RFID Fuzzer --- .../multi_fuzzer/lib/worker/protocol.c | 102 ++++++++++++++++-- 1 file changed, 93 insertions(+), 9 deletions(-) diff --git a/applications/external/multi_fuzzer/lib/worker/protocol.c b/applications/external/multi_fuzzer/lib/worker/protocol.c index 42df99e3ff..0c8322e5ca 100644 --- a/applications/external/multi_fuzzer/lib/worker/protocol.c +++ b/applications/external/multi_fuzzer/lib/worker/protocol.c @@ -79,6 +79,9 @@ const uint8_t uid_list_cyfral[][Cyfral_DATA_SIZE] = { #define PARADOX_DATA_SIZE (6) #define INDALA26_DATA_SIZE (4) #define VIKING_DATA_SIZE (4) +#define PYRAMID_DATA_SIZE (4) +#define KERI_DATA_SIZE (4) +#define JABLOTRON_DATA_SIZE (5) const uint8_t uid_list_em4100[][EM4100_DATA_SIZE] = { {0x00, 0x00, 0x00, 0x00, 0x00}, // Null bytes @@ -176,16 +179,16 @@ const uint8_t uid_list_ioproxxsf[][IOPROXXSF_DATA_SIZE] = { const uint8_t uid_list_paradox[][PARADOX_DATA_SIZE] = { {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // Null bytes - {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //Only FF + {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, // Only FF {0x11, 0x11, 0x11, 0x11, 0x11, 0x11}, // Only 11 {0x22, 0x22, 0x22, 0x22, 0x22, 0x22}, // Only 22 {0x33, 0x33, 0x33, 0x33, 0x33, 0x33}, // Only 33 {0x44, 0x44, 0x44, 0x44, 0x44, 0x44}, // Only 44 - {0x55, 0x55, 0x55, 0x55, 0x55, 0x55}, //Only 55 + {0x55, 0x55, 0x55, 0x55, 0x55, 0x55}, // Only 55 {0x66, 0x66, 0x66, 0x66, 0x66, 0x66}, // Only 66 {0x77, 0x77, 0x77, 0x77, 0x77, 0x77}, // Only 77 {0x88, 0x88, 0x88, 0x88, 0x88, 0x88}, // Only 88 - {0x99, 0x99, 0x99, 0x99, 0x99, 0x99}, //Only 99 + {0x99, 0x99, 0x99, 0x99, 0x99, 0x99}, // Only 99 {0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC}, // Incremental UID {0xFF, 0xDE, 0xBC, 0x9A, 0x78, 0x56}, // Decremental UID {0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA}, // From arha @@ -193,16 +196,16 @@ const uint8_t uid_list_paradox[][PARADOX_DATA_SIZE] = { const uint8_t uid_list_indala26[][INDALA26_DATA_SIZE] = { {0x00, 0x00, 0x00, 0x00}, // Null bytes - {0xFF, 0xFF, 0xFF, 0xFF}, //Only FF + {0xFF, 0xFF, 0xFF, 0xFF}, // Only FF {0x11, 0x11, 0x11, 0x11}, // Only 11 {0x22, 0x22, 0x22, 0x22}, // Only 22 {0x33, 0x33, 0x33, 0x33}, // Only 33 {0x44, 0x44, 0x44, 0x44}, // Only 44 - {0x55, 0x55, 0x55, 0x55}, //Only 55 + {0x55, 0x55, 0x55, 0x55}, // Only 55 {0x66, 0x66, 0x66, 0x66}, // Only 66 {0x77, 0x77, 0x77, 0x77}, // Only 77 {0x88, 0x88, 0x88, 0x88}, // Only 88 - {0x99, 0x99, 0x99, 0x99}, //Only 99 + {0x99, 0x99, 0x99, 0x99}, // Only 99 {0x12, 0x34, 0x56, 0x78}, // Incremental UID {0xFF, 0xDE, 0xBC, 0x9A}, // Decremental UID {0xCA, 0xCA, 0xCA, 0xCA}, // From arha @@ -210,21 +213,72 @@ const uint8_t uid_list_indala26[][INDALA26_DATA_SIZE] = { const uint8_t uid_list_viking[][VIKING_DATA_SIZE] = { {0x00, 0x00, 0x00, 0x00}, // Null bytes - {0xFF, 0xFF, 0xFF, 0xFF}, //Only FF + {0xFF, 0xFF, 0xFF, 0xFF}, // Only FF + {0x11, 0x11, 0x11, 0x11}, // Only 11 + {0x22, 0x22, 0x22, 0x22}, // Only 22 + {0x33, 0x33, 0x33, 0x33}, // Only 33 + {0x44, 0x44, 0x44, 0x44}, // Only 44 + {0x55, 0x55, 0x55, 0x55}, // Only 55 + {0x66, 0x66, 0x66, 0x66}, // Only 66 + {0x77, 0x77, 0x77, 0x77}, // Only 77 + {0x88, 0x88, 0x88, 0x88}, // Only 88 + {0x99, 0x99, 0x99, 0x99}, // Only 99 + {0x12, 0x34, 0x56, 0x78}, // Incremental UID + {0xFF, 0xDE, 0xBC, 0x9A}, // Decremental UID + {0xCA, 0xCA, 0xCA, 0xCA}, // From arha +}; + +const uint8_t uid_list_pyramid[][PYRAMID_DATA_SIZE] = { + {0x00, 0x00, 0x00, 0x00}, // Null bytes + {0xFF, 0xFF, 0xFF, 0xFF}, // Only FF {0x11, 0x11, 0x11, 0x11}, // Only 11 {0x22, 0x22, 0x22, 0x22}, // Only 22 {0x33, 0x33, 0x33, 0x33}, // Only 33 {0x44, 0x44, 0x44, 0x44}, // Only 44 - {0x55, 0x55, 0x55, 0x55}, //Only 55 + {0x55, 0x55, 0x55, 0x55}, // Only 55 {0x66, 0x66, 0x66, 0x66}, // Only 66 {0x77, 0x77, 0x77, 0x77}, // Only 77 {0x88, 0x88, 0x88, 0x88}, // Only 88 - {0x99, 0x99, 0x99, 0x99}, //Only 99 + {0x99, 0x99, 0x99, 0x99}, // Only 99 {0x12, 0x34, 0x56, 0x78}, // Incremental UID {0xFF, 0xDE, 0xBC, 0x9A}, // Decremental UID {0xCA, 0xCA, 0xCA, 0xCA}, // From arha }; +const uint8_t uid_list_keri[][KERI_DATA_SIZE] = { + {0x00, 0x00, 0x00, 0x00}, // Null bytes + {0xFF, 0xFF, 0xFF, 0xFF}, // Only FF + {0x11, 0x11, 0x11, 0x11}, // Only 11 + {0x22, 0x22, 0x22, 0x22}, // Only 22 + {0x33, 0x33, 0x33, 0x33}, // Only 33 + {0x44, 0x44, 0x44, 0x44}, // Only 44 + {0x55, 0x55, 0x55, 0x55}, // Only 55 + {0x66, 0x66, 0x66, 0x66}, // Only 66 + {0x77, 0x77, 0x77, 0x77}, // Only 77 + {0x88, 0x88, 0x88, 0x88}, // Only 88 + {0x99, 0x99, 0x99, 0x99}, // Only 99 + {0x12, 0x34, 0x56, 0x78}, // Incremental UID + {0xFF, 0xDE, 0xBC, 0x9A}, // Decremental UID + {0xCA, 0xCA, 0xCA, 0xCA}, // From arha +}; + +const uint8_t uid_list_jablotron[][JABLOTRON_DATA_SIZE] = { + {0x00, 0x00, 0x00, 0x00, 0x00}, // Null bytes + {0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, // Only FF + {0x11, 0x11, 0x11, 0x11, 0x11}, // Only 11 + {0x22, 0x22, 0x22, 0x22, 0x22}, // Only 22 + {0x33, 0x33, 0x33, 0x33, 0x33}, // Only 33 + {0x44, 0x44, 0x44, 0x44, 0x44}, // Only 44 + {0x55, 0x55, 0x55, 0x55, 0x55}, // Only 55 + {0x66, 0x66, 0x66, 0x66, 0x66}, // Only 66 + {0x77, 0x77, 0x77, 0x77, 0x77}, // Only 77 + {0x88, 0x88, 0x88, 0x88, 0x88}, // Only 88 + {0x99, 0x99, 0x99, 0x99, 0x99}, // Only 99 + {0x12, 0x34, 0x56, 0x78, 0x9A}, // Incremental UID + {0xFF, 0xDE, 0xBC, 0x9A, 0x78}, // Decremental UID + {0xCA, 0xCA, 0xCA, 0xCA, 0xCA}, // From arha +}; + #if defined(RFID_125_PROTOCOL) const FuzzerProtocol fuzzer_proto_items[] = { // EM4100 @@ -307,6 +361,36 @@ const FuzzerProtocol fuzzer_proto_items[] = { .len = COUNT_OF(uid_list_viking), }, }, + // Pyramid + { + .name = "Pyramid", + .data_size = PYRAMID_DATA_SIZE, + .dict = + { + .val = (const uint8_t*)&uid_list_pyramid, + .len = COUNT_OF(uid_list_pyramid), + }, + }, + // Keri + { + .name = "Keri", + .data_size = KERI_DATA_SIZE, + .dict = + { + .val = (const uint8_t*)&uid_list_keri, + .len = COUNT_OF(uid_list_keri), + }, + }, + // Jablotron + { + .name = "Jablotron", + .data_size = JABLOTRON_DATA_SIZE, + .dict = + { + .val = (const uint8_t*)&uid_list_jablotron, + .len = COUNT_OF(uid_list_jablotron), + }, + }, }; #else const FuzzerProtocol fuzzer_proto_items[] = {