
SkyLift 是一款实验性的 Wi-Fi/BT 地理定位欺骗设备,使用 ESP8266 或 ESP32 开发板广播 Wi-Fi 信标帧或蓝牙广播,以模拟远程/目标位置的无线基础设施。上面的示例展示了通过 DataPools 项目(2018)成功地将地理位置定位到 Peter Thiel 位于夏威夷的度假屋。
移动设备(即 iOS 和 Android)在基于太空的 GPS 信号较弱时(常见于城市区域或地下室类空间)依赖这些信息进行核心地理定位服务。
该项目在户外使用多个 SkyLift 设备,将其放置在与真实(目标)路由器相似的位置时最为成功,能够压制现有的 Wi-Fi 基础设施并迷惑大多数移动设备。在拥挤的室内环境中也效果良好,因为人体(其中 2/3 是水)会吸收 Wi-Fi 能量——2.4GHz 正好是水分子的共振频率。
然而,目前仍不清楚 Wi-Fi 数据包结构的最佳设置是什么,还有哪些其他因素会影响覆盖核心地理定位服务的能力,以及移动操作系统是否已集成反欺骗技术。在一般情况下,这段代码的成功率很可能有限,不过硬件原型制作成本低且可能带来显著成果,因此仍是一个值得进一步探索的项目。
http://arduino.esp8266.com/stable/package_esp8266com_index.json,https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json已在 Linux Ubuntu 20.04 上测试
Python
python -m venv venv
source venv/bin/activate
python setup.py develop
skylift
Usage: skylift [OPTIONS] COMMAND [ARGS]...
SkyLift
Options:
--help Show this message and exit.
Commands:
convert-scan Convert WiFi/BT network can to Networks JSON
create-sketch Creates new Arduino sketch from template
将 WiFi/BT 扫描转换为 networks JSON
skylift convert-scan -i path/to/scan.csv -o path/to/scan.json
从模板创建 Arduino 草图
skylift create-sketch -i path/to/scan.json -o path/to/scan-arduino/
自定义更多参数
skylift create-sketch
-i path/to/scan.json
-o path/to/scan-arduino/
--max-networks 12
--board esp32
Linux
sudo chmod a+rw /dev/ttyUSB0pip install pyserial --user