ラベル M5StickC の投稿を表示しています。 すべての投稿を表示
ラベル M5StickC の投稿を表示しています。 すべての投稿を表示

2020年9月3日木曜日

pokemon Go BOT (位置偽装装置)の改修

以前に作成したポケモンGoBOTに大きく手を加えた
おそらくこれが最終版となる
以下はそのメモ



位置偽装ユニット統合版

以前のポケモンGoBOTは3つのユニットから構成されていた
今回はこれを1つのユニットに統合した
制御マイコンはM5StickCであり、以下の機能をすべて担当する
・wifi位置偽装
・PCからの位置偽装データ受信(および保持)
・サーボモータ制御




TIPS

・スマホの充電ケーブルへの負荷が大きかったため、負荷分散する構造に変更

・サーボは最大電流400mA程度のものを使用
 →M5StickCの5Vから電源供給しているため、ギリギリ

・PCからの位置偽装データ受信方法を変更
 旧:逐次データを受け取る。PC側で送信をループする
 新:最初に一括で受け取る。M5StickC側で参照をループする
 →BOT動作中にPCを占有する必要がなくなった
  データ受信後はUSB電源に接続すればよい



2020年3月14日土曜日

Fake Wifi-GeoLocation for M5StickC概要

前回、M5Atomを6台使ったWifi位置偽装装置を作成したのだが
twitterで『これはESP32単体で実現できる』旨の指摘を受けた
以下は教わった情報をもとにM5StickC1台だけでWifi位置偽装装置を作成したメモ

Wifi位置偽装装置への指摘

M5Atom6台の作例ではそれぞれをアクセスポイント(AP)として動作させていた
しかし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アドレス変更→リブートに数秒かかっていた現行方式よりも良い

コスト・機能ともに改善されてうれしい反面、急にブレイクスルーが来てしまい戸惑う
詳しい人の知見とアドバイスは最高

グッバイ旧プロジェクト

2020年3月13日金曜日

Fake Wifi-GeoLocation for M5Atom x6概要

M5Stack ATOM LITE(以下M5Atom)を使ったWifi位置偽装装置を作った


ざっくり概要:

・6台のM5Atom(APモード)とM5StickCを片方向シリアル接続
 M5SticKCから6台のM5Atomへ片方向通信が可能
 各M5AtomへMACアドレス変更命令を出す

・Wifi位置偽装の理屈
 MACアドレスを詐称した複数のWifiアクセスポイント(AP)を立てる
 Wifiによる位置測定では周囲のWifiAPのユニークIDとしてMACアドレスを使う
 特定位置にあるWifiAP群のMACアドレスを再現すれば位置偽装ができる
 当然ながら位置測定にGPSを併用する場合には無力
 (動画で使っている端末はiPodTouch/こけおどし的デモ)

配線の様子:L字のロングピンが無かったので手曲げで作った

テクニカルな話:

・背面電源供給時の発熱が凄い
 5V≒VCC端子という想定で回路を組んだが発熱が凄い
 単体へのUSB給電と明らかな差がある
 仕様を問い合わせた方がいいかもしれない

・ESP8266とMACアドレス変更関数が異なる
 ESP8266でのwifi_set_macaddr()にあたる関数はesp_wifi_set_mac()

・動画のUSB給電は定格電流を加味していないので注意
 試しに動作させたら動いただけ
 USB給電→背面5Vピンの定格電流は不明
 一応動作しているものの何の保証もない