2018年5月8日火曜日

ソフトウェアラジオを使ったGPSシミュレータのメモ

位置偽装装置について調べていたら引っかかった製品のメモ

HackRF One

画像は秋月より
ソフトウェア制御で1MHz~6GHzの送受信を行うことができるソフトウェアラジオ
この帯域にはGPSの信号も含まれるので位置情報の偽装も可能となる
位置座標→GPS信号変換のコードも既にある模様

ワンセグチューナーUSBドングルを改造したレシーバが一時流行っていた記憶がある
送信側として使う用途があるのは恥ずかしながら知らなかった
機会があれば触ってみたい

例の位置偽装装置もこれでは…?と思ったが
・2つのクライアントに別々のデータを送っていること
・最終的に有線式になったこと
から別の方式と思われる

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月6日日曜日

M5StackのGPSで手間取ったメモ

M5Stack
http://www.m5stack.com/

ESP32 + ディスプレイ + microSDスロット + αのプラットホーム
ArduinoのShieldのようにモジュールをスタックすることができる

GPSモジュールを使ったのだがいろいろハマってしまったのでメモを残す
画像はスイッチサイエンスより

症状:正しい測位ができない

シリアル経由でGPSモジュールから位置情報が送られてくるのだが数値はほぼ0
位置情報のフォーマット自体は守られているので位置データだけがおかしい
外部アンテナを接続しても症状は変わらず


原因1:最初の測位には時間がかかるため

GPSモジュールの最初の測位には時間がかかる
即位してから数分は正常な値が返されない
電源を投入して数分放置すると正常な値を返してくる
(レスポンスが遅いわけではない/数分間の間は異常な値を返し続ける)
EEPROMなどに前回の測位を記憶しておくことで短縮が可能
(このモジュールには記憶領域は無いため、M5Stack側でケアする前提)


原因2:外部アンテナは必須

このGPSモジュール内の基板にはパターンを含むアンテナが存在しない
外部アンテナを付けることが前提の設計
外部アンテナが接続されていない限りはどれだけ放置してもダメ


どちらもこの手のGPSモジュールでは当然のことらしい
ポケットから取り出して電源ON→即測位…みたいな使い方を期待していたがダメっぽい

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ヵ月分のスコア