從技術面來講解釋一下 NIA 不抓飛人的原因,我不特地去拆遊戲,就從現有的資料去分析,如果這樣也算違規那我也不知道是文字獄還是醉了,基本上我熟的是 iOS App 跟伺服端的部分,Android 因為實在不想碰所以就不甚了解了,請見諒
OK,首先這個遊戲靠什麼?
靠定位座標,理論上系統可以參照的不只有主流的全球衛星定位系統(GPS),也可以使用俄國的格洛納斯(GLONASS),座標系不同沒關係,系統自動解算再轉換就好
而 GPS 的定位座標格式會是這樣: lat ±***.******, lon ±***.******,在開發環境中通常是以這種格式儲存在一個類似 XML 語法的檔案裡面,檔名通常是 .gpx
其實目前是用一種很消極的方法去抓,或是說限制飛人的行動,就是看你平面的向量
是的,你移動一定會有一個向量在,雖然我們都說直接從手機的系統層拿加速規跟陀螺儀的數據就可以解算向量,但利用座標系的變化解算出向量是可行的,這也是那些 GPS 測速、軌跡紀錄 App 的原理
為什麼會警告你你移動速度太快?為什麼有軟便要轉牌子才能解鎖?就是那個向量超出 NIA 設定的門檻值,當然目前那個警告牌是脫離純粹的免責(就是你開車、騎車玩我應該警告你的、提醒你的都做了,出事別吉我),而開始有增加脫逃率與不讓轉牌的功能了
但即使有向量值可以作判定,但變數其實不少,首先 GPS 座標系是會暫時儲存在記憶體裡面,所以會發生那種重新讀取前你在 A,更新座標系之後就被甩到 B 去,尤其這遊戲蠢到不讓你背景執行所以更容易這樣
再來是訊號的問題,不論是 GPS 在兩萬公里的高空,格洛納斯系統也有一萬九千公里,訊號到達地面上時其實很微弱,干擾因素很多,高樓大廈產生的繞射、各頻段電磁波的干擾、遮蔽物、手機天線的收訊因素等等都會影響解算,即使是使用行動電話基地台的 A-GPS 也會因為繞射跟手機訊號不良而失準,GPS 跟格洛納斯系統在室內就無用不說,A-GPS 把你甩來甩去還可以孵蛋相信大家都有經驗,要記住,無線網路的訊號也是會繞射跟有穿透率問題的
所以該如何用定位座標座標抓飛人呢?其實用向量單位去抓就好,也就是說看你加速的幅度,時速幾百公里它可能當正常,但時速超過一千這就很有問題了,你從台北車站甩到南寮漁港瞬間向量六十幾公里,換算成速度時速二十萬這絕對有問題,高鐵台北到台中時速換算一百二十幾公里理論上沒問題,不然我那天飛雪梨理論上到當地應該會吃軟便,但沒有發生,不過不知道 NIA 對於這個異常向量會不會紀錄就是了
但現在飛人程式一堆都有導航功能,猛一點的還讓你選交通工具改速度外加模糊機制模擬訊號差異導致的漂移,這要怎麼抓?頂多就真的很誇張、很明顯是作弊到被回報的 NIA 調資料出來看看,但他們真的有處理嗎就(ry
有人提到用 GPS 座標搭配 IP 去看是不是飛人這也有問題,首先昨天歸屬在這個 ccTLD 下面的 IP 可能會換成另外一個 ccTLD 擁有,如果資料庫延遲更新可能會發生誤判,而且 GeoIP 資料庫更新很慢、超慢,外加手機漫遊這個選項,很多手機漫遊的網路流量是會導回所屬國家、所屬電信商的機房,就像在中國大陸用漫遊的種花奠信用戶即使手機上顯示中國移動,你的 IP 還是在台灣的種花奠信機房下,我用舒拉亞衛星的 ThurayaIP 上網的話,會說你在中東的阿布達比
那最簡單也最消極的方法?其中就是鎖 Android root 跟 iOS 越獄,畢竟正常來說很多偷雞摸狗的功能是系統原來不允許的,對啦~那個開發模式是兩大系統都可以拿來惡搞跟作弊的,但會寫 Code 自己惡搞的應該不多,上傳給大家眾樂樂也會被 NIA 吉,iOS 來說目前 iOS 10 是沒辦法越獄的,某些狗機摸狗的 App 會用到 Private API 所以通常是開發者自爽,說真的沒人會拿自己花錢跟蘋果買的開發者帳號開玩笑跟被吉,所以通常都是在越獄後的 Cydia 跟其他軟體源上架,但越獄就是有資安風險,所以自行拿捏
所以我認為 NIA 在使用新版 API 的同時卻不關閉舊版 API 來釣魚是很有才的玩法,但這招說實在要透過強迫使用者更新使用新版 API 的客戶端來避免掃到正常使用者,所以效率其實很差,頂多就被殺的都可以確定有問題而已
==
改版的出怪 API 在 TTL 上改用分鐘制其實有優點也有缺點,但沒意外的話這是 Nearby 全面上架的前奏,晚點有空再另外解釋
文字獄,sigh