Kaynağa Gözat

custom nameflood list

Lincoln 1 yıl önce
ebeveyn
işleme
d96d8390d0

+ 1 - 0
ble_spam/application.fam

@@ -6,6 +6,7 @@ App(
     stack_size=2 * 1024,
     fap_icon="ble_spam_10px.png",
     fap_category="Bluetooth",
+    fap_file_assets="spamlists",
     fap_author="@Willy-JL @ECTO-1A @Spooks4576",
     fap_weburl="https://github.com/Next-Flip/Momentum-Apps/tree/dev/ble_spam",
     fap_version="6.0",

+ 41 - 11
ble_spam/protocols/nameflood.c

@@ -1,23 +1,53 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 #include "nameflood.h"
 #include "_protocols.h"
+#include <storage/storage.h>
 
 // Hacked together by @Willy-JL
 
-static const char* names[] = {
-    "Assquach💦",
-    "Flipper 🐬",
-    "iOS 17 🍎",
-    "Kink💦",
-    "👉👌",
-    "🔵🦷",
-};
-static const uint8_t names_count = COUNT_OF(names);
-
 static const char* get_name(const Payload* payload) {
     UNUSED(payload);
     return "NameFlood";
 }
 
+static const char* make_name(const Payload* payload) {
+    UNUSED(payload);
+    static const char* names[256];
+    static uint8_t names_count = 0;
+
+    if(names_count == 0) {
+        Storage* storage = furi_record_open(RECORD_STORAGE);
+        if(storage) {
+            File* file = storage_file_alloc(storage);
+            if(storage_file_open(
+                   file, "/ext/apps_assets/ble_spam/spamlist.txt", FSAM_READ, FSOM_OPEN_EXISTING)) {
+                char line[256];
+                uint64_t bytes_read = storage_file_read(file, line, sizeof(line));
+                if(bytes_read > 0) {
+                    line[bytes_read] = '\0';
+
+                    char* name = strtok(line, ",");
+                    while(name && names_count < 255) {
+                        names[names_count++] = strdup(name);
+                        name = strtok(NULL, ",");
+                    }
+                }
+                storage_file_close(file);
+            }
+            storage_file_free(file);
+            furi_record_close(RECORD_STORAGE);
+        }
+    }
+
+    if(names_count == 0) {
+        return "NameFlood";
+    } else {
+        return names[rand() % names_count];
+    }
+}
+
 static void make_packet(uint8_t* _size, uint8_t** _packet, Payload* payload) {
     NamefloodCfg* cfg = payload ? &payload->cfg.nameflood : NULL;
 
@@ -25,7 +55,7 @@ static void make_packet(uint8_t* _size, uint8_t** _packet, Payload* payload) {
     switch(cfg ? payload->mode : PayloadModeRandom) {
     case PayloadModeRandom:
     default:
-        name = names[rand() % names_count];
+        name = make_name(payload);
         break;
     case PayloadModeValue:
         name = cfg->name;

+ 1 - 0
ble_spam/spamlists/spamlist.txt

@@ -0,0 +1 @@
+🛞MNTM-FW🛞,YAPYAPYAP,Flipper 🐬,👋