Browse Source

test unpacking

Eric Betts 8 months ago
parent
commit
339b8c46e8
1 changed files with 37 additions and 2 deletions
  1. 37 2
      weebo.c

+ 37 - 2
weebo.c

@@ -2,11 +2,46 @@
 
 /* generated by fbt from .png files in images folder */
 #include <weebo_icons.h>
+#include <amiibo.h>
+
+#include "m.h"
+#include "key_retail.h"
+
+#define TAG "weebo"
+
+#define NTAG215_SIZE     540
+#define NFC3D_UID_OFFSET 0x1D4
+#define PAGE_SIZE        4
+
+nfc3d_amiibo_keys amiiboKeys;
+uint8_t original[NTAG215_SIZE];
+uint8_t plain_base[NFC3D_AMIIBO_SIZE];
+uint8_t modified[NTAG215_SIZE];
+
+void calculate_pwd(uint8_t* uid, uint8_t* pwd) {
+    pwd[0] = uid[1] ^ uid[3] ^ 0xAA;
+    pwd[1] = uid[2] ^ uid[4] ^ 0x55;
+    pwd[2] = uid[3] ^ uid[5] ^ 0xAA;
+    pwd[3] = uid[4] ^ uid[6] ^ 0x55;
+}
 
 int32_t weebo_app(void* p) {
     UNUSED(p);
-    FURI_LOG_I("TEST", "Hello world");
-    FURI_LOG_I("TEST", "I'm weebo!");
+    FURI_LOG_I(TAG, "Hello world");
+    FURI_LOG_I(TAG, "I'm weebo!");
+
+    // key_retail.bin
+    memcpy(&amiiboKeys, key_retail_bin, sizeof(key_retail_bin));
+
+    memcpy(original, m_bin, m_bin_len);
+    memset(plain_base, 0, sizeof(plain_base));
+    memset(modified, 0, sizeof(modified));
+
+    if(!nfc3d_amiibo_unpack(&amiiboKeys, original, plain_base)) {
+        FURI_LOG_E(TAG, "Failed to unpack amiibo keys");
+        return -1;
+    }
+    FURI_LOG_I(TAG, "Unpacked amiibo keys");
 
     return 0;
 }