twitterで『これはESP32単体で実現できる』旨の指摘を受けた
以下は教わった情報をもとにM5StickC1台だけでWifi位置偽装装置を作成したメモFake Wifi-GeoLocation for M5StickC #m5stack #M5StickC— EK孝作 (@ekjigtool) March 13, 2020
『それESP32単体で実現出来るよ?』と指摘があり作成@HanxiaoMに感謝
勉強になりました pic.twitter.com/5qIxZVjLkk
Wifi位置偽装装置への指摘
M5Atom6台の作例ではそれぞれをアクセスポイント(AP)として動作させていたI think you can just use one esp32, and directly send 802.11 raw beacon packages (I am not sure whether the newest esp-idf support that).— HanxiaoMeow (@HanxiaoM) March 13, 2020
(and... maybe altering the tx power will make this works better?
しかしMACアドレス詐称目的ならばフル機能のAPは必要ない
詐称したMACアドレスを含むBeaconフレーム送信機能だけでよい
ミニマムなBeacon送信を実装できればM5Atomを複数使う必要もない
6台分のBeaconフレームを1台でサイクル送信し続ければよい
『MACアドレスを詐称した複数のAPを立てる』がアイデアの根幹であったため上記の指摘は目から鱗であった
作成
教わったGithubのサンプルコードhttps://github.com/Jeija/esp32-80211-tx
ESP-IDF用のプロジェクトだがArduino IDE環境でもほぼそのまま流用できる
(構造体初期化などコンパイラに蹴られる部分あり)
サンプルでは8つのSSIDを切り替えてBeaconフレームをサイクル送信している
これを任意MACアドレスを切り替える方式に修正して前回のソースとマージした
動作チェック
複数台APを立てる現行方式と全く遜色ないむしろMACアドレス変更→リブートに数秒かかっていた現行方式よりも良い
コスト・機能ともに改善されてうれしい反面、急にブレイクスルーが来てしまい戸惑う
詳しい人の知見とアドバイスは最高
グッバイ旧プロジェクト |