mirror of
https://github.com/jjshoots/RemoteIDSpoofer.git
synced 2026-05-04 15:16:39 +00:00
Merge pull request #2 from jjshoots/dev
Allow independent mac addr for each drone
This commit is contained in:
@@ -24,5 +24,4 @@ This spawns 16 different fake drones broadcasting RemoteID, with them all flying
|
|||||||
|
|
||||||
## To-Do List
|
## To-Do List
|
||||||
|
|
||||||
1. Set custom MAC address for each Remote ID instance.
|
1. Add GPS capability to automatically create IDs wherever the device is located.
|
||||||
2. Add GPS capability to automatically create IDs wherever the device is located.
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
#include <ESP8266WiFi.h>
|
#include <ESP8266WiFi.h>
|
||||||
#include "spoofer.h"
|
#include "spoofer.h"
|
||||||
|
|
||||||
|
// we are limited by how fast we can broadcast things
|
||||||
const int num_spoofers = 16;
|
const int num_spoofers = 16;
|
||||||
static Spoofer spoofers[num_spoofers];
|
static Spoofer spoofers[num_spoofers];
|
||||||
|
|
||||||
@@ -13,8 +14,8 @@ void setup() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
delay(50);
|
|
||||||
for (int i = 0; i < num_spoofers; i++) {
|
for (int i = 0; i < num_spoofers; i++) {
|
||||||
spoofers[i].update();
|
spoofers[i].update();
|
||||||
|
delay(10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,12 +68,16 @@ ID_OpenDrone::ID_OpenDrone() {
|
|||||||
|
|
||||||
#if ID_OD_WIFI
|
#if ID_OD_WIFI
|
||||||
|
|
||||||
memset(WiFi_mac_addr,0,6);
|
// scrambled, not poached
|
||||||
|
for (int i = 0; i < 6; i++) {
|
||||||
|
WiFi_mac_addr[i] = (uint8_t) (rand() % 16);
|
||||||
|
}
|
||||||
|
|
||||||
memset(ssid,0,sizeof(ssid));
|
memset(ssid,0,sizeof(ssid));
|
||||||
|
|
||||||
strcpy(ssid,"UAS_ID_OPEN");
|
strcpy(ssid,"UAS_ID_OPEN");
|
||||||
|
|
||||||
beacon_interval = (BEACON_INTERVAL) ? BEACON_INTERVAL: 500;
|
beacon_interval = 10;
|
||||||
|
|
||||||
#if ID_OD_WIFI_BEACON
|
#if ID_OD_WIFI_BEACON
|
||||||
|
|
||||||
@@ -409,10 +413,8 @@ int ID_OpenDrone::transmit(struct UTM_data *utm_data) {
|
|||||||
|
|
||||||
int i, status;
|
int i, status;
|
||||||
char text[128];
|
char text[128];
|
||||||
uint32_t msecs;
|
|
||||||
time_t secs = 0;
|
time_t secs = 0;
|
||||||
static int phase = 0;
|
static int phase = 0;
|
||||||
static uint32_t last_msecs = 2000;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
@@ -574,7 +576,6 @@ int ID_OpenDrone::transmit(struct UTM_data *utm_data) {
|
|||||||
// Pack and transmit the WiFi data.
|
// Pack and transmit the WiFi data.
|
||||||
|
|
||||||
static uint8_t wifi_toggle = 1;
|
static uint8_t wifi_toggle = 1;
|
||||||
static uint32_t last_wifi = 0;
|
|
||||||
|
|
||||||
if ((msecs - last_wifi) >= beacon_interval) {
|
if ((msecs - last_wifi) >= beacon_interval) {
|
||||||
|
|
||||||
@@ -653,9 +654,7 @@ int ID_OpenDrone::transmit_wifi(struct UTM_data *utm_data,int prepacked) {
|
|||||||
#if ID_OD_WIFI
|
#if ID_OD_WIFI
|
||||||
|
|
||||||
int length = 0, wifi_status = 0;
|
int length = 0, wifi_status = 0;
|
||||||
uint32_t msecs;
|
|
||||||
uint64_t usecs = 0;
|
uint64_t usecs = 0;
|
||||||
static uint32_t last_wifi = 0;
|
|
||||||
char text[128];
|
char text[128];
|
||||||
|
|
||||||
text[0] = 0;
|
text[0] = 0;
|
||||||
@@ -833,9 +832,6 @@ int ID_OpenDrone::transmit_wifi(struct UTM_data *utm_data,int prepacked) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
int ID_OpenDrone::transmit_ble(uint8_t *odid_msg,int length) {
|
int ID_OpenDrone::transmit_ble(uint8_t *odid_msg,int length) {
|
||||||
|
|
||||||
uint32_t msecs;
|
|
||||||
static uint32_t last_ble;
|
|
||||||
|
|
||||||
msecs = millis();
|
msecs = millis();
|
||||||
ble_interval = msecs - last_ble;
|
ble_interval = msecs - last_ble;
|
||||||
|
|||||||
@@ -138,6 +138,7 @@ private:
|
|||||||
char *UAS_operator;
|
char *UAS_operator;
|
||||||
uint8_t msg_counter[16];
|
uint8_t msg_counter[16];
|
||||||
uint16_t wifi_interval = 0, ble_interval = 0;
|
uint16_t wifi_interval = 0, ble_interval = 0;
|
||||||
|
uint32_t last_ble = 0, last_wifi = 0, msecs = 0, last_msecs = 2000;
|
||||||
Stream *Debug_Serial = NULL;
|
Stream *Debug_Serial = NULL;
|
||||||
|
|
||||||
char ssid[32];
|
char ssid[32];
|
||||||
|
|||||||
@@ -189,7 +189,8 @@ void init2(char *ssid,int ssid_length,uint8_t *WiFi_mac_addr,uint8_t wifi_channe
|
|||||||
// esp_wifi_set_max_tx_power(78);
|
// esp_wifi_set_max_tx_power(78);
|
||||||
esp_wifi_get_max_tx_power(&wifi_power);
|
esp_wifi_get_max_tx_power(&wifi_power);
|
||||||
|
|
||||||
status = esp_read_mac(WiFi_mac_addr,ESP_MAC_WIFI_STA);
|
// no default mac addresses
|
||||||
|
// status = esp_read_mac(WiFi_mac_addr,ESP_MAC_WIFI_STA);
|
||||||
|
|
||||||
if (Debug_Serial) {
|
if (Debug_Serial) {
|
||||||
|
|
||||||
|
|||||||
@@ -66,8 +66,7 @@ void init2(char *ssid,int ssid_length,uint8_t *WiFi_mac_addr,uint8_t wifi_channe
|
|||||||
softap_config wifi_config;
|
softap_config wifi_config;
|
||||||
|
|
||||||
WiFi.mode(WIFI_OFF);
|
WiFi.mode(WIFI_OFF);
|
||||||
|
// WiFi.macAddress(WiFi_mac_addr);
|
||||||
WiFi.macAddress(WiFi_mac_addr);
|
|
||||||
|
|
||||||
WiFi.softAP(ssid,NULL,wifi_channel,false,0);
|
WiFi.softAP(ssid,NULL,wifi_channel,false,0);
|
||||||
WiFi.setOutputPower(20.0);
|
WiFi.setOutputPower(20.0);
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ Spoofer::Spoofer() {
|
|||||||
|
|
||||||
// define location
|
// define location
|
||||||
// 52° 24' 24.4404" -1° 29' 36.564"W
|
// 52° 24' 24.4404" -1° 29' 36.564"W
|
||||||
lat_d =
|
lat_d =
|
||||||
utm_data.latitude_d =
|
utm_data.latitude_d =
|
||||||
utm_data.base_latitude = 52.0 + (24.0 / 60.0) + (24.4404 / 3600.0);
|
utm_data.base_latitude = 52.0 + (24.0 / 60.0) + (24.4404 / 3600.0);
|
||||||
long_d =
|
long_d =
|
||||||
@@ -40,8 +40,6 @@ Spoofer::Spoofer() {
|
|||||||
speed_m_x = ((float) speed_kn) * 0.514444 * 0.2; // Because we update every 200 ms.
|
speed_m_x = ((float) speed_kn) * 0.514444 * 0.2; // Because we update every 200 ms.
|
||||||
|
|
||||||
utm_utils.calc_m_per_deg(lat_d,&m_deg_lat,&m_deg_long);
|
utm_utils.calc_m_per_deg(lat_d,&m_deg_lat,&m_deg_long);
|
||||||
|
|
||||||
srand(micros());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Spoofer::update() {
|
void Spoofer::update() {
|
||||||
@@ -76,4 +74,4 @@ String Spoofer::getID() {
|
|||||||
ID.concat(characters[(rand() % characters.length())]);
|
ID.concat(characters[(rand() % characters.length())]);
|
||||||
}
|
}
|
||||||
return ID;
|
return ID;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user