はじめに
ESP32 1個でこーゆーことをします。
元ネタ
4月8日に、
Send arbitrary IEEE 802.11 frames with Espressif's ESP32
がGitHubにアップされ、
4月24日に HACKADAY の
ESP32’S FREEDOM OUTPUT LETS YOU DO ANYTHING
という記事で紹介されました。
「freedomなフレーム送信方法が見つかった → 例としてビーコンスパムを書いてみたよ」
ということみたいです。
ビルドしよう
ESP-IDFの環境が必要です。
ESP32(ESP-WROOM-32)でLチカ (WindowsでESP-IDF使用) などを参照してみてください。
元ネタのREADMEによると、esp32-wifi-libのバージョンが当時のものでないとダメのようです。(最新版で試したところ、makeは通るものの、焼いて実行すると途中でハングするような動作でした。)
ということでesp32-wifi-libだけ差し替えてみたんですが、makeが通りません。
とりあえずesp-idfディレクトリごと削除してから、環境を作り直しました。
git clone https://github.com/espressif/esp-idf.git
cd esp-idf/
git checkout dc6c19f5604bce0b13c57df1b4998aac022688f6
git clone のときに --recursive オプションを付けると、サブモジュールが最新になってしまいます。
付けない場合は、makeするときに自動的に当時のバージョンのサブモジュールを拾ってくれます。
(サブモジュールが最新になっていても、当時のバージョンに合わせるコマンドがあると思うのですが、gitについては詳しくないのです。すいません。)
環境ができたら、https://github.com/Jeija/esp32free80211 を拾ってきて make menuconfig などなどします。
SSID修正
例のソースでのSSID一覧(歌詞)の元ネタがイマイチ良くわからないので、日本のネットでバズりそう な一覧に変えてみましょう。
rics_ssids[] の中身を修正するだけです。
"0672_壬申のLAN",
"0935_平将門のLAN",
"0939_藤原純友のLAN",
"1156_保元のLAN",
"1159_平治のLAN",
"1180_源平の内LAN",
"1221_承久のLAN",
"1467_応仁のLAN",
"1637_島原のLAN",
"1651_由井正雪のLAN",
"1837_大塩平八郎のLAN",
"1851_太平天国のLAN",
"1874_佐賀のLAN",
"1894_東学のLAN",
年号などは中学歴史に出てくる「ナントカの乱」一覧まとめを参考にしました。
ソースはUTF-8で保存します。
ちなみにSSIDは、規格上は32オクテットのバイナリで、一般的にはASCIIコードとして解釈されています。UTF-8で書くと、端末によってはUTF-8として解釈してくれる場合もあります。最近の端末ではだいたいUTF-8として解釈するみたいです。
終わりに
こんなことができてしまうと技適は大丈夫なのか不安になりますね。規制当局から怒られないように注意しましょう。
なお、私は念のため電波暗室でテストしました。(`・ω・´)キリッ