ラベル 無線LANモジュール の投稿を表示しています。 すべての投稿を表示
ラベル 無線LANモジュール の投稿を表示しています。 すべての投稿を表示

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日金曜日

m5Atomの給電方法を調べたメモ

m5Stack公式のツイートを発見
これを信じるならば背面5Vへの電源供給は正常な用法といえる

wifi位置偽装方法のざっくり解説

スマホのWifiを使った位置測定の基礎知識:


測定シーケンスは以下の通り
・周囲にあるwifiアクセスポイント(複数)の名前を調べる
 →wifiアクセスポイント:個人宅の無線LANルータや店舗のホットスポットなど
・アクセスポイントの名前を使って位置情報データベースを検索する
・データベースから位置座標を取得する

メリットはGPSより測定が高速なこと
デメリットはデータベースへのアクセスが必要なこと、精度が悪いこと
このためGPSと併用して使われることが多い

Wifi位置測定を騙す偽装方法:

偽装方法は以下のとおり
・偽装先の周囲にあるwifiアクセスポイントの名前を調べる
・名前が可変のアクセスポイントを複数準備する
・偽装先で調べたアクセスポイントの名前を準備したアクセスポイントに設定する

メリットは特殊な機材や高度なプログラミングが不要であること
デメリットは現地調査が必要なこと、精度が悪いこと、ノイズが多いこと、GPSと併用されると成立しないこと

テクニカルな補記:


・上記における『アクセスポイント名』とはBSSID(≒MACアドレス)のこと、SSIDではない
・位置情報データベースは複数存在する(google、Apple、MS…)
・データベースによってはSSID、電波強度等も副次的なパラメータとして使用する
・データベースは逐次更新される
・偽装用アクセスポイント以外の電波を遮断(減衰)する工夫がないと使い物にならない
 (もともと周囲にあるアクセスポイントが位置情報データベース検索に使われてしまう)
・ウォードライビングサイトなどで現地調査を省くことができる(場合がある)
・偽装用アクセスポイントはIP網に接続する必要は無い
・偽装用アクセスポイントの電波強度は極弱にすること
 (第三者の位置測定における酷いノイズになる)

※この方法は実用性がないので『アプローチは面白い』以上のものにはならない
  (ソフトウェアで偽装する方が簡単で精度も高い)

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ピンの定格電流は不明
 一応動作しているものの何の保証もない

2020年3月12日木曜日

Tic Tac Toe for M5Atom x9概要

M5Stack ATOM LITE(以下M5Atom)を使った〇×ゲーム(Tic Tac Toe)を作成した


ざっくり概要:

・9台のM5Atomを片方向シリアル接続しており、環状に通信可能
 上流から来た情報を下流に再送するイメージ
 この環状通信でボタンの押し下げとLED点灯命令をやりとりする

・9台のうち1台が親機で残りは子機
 〇×ゲームを処理するのは親機
 子機へのLED点灯命令発行、子機からのボタン押し下げイベント受理を行う
 子機は自分のボタン監視(イベント発行)とLED制御のみ

配線の様子:ジャンパ線の長さがまちまちなのは手製のため

テクニカルな話:

・M5Atomは背面5Vへの電源供給で動作
 実動作上は5V≒VCC端子
 回路図が公開されていないのでやや不安
 給電には5V2AのACアダプタ使用
 3/13追記:
  背面からの給電でアクセスポイントとして動作させた際の発熱が凄い
  USB給電の場合と比べてはっきりと発熱に差がある
  仕様がはっきりするまで給電に使うべきではないかも…

・1台にUSB給電するとほかの8台もドライブしてしまう
 定格電流やUSB給電の仕様が公開されてないので怖くて使っていない
 一台当たり50mA強はいけそうな気もするが…?
 今後の課題とする

・〇×ゲームにはミニマックス法を使ったため、プレーヤーは一生勝てない
 クソゲーである
 (※〇×ゲームは互いに最善手を打つ限り常に引き分けるゲーム)
 意図的に手加減する処理を入れないと病む

M5Atomは電源周りの情報がないのが不安

2020年2月21日金曜日

M5Stack ATOM LITEを購入

AliExpressで注文したATOM LITEが届いたのでそのメモ
なお技適の問題があるので使用にはご注意

ATOM LITEとは

M5StickCからLCDとバッテリーなどを外した小型のM5Stack
上位機種として5x5のLEDを搭載したATOM Matrixがある
USB-シリアル変換付きで筐体のあるミニマムなESP32といったところ

小型のM5Stack

外観

24x24x10mmとM5StickCの半分以下のサイズ
背面に2.54mmピッチのGPIOポート
他のポートはUSBType-CとGroveポート
※公式ページには4P PH2.0とあるが明らかにGroveポート
 PHコネクタ4ピンは干渉して挿さらないことを確認
 強引に挿すためには両方を切削する必要がある

パッケージ/本体以外の同梱物無し
現物の表と裏/技適表記は無い/Groveポートのノッチ付きコネクタが確認できる
筐体を開けた状態(裏側)/ピン表記シールの下にはM2ビス用穴あり
筐体を開けた状態(表側)/内部チップにも当然ながら技適表記無し

動作確認(電源供給だけ)

公式ページで回路図が未公開のため以下の2点を実機動作確認した
(※回路をチェックしたわけではないので注意)

1.背面GPIOポートの5Vから本体に給電できるか
 →できる
2.Groveポートの5Vから本体に給電できるか
 →できる

LITE複数使いの場合にTypeCケーブルを何本もぶら下げる必要はない模様

5VをGrove端子から入力→成功
5Vを背面5Vポートから入力→成功


2020年1月8日水曜日

ESP8266を用いたwifi位置偽装装置の電流値測定

ESP8285を用いてモバイル電源で動作する位置偽装装置の開発を予定している

モバイル電源の使用にはESP系チップの高い消費電流がネックとなる
定格とは別に位置偽装装置システムにおける実消費電流を調査する

ESP8266の動作と消費電流

パワーオン時に200~300mAのピークがあると言われている
いったん起動してしまえばデータシートどおりの動作をする
起動時に電源の電流容量が不足すれば電圧降下によって起動できないケースがでてくる
自己復旧できないのでこれは問題

測定対象システムの概要

位置偽装ユニット
ESP8266を6基、RN-41-SMを1基使用
ESP8266はwifiサーバとして動作し、30秒おきに設定が変更されリスタート
RN-41は30秒おきに接続先からマクロを受け取る

実測定結果(起動時)

5回測定のピーク電流が1200mA弱
300mA×6を覚悟していたが実動作上はタイミングが重複するわけではない模様
(元からサーバをbeginするタイミングはズラしている/効いているかは不明)
測定モレするようなスパイク状のピークがあった場合は見逃してしまうので注意

電源端子のあたりで測定
測定例

測定結果(動作中)

動作を10分継続した場合のピーク電流は600mA弱
定常電流との振れ幅は100mA未満
こちらは想定よりも高め

考察

起動時のピーク電流さえやり過ごせば1Aもあれば良い
・ESP8266を二群に分けてディレイ電源供給
 →ピーク電流は900mA程度?
・ESP8266をリレー形式で1つずつディレイ電源供給
 →ピーク電流は700mA程度?
剛腕戦略をとるならば2Aのモバイル電源を用意すればいい

消費電力は定常電流に3.0Vをかければいいので定常ピークで考えても1800mW程度
モバイル運用しても問題ない程度の消費電力と言える

INA219ブレイクアウトボード+M5Stackで簡易電流測定

以下は簡易電流測定器を作成したメモ

動機は電流測定無しでESP8266系チップを弄るのに限界を感じたため

INA219ブレイクアウトボード

今回はAdafruit製のブレイクアウトボードを使用
測定した電流をI2C経由で読み取り可能
(同様の模造品が沢山あり、そちらでも問題無いハズ)

電流測定したい箇所にVin+とVin-を使って挟み込む(GND側がVin-)
電圧も測定したければ測定対象と更にGNDを接続する
困ったらAdafruit

M5Stack

ディスプレイがあり、microSDカードが読み書きできるため使用
(ただし今回はまだSDカード出力は実装していない)
GPIO21(SDA)、GPIO22(SDL)を用いればI2Cライブラリを使用可能
(SDA、SDLポートが別途あるが、内部で結線されている)

作成方法(配線)

M5Stackの上部端子(メス/2.54mmピッチ)に
・GND
・3V
・GPIO21(SDA)
・GPIO22(SDL)
が並んでいるのでこれをINA219に結線すればよい

INA219の各端子に2.54mmピッチのピンを立てる
都合の悪いことにSDAとSDLの位置が逆
今回は極細配線で強引にクロス接続した
(本当は中継基板を作ってそこでクロスさせた方が楽で賢い)

Vin+とVin-にアクセスしやすいように端子台とメス端子をハンダ付けして終了

INA219(4ピンオス)を上部端子(8ピンメス)に挿して運用すると事故原因になる
このためダミー4ピンオスを追加して8ピンオスとしている
(ダミーは結線せず、根本で切断)

結線:SDAとSDLのクロスが強引
結線:SDAとSDLをこね回した結果のコゲが痛ましい

作成方法(プログラミング)

INA219ブレイクアウトボードはArduino用ライブラリが存在
(Adafruit_INA219.h)
機種依存が無いためM5Stackでもそのまま流用できる
Adafruit社ページからDLしてArduinoライブラリにインポート
(あるいは『ライブラリ管理』から『INA219』で絞り込んで導入)

M5Stackの画面表示はサンプルスケッチ参照のこと

SDカードに吐き出す部分を作ればロガーになるがひとまず測定のみ実装
ピーク電流を比較・更新する以外はAPIの結果をそのまま表示しているだけ

測定回路のGNDをM5StackのGNDに接続する必要あり/写真の使い方では電圧測定値は無効
マルチメータで確認

2019年9月23日月曜日

ポケモンGoBOT(位置偽装装置)稼働3年目

以前に作成したポケモンGoBOTは現在も稼働中(3年目)である
以下は現時点の構成、稼働状況についてのメモ
 20ヵ月目の過去メモ

システムを構成する3点セット

位置偽装ユニット

6基のESP-WROOM-02と1基のRN-41-SMからなる位置偽装ユニット
前回から構成の変更なし
かなりの稼働時間にもかかわらず未だに一基の故障もない

画像は以前のもの

GoPlus+サーボモータ制御ユニット

自動化したGoPlusとサーボモータ制御用マイコンをUSB電源に繋いだユニット
前回とほぼ同じ
以前にGoPlus自動再接続機能を追加したが、動作が不安定であるためオミットした

左が制御ユニット/別件で使用したためGoPlusは基盤むき出しで使用

スマホ揺らしユニット

スマホ(ここではiPodtouch)を揺らすユニット
サーボの損耗が激しいため置台を軽量化した
(保護ケースの背面中央にサーボホーンを接着しただけ)
また、モータ固定用のゴム台が破損したためユニバーサルプレートで新造した

保護ケースにサーボホーンが接着されているのがわかる
ある程度の接地面が無いと揺らしたときに倒れる

クライアント

wifiアンテナを除去したiPodtouch(第7世代)に有線LANアダプタを付けたもの
ライトニング端子に直接接続できるアダプタ(ノーブランド)に変更
性能は懐疑的であったが問題なく動いている

アダプタ自体の作りは非常にラフ/LANケーブル挿抜だけで外装が外れそうになる

位置偽装の知見

・同一端末複数アカウントのチェックが緩い(もしくは無い)
 キラポケモン等の要素追加に伴い、同じ環境で別垢キャラを育てている
 (TL39程度)
 現時点で警告やbanは無い

・wifiアンテナ除去+有線LANの効果が非常に高い
 現在の環境ではiPodtouchから見えるAPは位置偽装ユニットの6基のみ
 位置偽装に理想的な状態を作ることができている
 
 ※ただしここまでアンテナ依存なのは珍しい設計
 アンテナが無い基部のみでもある程度の受信能力を持つ
 他のスマホでアンテナ除去しても受信能力がここまで下がることはない

・APの情報が経時で使えなくなる問題
 一度構築した位置偽装用AP群のデータが経時で使えなくなる問題は健在
 以前はこの問題に対して
 『位置偽装によって位置情報データベースを汚染しているのでは?』
  (→周囲にあるAPを偽装先の位置情報と結びつけてしまう)
 という予想をしていた
 現在の環境では位置偽装ユニット以外のAPは検知できないので想定は成立しない
 位置情報データベース自体が逐次更新されているものと思われる

3年2か月分のスコア




2019年8月6日火曜日

気になる電子パーツのメモ(2019/08)

以下は最近気になった電子パーツのメモ

・REVIVE USB MICRO
 ビットトレードワン
REVIVE USBの新型
大幅に小型化&USBmicro端子に変更&安価に
コントローラー筐体により組み込みやすくなった
マイコン要らずでコントローラが作成可能(USBキーボード/マウス操作と等価)

・ESP-8285
 Espressif Systems
ESP8266の廉価小型化モデル
電源面でも優位でESP8266より電圧降下に強いとのこと
AliExpressあたりではアンテナ基板付きが2.0~1.5ドル程度
安い
画像は基板マウント版/コアは1円玉くらい

・M5StickC
  M5STACK
ここではVではなくCの方
ニューラルカメラ、音声認識がこのサイズこの価格で!とVは人気爆発中
入手が難しい状況に
なぜここでCか?というと値崩れの兆候があるため
AliExpressあたりでは付属品無し版が10ドル程度
Cは小型版M5Stackでありディスプレイサイズや拡張を求めなければ十分

処理性能は十分

 

2018年5月7日月曜日

YouTubeの位置偽装装置に対する考察

YouTubeで公開されている位置偽装装置に対する考察
商売っ気を出している&フェイクの可能性もあるのでリンクは無し
真偽不明なのがワクワクするね

偽装方法の考察:

iOS用外付けGPSのハックと思われる
 ・既製品の外付けGPSをPC側から座標指定できるようにした
  (ファームのハック、もしくは開発者モード、開発者コマンドなどによる)
 ・マイコン等で外付けGPS自体に偽装している
  (iPhone側からは正規の外付けGPSに見える)
のどちらか
強気の値段、受注生産である点を考えると前者か?
(既製品の流用であるためそもそもの原価が高い)

動画からわかること:

・対象はiPhone
 (最新Verクライアントが起動しているので、JBはしていないという設定のハズ)
・PCから座標形式で偽装先を指定している
・何らかの装置がPCとUSB接続
・装置の外装はムクの適当なケース
・Ver1.0は無線、Ver2.0はUSBで装置に接続
・Ver1.0では2台同時かつ別座標へ偽装を実施している

>・PCから座標形式で偽装先を指定している
GPSレイヤーのハッキングである可能性が高い
座標→APの逆引きはリアリティがないし、道なりに歩くなど位置精度がかなり高い

>・2台同時かつ別座標へ偽装を実施している
同じデータを周囲にブロードキャストしているわけではない
少なくとも2台別々に異なるデータを渡すことができる
この点から偽装したGPS信号そのものを周囲に発信していないことが分かる

>・無線orUSB接続
無線(おそらくBluetooth) or lightning接続という点から外付けGPSが想起される
iOSは『GPSのみ』での動作が可能なのでwifiやLTEによるAP測位は無視できる
(ただし最新iOS最新クライアントVerで外付けGPSプレイが可能かは未確認)
GoPlusでBluetoothを使うことになるので、重複を避けて有線にした?
単なる低コスト化で中身を有線タイプにした?


流石に購入する熱意は無いので人柱待ち

2018年5月5日土曜日

ポケモンGoBOT(位置偽装装置)その後

以前に作成したポケモンGoBOTだが未だに稼働中(20か月目)である
以下は現時点の構成、稼働状況についてのメモ

位置偽装ユニット

6基のESP-WROOM-02からなるユニット
以前は制御ユニットとしてArduino pro mini(3.3V)を用いていたがオミット
現在はPCとのシリアル通信用にRN-41-SMに換装している
これはPCのシリアルターミナルから偽装情報を投げるのが一番便利だったため

ガワはセリアのペンケース
ESPのRXをRN-41-SMのTXと結線/配線はチップの裏側

RN-41-SMはRS-232C関連の機能を使わなければ3.3VでOK
電源投入後はPCからBlueToothデバイスとして認識される
接続後はシリアルポートが増えるので、そのポートに対してシリアル通信するだけ
(通信速度やプロトコルは事前に適宜変更しておくこと)

ESP-WROOM-02は非常に堅牢でかなりの稼働時間にも関わらず故障率0
えらいぜ

GoPlus連打ユニット

以前はサーボモータでGoPlusを連打していたが全自動方式に変更
(GoPlusのLEDとタクトスイッチの配線を直結)
電源はUSB端子経由の5.0Vをレギュレータで3.0V降下して使用
ボタンは頻繁に押すため配線を引っ張り出してケースに外付け

昇降ユニットと同じケースにまとめてある
ボタンをケース外に引っ張り出すと非常に便利

iPod昇降ユニット

スマホの置台をサーボモータで揺らすユニット
以前はSG-90で上下に揺らしていたがこれは筋悪であった
負荷が重く、誤作動原因の故障も含めて20ヵ月で5個焼損
サーボをより大型のMG995に変更し、揺らす方向も左右に変更

ユニバーサルプレートで平置き台を作成
置台の裏側にサーボをポン付け/サーボは十分な重さの台に固定
iPodTouchを置いたところ/これがサーボで30°程度定期的にスイングする

MG995および制御用AVRは5.0V駆動可能なのでGoPlusユニットと電源を共有
(ただし、500mAを越える可能性があるため充電器の使用が前提)

クライアント(iPod Touch)

一年を超えたあたりでバッテリーが妊娠してホタテ貝オープン状態
バッテリーを交換した
稼働20ヵ月で一番のコスト

位置偽装の知見

・一番のノイズ源は自宅の無線ルータ
 複数チャンネルの十分な電波強度があるAPで位置偽装における一番のノイズ源
 偽装APを何個立てても現在位置からピクリとも動かない場合はほぼこれが原因
 以下のような施策が必要になる
 ・MACアドレスの定期的な変更
 ・電波強度のダウン
 ・未使用チャンネルの無効化
 ・クライアントから距離をとる

・使えなくなるAPへの対策が無い
 偽装装置運用中に構築済の偽装データが使えなくなることが頻発する
 おそらくはデータベースが偽装データで更新されてしまうため
 (偽装先のAP情報と周囲にある実際のAP情報が結び付けられた)
 データベース更新のタイミングや規則性については全く分からない
 一度使えなくなったデータが復活する場合があるのは確認済

約20ヵ月分のスコア






2016年8月30日火曜日

解決:ESP-WROOM-02のソフトAPが頻繁にハングアップする問題

ESP-WROOM-02のソフトAPが頻繁にハングアップする問題に悩んでいたが解決した

大ハマりのオチってこんなパターンが多い

原因はArduinoIDEのesp8266用パッケージが古すぎたこと
IDEのツール→ボード→BoardsManagerからesp8266用パッケージをアップデートすればOK

電源容量やAPIの仕様を散々調べたオチがこれで脱力してしまった
これまで30分おきにリセットして強引に運用していたのがバカみたいだ

位置偽装の検証では動作不良の監視のためにPCから操作していたがそれも不要になる
単純なシリアル出力で良いのでArduinoなどのマイコンに置換したい
(もしくはESP-WROOM-02の1基に行わせたい)

2016年8月14日日曜日

ポケモンGOで位置偽装を試したメモ

以下はポケモンGOで外部装置を用いた位置偽装を試した際のメモ

期待されると悪いので最初に結論だけ書くと
・偽装はできた(一応)
・明らかに異常な挙動なので運営にはバレる
・他のチート方法に比べてリスク/メリットの比が悪すぎる
以下は実用的?なチート方法やBOTを調べたい人には無駄な情報
検索ミスで来てしまった人は申し訳ない
一応試したけど実用度はかなり低いです

クライアントバージョン履歴:
日本で配信が開始されてから2回のバージョンアップが行われている
位置偽装に関係する機能も変更されているのでここにメモを残す
なお、古いクライアントはサーバ側からキックされてプレイ不能

・ver0.29.3(2016/07/22)
国内ファーストリリース
GPSオフ(wifi測位のみ)でもプレイできた

・ver0.31.0(2016/07/31)
GPSオフの場合起動しない
起動後にGPSがオフされた場合はオンされるまでゲームは停止する
GPSの測位にタイムアウトが存在し、タイムアウト時には測位せずに続行する
(GPSオン時のみ/GPSオフ時はタイムアウト無し)

・ver0.33.0(2016/08/09)
GPS測位のタイムアウトが無くなった
測位できない場合はプレイ続行不能になる
高速移動における警告が追加
高速移動を検知すると警告画面が表示され、解除するまでゲームは停止する
(孵化装置の距離カウントも停止)
2016/08/18追記:
GPS非搭載機種(KindleFire)にてGPS測位がスキップされることを確認
ただしすべての機種にあてはまるかは不明


位置偽装時の挙動:
以下は外部装置を用いた位置偽装を行った場合のクライアントの挙動について

・wifi測位の周期は20秒前後
測位は連続的ではなく周期的に行われている
周期より短い間隔でAPの設定を変更しても無駄
前の周期と違う場所が測位された場合は移動が発生する
2点間の距離が長すぎる場合は高速移動警告が発生する

・GPS測位が周期的(2~3分)に行われる
wifiと同様に周期的に測位が行われる
wifiで位置偽装していた場合でもここで本来の位置を測位してしまう
wifiと位置が大きく異なる場合はGPSの測位が優先される
wifiで偽装した位置からの距離が長すぎる場合は高速移動警告が発生する

・偽装できた距離について
1km程度離れた場所までは動作確認がとれている
フィールドワークが必要な関係で遠距離での動作確認は行っていない
あまりに距離が離れると高速移動警告以外のペナルティに抵触するかもしれない

・基地局を用いた測位には勝てない
SIMを挿した場合、位置偽装はほとんど機能しない
基地局を用いた測位の周期が短く、優先度も高いのだと思われる

・GPSの測位を無効化できなくなった
ver0.31.0ではGPS測位のタイムアウトが存在したため、電波の遮断などで測位を無効化できた
ver0.33.0では測位に失敗するとゲームが止まるため、単純な方法では無効化できなくなった

・高速移動警告によるBOT対策
高速移動の判定はかなり敏感であり、普通にプレイしていても日に数回は発生するほど
BOTや自動操作による放置中に発生した場合、解除するまでゲームの進行は停止する
どれだけ慎重に制御しても必ず警告が発生するため、警告解除の機能を盛り込む必要がある
一度警告を解除するとしばらくは警告画面が出なくなる


外部装置を用いた位置偽装の問題点:
GPSの定期的な測位を無効化できないのが一番の問題
数分おきに偽装位置からのテレポートが発生してしまう
あきらかに異常な挙動であるため運営にバレる可能性が高い
再測位される(数十秒後)まで偽装位置に戻れないので快適なプレイも無理
また、テレポートによって高速移動警告が頻発するためこの対策も必要
(放置時にリレータッチボード等を用いて外部から解除することは可能)


外部装置を用いた位置偽装のメリット:
本来の位置から100~200m程度の偽装ならばGPS誤差に紛れることができる
root化不要/海賊版クライアント、無許可APIの類を用いるリスクが無い
今後クライアントがアップデートされても使える可能性が高い
ポケストップや沸きポイントを巡回するようなマクロを組んでおけばオペレーションフリー
勝手に移動するので部屋の中からスマホ実機でプレイできる
(移動以外はユーザーが操作する必要がある)


その他の情報:
・孵化装置のアベレージは2km/h程度
wifi検知周期と高速移動警告のバランスをとるとこの程度になる
同じマクロで動かしても距離のブレが大きい
これはGPS測位に伴うテレポートをカウントする場合とそうでない場合があるため
条件はイマイチ掴めない

・ESP-WROOM-02のソフトAPがよく落ちる
2~3時間に一回は落ちて動作しなくなる
メインループ自体は生きているので何がおかしいのかがよくわからない
頻繁にMACアドレスを変更するのがダメなのか…?
現在は定期的な本体リセットによって無理やり解決している

・クライアントの挙動がおかしい場合は再起動
よくいわれているソフトBAN(軽微なペナルティ)は全然発生しない
(ただし遠距離の偽装については未確認)
稀にポケストップが反応しなくなるのだがアプリを再起動するとすぐ直る
ソフトBANではなく単なるクライアントの不調ないしバグに見える

・スマホの発熱が凄い
リッチクライアント+高頻度のwifi(GPS)アクセスによる負荷と発熱が凄い
また、バックグラウンド動作やスリープ中の動作もできない
マクロを数時間回すと発熱の警告で充電が止まる
ファン等で冷却しないと長時間放置は無理

・本来のナイアンティックのBANは苛烈
今のポケモンGOは各種不正を完全放置している状態にある
これはおそらく各国でのローンチやバグの修正にリソースを割いているため
イングレスを見る限り本来のナイアンティックは不正に対してかなり厳しい
巻き添え誤BAN上等で位置履歴に基づく容赦のない処分を行った過去がある
ポケモンGOもリソースに余裕ができたら履歴に基づき大量処分が行われるものと思われる

2016年8月5日金曜日

改良編:外部機器を用いたスマホの位置偽装

前回完成したものをブラッシュアップしたメモ

今度こそこれで完成としたい

前回の問題点:
周囲のAPを遮断しきれない点が一番のネック
どれだけ頑張って偽装しても本来の測位をされてしまった時点で台無しになる


改良の概要:
再現用AP(群)と偽装対象のスマホを電波を遮断する容器に密閉してしまう
完全な遮断は無理だがこのシステムに必要な程度の減衰は十分望める


必要なもの(前回用いたものは省略):
・電波遮蔽用の容器
再現用APとスマホが入る容積があること
電波を遮蔽する素材でできており、密閉できること
ケーブルを引き込む開口加工が容易であること
以下は実用性のあったもの
1.100均のクーラーバッグ
アルミシートで表面が覆われており適度な容積がある
何より安価で入手しやすい
難点は保温性があること
スマホが発熱するためこれは都合が悪い
2.100均一のアルミシート
樹脂シートにアルミを蒸着させたもの
単独で使ってもよいし、他の容器をさらに包んでもよい
保温用途に裏地が厚いものは避けたい
3.クッキー缶や茶筒
密閉性が高く堅牢である
より効果を上げるには継ぎ目をアルミテープで目張りするとよい

画像はバッグタイプだが角型の方が使いやすい

出来ればペラペラのものを選ぶ


・必要に応じた各種ケーブル等
密閉してしまうため当然ながら画面を見ることはできないし、操作もできない
HDMIケーブルやUSBマウスなどを用意すること
また、スマホと自宅Wifi間も相応に減衰してしまうのでできれば有線LAN接続すること
マクロによる完全放置ならば不要

・タッパなどの絶縁容器
偽装用APが基盤むき出しの場合に使用
遮蔽用の容器は伝導性があるため、そのままではショートの恐れがある
絶縁容器によって保護すること


改良の方法:
前回のシステムを絶縁容器で包むだけ!
必要に応じてケーブル穴を開けること
スマホの温度上昇に気を付けていきなり長時間放置しないこと