チートとは

任天堂はいつからかアンチチートチートシステムをスプラトゥーン 2 に組み込んでいます。

このアンチチートシステムはとても強力で、LFS と ExeFS の改変を検知して自動で BAN することができました。

チートに疎い方は「LFS?」「ExeFS?」となると思うので簡単に解説したいと思います。

LFS

LFS とは Layered File System のことで、ものすごく簡単に説明すると内部パラメータを弄った xml などのファイルを本来のファイルから自動的に置換してくれる仕組みのことです。

これが実装されているおかげで 3D モデルや BGM やブキのパラメータを簡単に変更することができるのです。

LFS によるチートの代表的なものはブキの射程が無限、全塗り、SP 必要ポイント 0 などがあります。

ExeFS

ExeFS とは Executable File System のことで、実行可能なファイルシステムのことを指します。

ものすごく簡単に言うと Windows における exe ファイルのようなものです。

Nintendo Switch における ExeFS とは main や main.npdm のようなファイルを指します。

ExeFS - Nintendo Switch Brew (opens new window)

LFS がファイルを弄るものだったのに対して、こちらはゲーム本体を弄る感じに近いです。

俗に言うチートコードや一昔前のサイバーガジェットの製品である PAR などの挙動が ExeFS の改変にあたります。

ExeFS によるチートの代表的なものは空を飛ぶ、ボム連射、無敵化、常に移動可能などがあります。

LFS vs ExeFS

実装の簡単さは LFS が ExeFS に勝ります。

というのも、ファイルを復号してから内部のパラメータを直接変えることができるからです。

特に、スプラトゥーン 2 はパラメータが xml で書かれているため、ある程度のプログラミング技術がある方であれば難なく書き換えができてしまいます。

更に、バージョンが更新されても(4.5.0 -> 4.5.1 のような)マイナーアップデートではパラメータファイルは変更がない場合が多く、使い回しが効くのも便利なところです。

例えば、バトル中の BGM 変更についてはリリースから一度も変更されていないのでファイルを置き換えれば永続的に効果が反映されます。

@youtube (opens new window)

このような感じで BGM を 1 のものに変更することができます。

というか、どうしても Splattack が聴きたかったのがそもそもの始まりなんですよね。

早く 1 の BGM を実装してください、お願いします。

このように、元々ゲーム内に実装されていないデータを扱う場合には LFS でないといけません。

逆に、既に内部情報として持っているデータを扱う場合には ExeFS が勝ります。

ブキのパラメータ変更などは LFS でも ExeFS でも実現できますが、LFS の方が手軽で細かい調整がききます。

ExeFS で射程を変更しようとすると、「全てのブキの射程が 2 倍」になったりとブキごとの調整などは難しかったりします。

理論上、ExeFS で実現できないチートはありません。

それを見つけるのが LFS とは比べ物にならないくらい難しいというだけです。

アンチチートシステム

オンラインでチートして検知された場合はチーターのフラグがつけられてしまいます。

チーターのフラグがつけられると、BAN されてしまい翌日からニンテンドーネットワークに接続できなくなります。

BAN の種類はいろいろありますが、LFS や ExeFS を有効化したままオンラインにするとゲーム BAN されるようです。

ゲーム BAN の詳細については上記の記事を御一読ください。

2018 年 12 月 24 日にはスプラの裏界隈では有名な@Khangarood (opens new window)氏が BAN を受けたことが明らかにされています。

氏が行っていた改変は以下の通り。

  • 未リリースステージのプラベでのバトル(LFS)
  • プラベでのパラメータハック(LFS)
  • 海賊版のオクトエキスパンションのプレイ
  • ニューススキップ(ExeFS)
  • BGM 無効化(ExeFS)

まあこれだけオンラインでやらかしていたら BAN されても仕方ないのでは...という気もしますね。

プラベであったとしてもロビーに入った段階でチート検出に引っかかるらしいので、オンラインプラベでチートを使うのはご法度です。

そもそもロビーに入った時点でニンテンドーネットワークに接続するので、LFS や ExeFS が有効な状態で入るべきではないです。普通に犯罪です。

ところが

しかし、特別体験版でのチートでの荒れ具合を経て衝撃の事実が明らかになります。

ところで、面白い話があるんだ。我々が調査したここ二ヶ月の間、スプラトゥーン 2 におけるアンチチートシステムがバトル中はオフになっていたんだ。誰でもマッチングに飛び込んで好き勝手できたかもしれない。特別体験版がチートできることからもわかると思うけれど。任天堂はいい仕事をしたね。

https://twitter.com/shadowninja108/status/1110608847419269120

いい仕事をしたね(Nice job Nintendo)の一文は明らかに任天堂に対する皮肉でしょうね。

@shadowninja108 (opens new window)氏はスプラの裏界隈ではHACGUI (opens new window)などのリリースでかなり有名な人です。

氏が言うのですからこの情報はある程度信頼できるものと言って良いでしょう。

これに対してスプラトゥーン界の神の一人である OatmealDome 氏も反応しています。

任天堂はスプラトゥーン 2 のチート検出システムでとんでもないことをやらかしてくれた。

https://twitter.com/OatmealDome/status/1110609403076583429

なんと、特別体験版に限らずここ二ヶ月もの間チート検出システムっが全く働いていなかったようです。

確かにとんでもないことをやらかしてくれていますね。

Hack について

こういう改造に関する記事を書くと噛みついてきたり、注意喚起してきてくれる人が一定数いるんですが、正直言って余計なお世話です。

ゲームの内部データを探るような行為はリバースエンジニアリングと呼ばれるものですが、これは現在の日本の法律では違法とされていません。

ソフトウェアの解析が違法になったらコンピュータウイルスを解析してワクチンソフト(個人的にはこの書き方は嫌いなのですが)を開発することも違法になってしまいます。

つまり、リバースエンジニアリングは完全に合法です。後ろ指を指される謂れは何もありません。

ただし、任天堂の規約ではリバースエンジニアリングが禁じられているので、改造が原因で任天堂から BAN されることに文句を言ってはいけません。

任天堂の規約が真に正当性があるものかどうかは独占禁止法の観点から議論の余地があるとは思いますが、現状は異議申し立てしない限りは従うべきでしょう。

特に、プロプライエタリソフトウェアに関しては、法ではなくライセンスあるいは契約の下で、逆アセンブルなどのリバースエンジニアリングでソースコードの抽出などを禁止する旨が書かれていることがほとんどだが、そのような条項は独占禁止法の見地からも問題があるとも言われている。

https://ja.wikipedia.org/wiki/リバースエンジニアリング

少なくともぼくは任天堂の規約の観点からはニンテンドースイッチの改造は褒められるべき・推奨されるべき行為でないことは理解しています。

理解しているので「それは良くないよ」と言われても「いや、知っているが?」としか返事できないわけですね。

また、当ブログは技術ブログであり改造の推奨や奨励を行っておりません。こういう情報もあるよ、こういう事もできるよということをつらつらと紹介するだけの記事です。

個人的には「良くないことだと思いながらこっそりやる」よりも「悪いことなのに悪いことだと思わず堂々とやる」方がタチが悪いと思うんですが、皆さんの意見はいかがでしょうか?

まあとりあえず任天堂はチート対策に本腰を入れていただけると幸いです。

まとめ

これが事実だとしたら、なんでこのタイミングで任天堂はアンチチートシステムをやめたのか理解に苦しみます。

何が楽しいのかはわかりませんが、BAN されなければオンラインでチートしてやろうっていう層は残念ながら一定数存在します。

さっさと不正競争防止法違反か私電磁的記録不正作出で逮捕されてくれっていう感じですね。

というか任天堂ほどの会社が見せしめにオンラインチーターを摘発しない理由がちょっと思いつきません。

影響力が大きい会社なので一発やってほしいところなんですが。

一般財団法人デジタルコンテンツ協会の平成28年3月付け「平成27年度産業経済研究委託事業 コンテンツ保護の技術的手段に係る法制度及び技術動向等に関する調査研究」によれば、チート行為は、ゲームプログラムを書き換えるものではなく、ゲーム内のアイテム等に係るデータを書き換えるものと分析されています。

http://www.tatsumura-law.com/attorneys/tomoko-inaba/column/?p=527

この見解によると LFS はチートで、ExeFS はチートでないっていうことになりますね。

記事は以上。