aboutsummaryrefslogtreecommitdiff
path: root/src/SPI.cpp
diff options
context:
space:
mode:
authorStapleButter <thetotalworm@gmail.com>2017-05-11 23:43:57 +0200
committerStapleButter <thetotalworm@gmail.com>2017-05-11 23:43:57 +0200
commit01361f006e9ef6d8fd61e95a8bc3f1ac4d749903 (patch)
tree782aa4caac433147eee726001f866fab8922b57d /src/SPI.cpp
parente9a24b4d06d59a9d8cdcfc9be396c9df105f7408 (diff)
(untested yet) code for sending and receiving packets via sockets
MAC randomization
Diffstat (limited to 'src/SPI.cpp')
-rw-r--r--src/SPI.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/SPI.cpp b/src/SPI.cpp
index 2c88197..0e7ac6d 100644
--- a/src/SPI.cpp
+++ b/src/SPI.cpp
@@ -18,6 +18,7 @@
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
#include "NDS.h"
#include "SPI.h"
@@ -138,6 +139,21 @@ void Reset()
*(u16*)&Firmware[userdata+0x72] = CRC16(&Firmware[userdata], 0x70, 0xFFFF);
+ // replace MAC address with random address
+ // TODO: make optional?
+ Firmware[0x36] = 0x00;
+ Firmware[0x37] = 0x09;
+ Firmware[0x38] = 0xBF;
+ Firmware[0x39] = rand()&0xFF;
+ Firmware[0x3A] = rand()&0xFF;
+ Firmware[0x3B] = rand()&0xFF;
+
+ printf("MAC: %02X:%02X:%02X:%02X:%02X:%02X\n",
+ Firmware[0x36], Firmware[0x37], Firmware[0x38],
+ Firmware[0x39], Firmware[0x3A], Firmware[0x3B]);
+
+ *(u16*)&Firmware[0x2A] = CRC16(&Firmware[0x2C], *(u16*)&Firmware[0x2C], 0x0000);
+
// verify shit
printf("FW: WIFI CRC16 = %s\n", VerifyCRC16(0x0000, 0x2C, *(u16*)&Firmware[0x2C], 0x2A)?"GOOD":"BAD");
printf("FW: AP1 CRC16 = %s\n", VerifyCRC16(0x0000, 0x7FA00&FirmwareMask, 0xFE, 0x7FAFE&FirmwareMask)?"GOOD":"BAD");