はじめに
とある小中学生の頃にハマっていたゲームの新作がリリースされたので早速プレイしたのですが、どうやら今作もキャッチで出現する個体は、周囲のアクセスポイントのMACアドレス(BSSID)から生成されているらしい。
それはつまり、MACアドレスを変えられればガチャをいくらでも回せるということだし、どのMACアドレスからどの個体が出現するのかという情報があれば、強個体を全国どこにいてもキャッチすることが可能になるということ。
今回たまたま自宅にあったPCと機材でMACアドレスを自由に変更してAPを作ることに成功したので、その方法を備忘録込みとして残しておきます。
間違い、質問、補足情報などありましたらお気軽にどうぞ。
2024/08/18 追記
ユニバーサル、ローカル、どちらのアドレスも指定できるUbuntu版の手順を記事にまとめました。こっちにリンク貼るの忘れてました
2024/08/04 追記
この記事の方法で指定できるMACアドレスはローカルアドレスのみです。
ガチャは行えますが、野生で発見できる個体の多くはユニバーサルアドレスであることが多く、MACアドレスが分かってもこの方法で出現させられる可能性は低いです。
2024/08/02 追記
この記事で紹介している方法を簡単にできるようにするソフトウェアを有志の方から紹介していただきました。
一部文字化けしますが普通に使えることを確認したので、仕組みを理解し、ゲームに合わせて自動化したいという方以外はこれでいい気がします。
2024/08/03 追記
アダプターのセットアップについて解説を増強しました。
MACアドレスの変更に失敗する場合
0.USB Wi-Fiアダプターをセットアップする
を読んでみてください。
モバイル ホットスポットの設定に関して重要な工程が発覚したため、工程4.1、4.2、及び6.1を追記しました。
追記前の方法でうまくいかなかった人はこの3工程も試してみてください。
よくあるかもしれない誤解・質問
- SSID(Wi-Fi名)変えれば出現する個体が変わるって聞いたけど?
- 過去作と同様、MACアドレスのみが影響することを検証で確認しています
- スマホでSSIDを変えたら違う個体が出てきたけど?
- これは一部スマホの仕様でSSIDを変えるとMACアドレスも自動的に変わるのが理由です。
この仕様がないスマホの機種・環境ではガチャはできません
- これは一部スマホの仕様でSSIDを変えるとMACアドレスも自動的に変わるのが理由です。
- スマホでMACアドレスを自由に設定する方法ある?
- 無いと思われます。この記事ではWindows PCを使用する方法のみ解説します
注意事項
- すべて自己責任で行ってください。この記事を参考にし、問題が発生しても責任は取りません
- レジストリをいじる方法なのでPC上級者向けです
- レジストリを迂闊にいじるとPCが不安定になったり起動しなくなる場合があるので、事前にバックアップを取るなど対策をおすすめします。方法は各自調べてください
- MACアドレスが周囲の他のAPと被らないようにしてください。MACアドレスが被ると接続が不安定になり、そのAPの利用者に迷惑が掛かります
- あくまで私の環境で成功した方法を書いていますので、別の環境や機種で成功する保証はありません
2024/08/03 追記 - MACアドレスの変更中はAPとしてのインターネットの利用はできなくなります。通常のAPとして機器を接続したい場合はMACアドレスを元に戻してください
環境・使用するもの
-
モバイル ホットスポット
機能を有するWindows搭載PC
※解説ではWindows 11 Homeで行います。 -
APとして発信機能を持つUSB Wi-Fi アダプター
※解説ではTP-Link Archer T2U Nano を使用します。そのほかの機種での動作確認はしていません。
※※Archer T2U NanoはAPとしての発信機能を持ちませんが、APの存在を周囲に知らせるビーコンと呼ばれる信号を飛ばすことはできるようです。キャラを出現させるにはビーコン信号さえあれば十分なため、このまま使用できます。通常のAPとしても使用したい場合は親機の機能を持つ製品を用意してください。MACアドレス変更中はAPとして接続できないだけで、元に戻せば使えました。
- MACアドレス確認用のスマホ or PC
※解説ではAndroidスマホを使用します。周囲のWi-FiのMACアドレスを調べられるアプリ・ソフトの一例を以下に記載します。(自身の発しているWi-Fiは確認できません)
Windows
Android
iOS(所持していないので未確認)
解説
レジストリのバックアップを取っておくことをおすすめします。
迂闊に変更するとPCが不安定になったり、起動しなくなる可能性があります。
0.USB Wi-Fiアダプターをセットアップする
既に普段から使用している、セットアップが終わっているなら不要です。
各アダプターの説明を見ながら必要なセットアップをしてください。
2024/08/03 追記
Archer T2U Nanoのドライバーが正しくインストールされておらず、MACアドレスが変更できないという方がそこそこいます。
TP-Link社のアダプターの場合は下記リンクからドライバーを検索してダウンロードして、インストールまでしっかり終わらせてください。
Archer T2U Nanoの場合、ドライバーのバージョンが1030.29.329.2019
で、MACアドレスが変更できることを確認しています。
ドライバーのバージョンの確認方法は、
Windows 11の設定→ネットワークとインターネット
→ネットワークの詳細設定
→ネットワーク アダプター
の欄から目的のアダプターを探して展開→追加のプロパティを表示
で確認できます。
そのほかのWi-Fiアダプターでもドライバーを最新にしておくことをお勧めします
1.レジストリエディターを起動する
Windowsキーを押して出てくる検索欄か、Win + R を押して「ファイル名を指定して実行」を開き、
regedit
と入力してレジストリエディターを開きます。
2.目的のキーを見つける
キーとはレジストリエディターに表示されているのフォルダ的なもののことです。
上部のURLバー的な箇所に以下を入力します。
コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}
ここにはPCに接続された各Wi-Fiアダプター達の設定や情報が格納されています。
今後はたびたび来ることになる可能性があるので、
メニュー バー
→お気に入り(A)
→お気に入りに追加(A)
で、ブックマーク的な機能が使えるのでWi-Fiアダプタ設定一覧
など、わかりやすい名前を付けておきましょう。
続きです。
{4d36e972-e325-11ce-bfc1-08002be10318}
というキーの中に0000
、0001
といったキーが並んでいると思います。
その中の、DriverDesc
の値を確認し、今回使用するUSB Wi-Fiアダプターを探します。
値とはレジストリエディターの右側に表示されているキーに格納されたデータのことです。
3.MACアドレスに関する値を追加する
目的のキーが見つかったら必要な値を追加します。
右側の値が並んでる枠の何もないところで右クリックをして、
新規
→文字列値
を選択します。
作成した値の名前をNetworkAddress
に変更します。
既にNetworkAddress
の値が存在する場合はここの操作は不要です。
値のバックアップを取っておきましょう。
NetworkAddresBackup
などの名前で値を作成し、値をコピペでバックアップを取っておくと何かあっても安心です。
4.NetworkAddress
を編集する
NetworkAddress
をダブルクリックして、文字列の編集
ウィンドウを開きます。
値のデータに設定したいMACアドレスを設定します。
MACアドレスは、12桁の16進数です。つまり、0~9、A~Fのいずれかを使った12文字にする必要があります。
ここでは試しに7E7777777777
と設定してみましょう。
上2桁目がEなのは、参考文献1によると上2桁目は2やEなど一部の文字しか使えないとのことで、上2桁目だけEに固定しています。
アダプターの機種依存の問題だと思うので他の機種では問題ないかもしれないし、逆に2桁目がEだと失敗する可能性もあります。そこは各自で調べたりいろいろ試してみてください。
2024/08/03 追記
研究が進み、2桁目が制限されている理由と使える文字がわかりました。
MACアドレスの規格として、16進数の上2桁を表すbit列の、下2bitに特別な意味があり、
基本的に自由に設定したAPのカスタムMACアドレスはそのbitが10で固定されます。
下2bitが10になる文字は2,6,A,Eですので、APのMACアドレスの上2桁目として使えるのは、
2,6,A,Eのみであるとわかります。
現在、0,4,8,Cが設定できるWi-Fiアダプターの存在が確認されていますが、理由が分かっておらず、調査中です。
それ以外の奇数はAPのMACアドレス上2桁目には設定はできないものと思われます。
4.1.アダプターの設定用IDを控える
2024/08/03 追記
続いてモバイル ホットスポットの設定レジストリを編集していきます。
モバイル ホットスポットのAPがどのネットワーク アダプターで建てられるのかという設定は、Windowsが勝手に決めていますが、今回はMACアドレスを変更したアダプターでAPを建てるように設定する必要があります。
先ほどまでと同じパスにある、NetCfgInstanceId
という値を探して、メモ帳でもなんでもいいのでメモします。
4.2.モバイル ホットスポットの設定を変更する
2024/08/03 追記
以下のレジストリキーに移動します。
コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\icssvc\Settings
ここも度々やってくるかもしれないので、お気に入りの追加をしておくとよいでしょう。
また、編集を開始する前に、モバイル ホットスポットをオフにしておきましょう。
ここの、PreferredPublicInterface
という値を編集する必要があるのですが、まずバックアップを取っておきましょう。
PreferredPublicInterfaceBackup
などの名前でバイナリ値を作成し、PreferredPublicInterface
の値を入力してください。バイナリ値の編集はコピペが使えないので手入力する必要があります。
PreferredPublicInterface
に先ほどメモした値を書き込む前に、値を加工する必要があります。
PreferredPublicInterface
の値は、NetCfgInstanceId
の値そのままではなく、-
で区切られたセクションのうち、最初の3つのセクションはバイト単位で順番が真逆になっています。
つまり、
NetCfgInstanceId
が
{01020304-0506-0708-0910-111213141516}
だったとき、
PreferredPublicInterface
の値は
04 03 02 01 06 05 08 07 09 10 11 12 13 14 15 16
にする必要があります。
なんてめんどくさいんだ
置き換えるのは地味に大変なので正規表現で置き換えられるようにしました。以下のリンクの、TEST STRING
にNetCfgInstanceId
の値をそのまま入れれば、一番下に並び替えられた文字列が出てきます。
並び替えられたIDを見ながら、PreferredPublicInterface
に正確に手入力してください。
5.Wi-Fi アダプターを再起動する
Wi-Fi アダプターを再起動するには、USBを挿しなおす方法か、デバイス マネージャーから一度無効にして、再度有効にする方法があります。
USBを挿しなおす方法
そのままです。USBからアダプターを引っこ抜いてもう一度挿してください。
デバイス マネージャーから操作する方法
左下のWindowsマークを右クリックしてデバイス マネージャー
を選択して起動します。
デバイス マネージャーからネットワーク アダプター
の項目を探し、展開します。
USB Wi-Fiアダプターの項目(先ほどレジストリエディターで探した名前と同じもの)を右クリックし、デバイスを無効にする(D)
でデバイスを無効にした後、しばらく待ってデバイスを有効にする(E)
で再度有効にします。
6.MACアドレスが変更されたか確認する
Windowsの設定を開きます。
ネットワークとインターネット
→ネットワークの詳細設定
を開き、ネットワークアダプター欄の該当のUSBアダプターの部分を展開します。
追加のプロパティを表示
を押し、物理アドレス (MAC):
を確認します。
この値が先ほどレジストリエディターで設定したものになっていればOKです。
しっかり設定したはずなのに変わっていないという場合はコピー
ボタンを押すと最新の情報に更新されます。
6.1.PCを再起動する
2024/08/03 追記
ここでPCを再起動する必要があります。
なぜかというと、4.2で変更したホットスポットのデフォルトデバイスの設定はPCを再起動しないと効果が発生しないからです。
7.モバイル ホットスポットを開始する
Windowsの設定のネットワークとインターネット
→モバイル ホットスポット
を開きます。
必要に応じてプロパティからAPの名前とパスワードを設定し、モバイル ホットスポットをオンにします。
適切に設定できていれば、これで任意のMACアドレスに設定したAPが飛んでいるはずです。
8.APが稼働しているか確認する
ここでスマホを用意します。
iPhoneは持っていないのでAndroidで解説します。
2024/08/02 追記
先ほど使用するもので紹介した、WiFi Analyzerを使用するのですが、その前に一つやっておいた方がいいことがあります。
開発者向けオプションを有効化する
デフォルトだとアクセスポイント一覧表示の更新頻度が遅すぎて下手すると1回の更新に1分以上かかります。
なので開発者向けオプションから設定を変更します。
以下の記事を参考にするといいでしょう。
Wi-Fiスキャン スロットリングをオフにする
開発者向けオプションを開けたらずらっと並んでる設定項目から「Wi-Fiスキャン スロットリング」か、それに近い名前の設定を探します。
見つけたらオフにしてください。これでアクセスポイント一覧の更新頻度が高くなります。
アプリを起動してAPを確認する
アプリを起動して、設定した通りのAPが表示されたら成功です。
Wi-Fi名の右のカッコ内がMACアドレスです。
9.捕まえる
後は出現したキャラを捕まえるだけです。
今回試しにMACアドレスを7E7777777777
に設定しましたが、正常に設定できていれば画像の個体が出現するはずです。
10.MACアドレスを元に戻すには
レジストリのNetworkAddress
の値を元に戻すか、元々無かった人は削除してください。
2024/08/03 追記
ホットスポットのレジストリを戻す場合は、PreferredPublicInterface
の値をPreferredPublicInterfaceBackup
を見て元に戻してください。
最後に
冒頭にも書きましたが、MACアドレスで出現する個体が決まるのであれば、MACアドレスと個体のペアが分かれば全国どこにいても狙った個体を捕まえられます。
例えば、「このMACアドレスから むてき が出た」というのを共有すれば誰でも むてき を手に入れられます。
しかも、一度さよならして再キャッチすれば何度も出生できるという仕様を使えば強個体を量産できるということでもあります。
魅力的な反面、ゲームバランスをぶっ壊しかねないものでもあるので繰り返しになりますが自己責任でお願いします。
ここからは余談です。
勘の良い読者なら気づいたかもしれませんが、一連の作業はPower Shellなどを使えば自動化できます。
PCに自信のある人は自動化に挑戦してみてもいいのではないでしょうか。
参考文献
2024/08/03 追記