no-image

任天堂がルート化対策を始めた

ルート化対策

具体的にはルート化したAndroid端末及び、JailbreakしたiPhoneが対象。

公式のニンテンドースイッチオンラインのアプリでログインできなくなります。通信を見たところ、トークンを認証してセッションキーを発行する辺りで躓いている様子。

じゃあ、ikawidget2使えばいいやん?って思ったそこのあなたは甘い。

システムソフトウェア6.0.0になって(有料化したタイミングで)認証方式が変わったために、ikawidget2が対応していないのです。

ログインを試みるとイカのような画面が表示されてログインできないことがわかります。

このUpgrade requiredというのは、認証方式が新しいものに変わったから認証方式をアップグレードしろという意味になります。

本来このリンクはニンテンドー公式アプリでしか開くことを想定していないので、旧バージョンのニンテンドー公式アプリを使っていても同じメッセージが表示されると思います。

脱獄対策はアンチチートか

おそらく有料化のタイミングでアンチチートを目的としてアプリに脱獄対策機能を施したのだと思われる。

しかし、iksm_sessionを取得することでできるのは精々データをダウンロードする程度で、Xパワーを書き換えたりはできないと思うんですがどうなんでしょう?

知らないだけでそういうAPIがあるのかも知れませんね。

任天堂の脱獄対策機能はかなり強力

Super Mario Runやどうぶつの森などは脱獄しているとそのままでは起動しない。

Liberty、Xcon、Breakthroughなどの脱獄対策回避アプリもその殆どが機能しない。

というわけで、現状はルート化を解除するしか方法がなさそうである。

しかし、それでは困るのが現状である…どうするか…

どうするか

説明は省略しますが、この方法でブラウザからイカリング2を閲覧することができます。

問題はiksm_sessionを取得するところなのですが、一度取得できてしまえば再びイカリング2にアクセスしてトークンを切り替えない限りは永久的に使える(はず)なので心配ないです。

少なくとも1日に1回くらいアクセスしていれば有効期限が切れることはありません。もちろん有料化のタイミングで仕様が変わっていなければですが…

ikawidget2に未来はあるか

このままでは非常に難しい。

新認証方式には海外のプログラマーも苦戦しているようで、splatnet2statinkでさえさじを投げている状態である。こちらが新認証方式に対応さえすれば同様のメソッドをObjective-Cに移植することで再びikawidget2が使えるようになると思う。

自分で取得したJSONを解析する機能が実装されてくれればなあ…(遠い目

Spl@Net2は健在

iksm_sessionさえ取得できていればSpl@Net2を使って自分の戦績データを保存することは可能。

現状、ikawidget2がJSONを取得できないのでデータ取得漏れを気にしてガチマッチができていないユーザもいるのではないだろうか。

そんなときは将来的なJSONインポート機能に期待して自分でJSONを保存しておこう!

クラス化していないのでダサい仕様になっているが、そのうちちゃんと仕様変更するのでしばしお待ち下さい。でもこれでもちゃんと動作するので許してヒヤシンス。

この脱獄対策は必要だったか

個人的には不要。

なぜならどうぶつの森やスーパーマリオランと違って脱獄環境が即チートに繋がるわけではないから。

見れるのはたかだかセッショントークンくらいのものだ。まあ、悪意あるプログラムがセッショントークンを盗み見る可能性はあるから、脱獄対策は必要だというのはわからなくもないが…

しかしながら、脱獄対策をしてユーザをがんじがらめにする必要があるのかどうかは甚だ疑問である。

特に新認証方式でサードパーティのアプリを締め出す行為は環境そのものの衰退に繋がりかねない。

脱獄対策は100歩譲ってわかるとしても新認証方式は導入する必要があったのだろうか?

脱獄対策に未来はあるか

具体的にどんな脱獄対策を行っているかわからないので現状ではなんとも言えない。

まあ高々ユーザ権限しかないアプリにできることは限られているので推察するのは難しくない。

  • ポート22にアクセス
  • ルート権限を取得しようとする
  • ディレクトリ走査

以前のアプリであればよく使われたのがディレクトリ走査で、これは脱獄したときに生成されるディレクトリがあるかないかで脱獄チェックを行っていた。

ポート22にアクセスするのは脱獄環境であればポート22が開放されているはずなのでSSH接続を試みてそのレスポンスで脱獄されているかどうかをチェックするものだった。

ルート権限を取得するのはsuコマンドを打ってそのレスポンスで脱獄チェックを行うものである。

いずれにせよsandbox外にアクセスを試みるものなので、Appleの規約に思いっきり抵触している気がするのだが、いいのだろうか?

これらを回避するものとしてLibertasという脱獄がアプリがβテストされているのだが、これに期待するしかないだろう。

ところで、FGOのような国産ソーシャルゲームアプリにはCrackProofという脱獄対策が使われているらしい。これは既存のすべての脱獄対策回避を無効化するもので、現状最強と言われているのだが、LibertasはCrackProofを全て回避することができるという。

ふーむ、Libertasのリリース待ちとなるのだろうか…

for iOS