ファンタジーゾーン2の解析を支援してみる


 最近、ほぼ4STさんトコのネタばかりではありますが「ファンタジーゾーン2の最終ボスラッシュで$9720890手に入る」という話をちょっと深掘り。

--FANTASY ZONE 2 MONITOR
while (true) do
	local zz = memory.readbyte(0x0132);
	local yy = memory.readbyte(0x0133);
	local xx = memory.readbyte(0x0134);
	gui.text( 0,32,""..(xx-xx%16)/16);
	gui.text( 7,32,""..xx%16);
	gui.text(14,32,""..(yy-yy%16)/16);
	gui.text(21,32,""..yy%16);
	gui.text(28,32,""..(zz-zz%16)/16);
	gui.text(35,32,""..zz%16);
	gui.text(42,32,"0");
	FCEU.frameadvance();
end;

 とりあえず↑をコピペしてテキストエディタに貼り付けて「FZ2MON.LUA」とでも名前を付けて保存。
 ファミコンエミュレータFCEUX2.23でファンタジーゾーン2をロードして、File→Lua→New Lua Script Windowをオープン。
 Browse…で保存したFZ2MON.LUAをロードして[Run]ボタンを押すと…  
 こんな感じでボスラッシュ中に取得した金額をチェックすることができます。
 ちなみにメモリ上のデータレイアウトはこんな感じ↓

マネーの表示レイアウト $xxyyzz0
-addr-
0x0132 zz
0x0133 yy
0x0134 xx
$9720840加算= 84 20 97 の16進数をそのまま10進数として処理している。

 つまり「画面表示は10進数っぽく並べただけの16進数」ですね。
(上述のLuaスクリプトが16の除算や余数の計算をしているのはそのせい)

 どうしてボスが爆破した瞬間に 84 20 97 を加算しているのか詳細までは解析できていませんが、9720840ドルが加算される瞬間にブレークした結果は下記のとおりです。

コール元
 06:AC55:20 F4 BC  JSR $BCF4
 06:AC58:20 2C B6  JSR $B62C << ここをEAEAEA(nop)でお金増えなくなる
 06:AC5B:4C ED AB  JMP $ABED

コール先
 06:B62C:AD CC 00 LDA $00CC = #$00
 06:B62F:F0 01 BEQ $B632 << 加算ルーチンにジャンプ
 06:B631:60 RTS
 -----------------------------------------

加算ルーチン
 06:B632:AD 32 01  LDA $0132 = #$00
 06:B635:8D 88 01  STA $0188 = #$84 << 注目箇所
 06:B638:AD 33 01  LDA $0133 = #$00
 06:B63B:8D 89 01  STA $0189 = #$20 << 注目箇所
 06:B63E:AD 34 01  LDA $0134 = #$00
 06:B641:8D 8A 01  STA $018A = #$97 << 注目箇所
 06:B644:84 60     STY $0060 = #$90
 06:B646:86 61     STX $0061 = #$00
 06:B648:A0 00     LDY #$00
 06:B64A:B1 60     LDA ($60),Y @ $0090 = #$9A
 06:B64C:8D 8B 01  STA $018B = #$84
 06:B64F:C8        INY
 06:B650:B1 60     LDA ($60),Y @ $0090 = #$9A
 06:B652:8D 8C 01  STA $018C = #$BA
 06:B655:C8        INY
 06:B656:B1 60     LDA ($60),Y @ $0090 = #$9A
 06:B658:8D 8D 01  STA $018D = #$96
 06:B65B:20 71 B6  JSR $B671
 06:B65E:AD 88 01  LDA $0188 = #$84
>06:B661:8D 32 01  STA $0132 = #$00
 06:B664:AD 89 01  LDA $0189 = #$20
 06:B667:8D 33 01  STA $0133 = #$00
 06:B66A:AD 8A 01  LDA $018A = #$97
 06:B66D:8D 34 01  STA $0134 = #$00
 06:B670:60        RTS -----------------------------------------

 アドレス0188、0189、018Aの三連に[972084]の値が生成されているので、ここを追跡していくと真実が見えるかもですね。

スカイデストロイヤーで学ぶ「奇跡を強制召還する手法」

 さて、2022年5月28日に公開された4STさんの新作「発売から37年目の真実…闇夜に現れるという不気味な幽霊船は実在するのか|スカイデストロイヤー」を見て、幽霊船ゾンビの出現&破壊に挑んだ強者もいるかと思います。

 ウチもこんな感じで動画の翌日には幽霊船ゾンビを出現させて倒すツイートをしていたわけですが、実はコレ、莫大な時間と3D酔いと戦いの果てに勝利を掴み取ったシイナさんと違って、私のヤツはプログラムハックで強制召還したインチキ画像です。

・ ※動画の超ネタバレが含まれるので先に前述の4ST動画を見てね!


<前準備>

 ゲームソフト:ファミコン版スカイデストロイヤー
 ROMダンパー:https://www.amazon.co.jp/dp/B087GGBVMV/
 エミュレータFCE-UX:https://fceux.com/web/home.html
 emuhaste:https://i486.mods.jp/ichild/download/emulator-cheet-program-emuhaste
 ※ゲームソフト以外は好みでいいです。

<幽霊船ゾンビの出現条件をおさらい>

1.夜になってから、母艦ノースザネリ(以下、母艦)出現の瞬間に倒す。
 =出現前から魚雷を発射しなければ間に合わない。

2.母艦は8つのグラフィックで構成されている。
 内部的に状態変化カウンタが存在しているのは確実。

<母艦の各フレーム値を特定>

1.FCE-UXでゲームを進行する。

2.母艦が出現する直前あたりでステートセーブ。

3.現れた直前にポーズしてemuhasteでサーチ開始。

4.母艦が形態変化する都度にポーズして「変動」などで絞り込み。
=これでアドレス$006Bの値が母艦の形状と連動していることが確定。

 動作を調べたところ「母艦が出現した瞬間に$006Bに08がセットされ、時間経過ごとに07,06,05..とカウントダウンとともに表示座標が左にずれてゆく。値が08のタイミングで母艦を倒せば、幽霊船ゾンビが出現する」というプロセスでした。

 当然、アドレス$006Bに08を常時セットし続けることで、どのタイミングで倒しても確実に幽霊船ゾンビが出現することになります。

 ちなみに幽霊船ゾンビのX座標は$00ACに格納されており、母艦を08のタイミングで倒した瞬間に$00AC=FFがセットされて画面に出現。これが1フレームごとに-1ずつ減算され、00になると同時に画面から消滅します。
 なので、アドレス$00ACに00以外の値を書き込み続けることで常に幽霊船ゾンビを画面に固定することもできます……が、それはあまり面白くないですよねぇ。

<母艦のカウントダウン処理をハックする>

 母艦($006B)が08からカウントダウンする…ということは、そのルーチンがプログラムに存在するはず。
 そんなわけで、当該処理をFCE-UXのデバッガで実際に見てみましょう。

1.母艦が出現した瞬間にポーズ。

2.FCE-UXでDebug→Debuggerを起動し、Breakpointの[Add]でAddress 006B-006BをWriteにセット。

3.ポーズを解除して少し待つと、下記の箇所で自動停止する。
>00:ED88:C6 6B DEC $006B = #$06

4.デバッガの[Run]をクリックするとゲームが再開&再び自動停止し、デバッガの表示が下記のように変化する。
>00:ED88:C6 6B DEC $006B = #$05

 DECはデクリメント(1減らす命令)で、母艦が形態変化するタイミングで毎回$006Bが1ずつカウントダウン書き込みが行われ、デバッガのブレークポイント機能が「$006BへのWriteを検出し、プログラムを停止」させています。
 なので、アドレス$ED88にある2バイトコード”C6 6B”が「母艦を形態変化させるルーチン」というコトですね。

<ROMを書き換えてみる>

 ファミコン版スカイデストロイヤーが発売したのは1985年でROM容量もたったの24キロバイトしかないので、バイナリエディタで C6 6B とサーチするだけであっさり見つかります。
 ファミコンのCPU(6502)では「何もしない命令nop = EA」なので C6 6B を EA EA と書き換えることで母艦が「出現しても08のまま動かない固定建造物」になります。

<さらに幽霊船ゾンビを追跡!!>

 前述のとおり幽霊船ゾンビのX座標はアドレス$00ACに格納されているのですから、固定化された母艦を倒したタイミングで幽霊船ゾンビを出現させ、ブレークポイント00AC-00ACにWriteで仕掛けると――

>00:FA00:C6 AC DEC $00AC = #$4B

 まあ当然出てくるわけです。
 これを EA EAに書き換えると幽霊船ゾンビも固定建造物と化します。

 ちなみにDEC $00AC はもう一つ存在しており、こちらは「母艦を倒す前に00AC-00ACにWriteブレークポイントを仕掛ける」ことでヒットします。

>00:D6EE:C6 AC DEC $00AC = #$00

 実はプログラム的には面白い仕組みになっていて、コードが実行された瞬間、符号無し整数00をマイナス1し、00→FF(幽霊船ゾンビの初期カウンタ)がセットされます。

 当然、ここを EA EAに書き換えてしまうと幽霊船ゾンビに内部カウンタFFがセットされることは一生なくなるので「幽霊船ゾンビが絶対に出現しない改造バージョン」という悲しいシロモノになってしまいます。

 さらに、このヒット位置から少し上に遡ると以下のコードが見つかります。

00:D6E6:A5 30 LDA $0030 = #$02
00:D6E8:29 03 AND #$03
00:D6EA:C9 02 CMP #$02
00:D6EC:D0 0C BNE $D6FA
00:D6EE:C6 AC DEC $00AC

 これを人に分かる言語に解釈すると次の通り。

00:D6E6:A5 30  アドレス$0030をレジスタAにロード
00:D6E8:29 03 レジスタAと2進数11との論理積を取る。
00:D6EA:C9 02 その値が02
00:D6EC:D0 0C でなければ下の処理を飛び越えて次へ。
00:D6EE:C6 AC 幽霊船ゾンビ出現!

 このうち、$0030に格納されているパラメータ=時間帯であり、02=夜です。
 ここまで言えば勘の良い人なら気づきそうですが、最後にこんな画像で本記事を締めるとしましょう。

// 夜かどうかを判定するルーチンをnopで破壊
C9 02 D0 0C → EA EA EA EA (夜判定無効化)

\明るい幽霊船ゾンビ!/

【速報】PCエンジン妖怪道中記 真パスワードが発見されました

過去記事 : 求む!PCエンジン「妖怪道中記」のパスワード3種

 2021年12月17日に戦いが始まってから約3ヶ月――

 ついにこの時が来ました。


※シイナさんが興奮のあまりうっかり誤記してますが、正しくは「なむこむな!756-2311」でした。

・・

 さて、いつかはもっとしっかりした記事にまとめたいところだけど、今はひとまず「皆さん、お疲れ様でした」。

新ツールyokaiNGwordGUI公開 (2022/2/18更新)

これまでの経緯:妖怪道中記パスワード絞り込み技法


Download : yokaiNGwordGUI.zip

・なにこれ?
 PCエンジン「妖怪道中記」の最後の難関となった14桁パスワードの候補から、目視で「こんなの絶対パスワードに使われるわけないやん」と思うキーワードを範囲選択して、NGワード登録することで候補から除去。
 それを新たなパスワードファイルとして書き出せるツール、です。

・操作フロー
1.discordココの記事にアップされているパスワードファイルをダウンロード。

2.yokaiNGwordGUIの[Load]ボタンでそれを読み込み。

3.左のPW枠からKSQだのGCSだの「パスワードとしてありえない文字列」をマウスで範囲選択。

4.[ >> ]ボタンもしくはエンターキーで右のNG WORDにコピーされる&繰り返し。

5.満足したところで[DELETE PW]ボタンもしくはF1キーでNGワードの含まれるパスワードを除去(消えた行は表示が**************になる)。

6.[SAVE NEW-PW]で除去済みの真パスワード候補を、[SAVE HAZURE]で除去されたハズレ候補を別ファイルに書き出す。

・機能追加しました(2022/1/26)

 削除したいワードの頭に[位置,]を付与することで、条件を満たすパスワードのみを除去できるようになりました。
(画像の例ではカーソル+04の位置にL6Aがある文字列だけ狙い撃ち)

・拡張文字を実装しました(2022/1/29~)

 直接文字を指定するだけでなく、下記の文字によるフィルタを実装しました。

n .. 数字すべて(0-9の範囲)
a .. アルファベットすべて(A-Zの範囲)
c .. アルファベットのうち”A,I,U,E,O,Y,H以外”の文字(子音除去)
g .. アルファベットのG~Zの範囲(16進数回避)
h .. 16進数(0~9、A~F)のみ

s .. 記号(! . -)のみ ※22/2/18実装
r .. 前回と同じ文字(リピート) ※22/2/18実装
v .. 母音(A,I,U,E,O)のみ
ナ .. nの代わり
ム .. mの代わり
コ .. c
の代わり
? .. ワイルドカード=すべての英数(30-5Aの範囲)

 上の画像の例では「0文字目から、数字+数字+アルファベット+数字のパターンを発見したら除去」という動作になり、00A0…は除去されているものの、009Z~や00.Aは残存しています。
 このように人間が「どういう条件で除去しているのか?」を論理的に考えながら絞り込むことで、候補数をどんどん減らせる(はず)ので、頑張りましょう!

【妖怪道中記】新しいフィルタ適用済みパスワード公開

前回の記事:妖怪道中記パスワード絞り込み技法

 前回もお伝えしたとおり、現在は4731万5374個の重複から1個の正解を探す作業をしていますが、先ほどのツールパックに追加した新ツール「yokaisynerr」により、4731万件→75.7万件への大幅フィルタリングに成功。

 さらに、末尾3文字を元にパスワードとして使われないであろう文字列を除去した795.6万件に対してyokaisynerrを適用して生成された21.9万件を加えたパスワードリストをアーカイブとしてアップしました。

Download : passwords-218168and776478.zip

 これを探れば、4731万件を手探りで探すよりは、かなり現実的な時間で真パスワードを見つけられる可能性はありますので、解析の参考にどうぞ。

妖怪道中記パスワード絞り込み技法

 2021年末に4STシイナさんが公開したこの動画は大きな反響を呼びましたが、2022年1月9日現在「8文字と11文字のパスワードは瞬殺されたものの、14文字の最難関パスワードは候補として4731万5374個の重複が発見された」というトンデモナイ状況になっています。
 つまり、4731万個以上あるパスワードの中から真のパスワード1個を探し出す(!)という、発掘作業へとフェイズが移行したわけですね。

関連記事:【随時更新】妖怪道中記パスワード解析 on Discord

 上記コンテンツでは協力者が集まるDiscordサーバおよび自作のパスワード解析プログラムの紹介をしていますが、今回の記事では「膨大なパスワードからハズレを除去する手法」を解説します。

 ただし4731万件の純粋な完全パスワードファイルは非常に巨大かつ解析が困難であるため、私が「高確率でハズレと思われるものを除去したフィルタ済みパスワードリスト」をアップしました。

・フィルタ済みパスワード795.6万件(真パスワードを含む可能性が極めて高い)
Download : passwords-last7956212.zip

・フィルタ済みパスワード325.7万件(真パスワードも除去している可能性が若干ある)
Download : passwords-last3256849beta.zip

~絞り込み技法~

 まず下記yokai-tool-packをダウンロードし、適当なフォルダに展開してください。
Download : yokai-tool-pack.zip

 ツールパックには妖怪道中記のパスワードを解析するための様々なツールを内包していますが、絞り込みには
「05-yokaitable(強力フィルタ)」
「06-yokaipassrip(テーブルのみ出力)」
「07-yokaidiff(不一致除去)」
の3種のツールを用います。

05-yokaitable(強力フィルタ)

 ためしにフィルタ済みパスワード passwords-last7956212.txt を同フォルダへコピーしてから table0.bat にドラッグ&ドロップで投げ込んでみてください。
 しばらくして passwords-last7956212.txt.output0.txt という502KBのファイルが生成されますが、これは「1行の全てがローマ字読みできるアルファベット・数字・記号だけで100%変換できた行だけを抜粋し、右に強引にふりがなを挿入したテキストデータ」です。

 なお、先にネタバレしますがここで生成された11,848行の目視チェックはとっくに済んでいるので、この中に真のパスワードは無いです。

 詳しいカスタマイズ方法は省略しますが table0-ALL-CHAR.txt へ対象となる文字を増やしたり table0.bat の%1のあとに書かれている0を増加させることで、フィルタを緩めて強引に広範囲の候補を拾うことができます。

yokaitable.exe table0-ALL-CHAR.txt %1 0 > %1.output0.txt

yokaitable.exe table0-ALL-CHAR.txt %1 1 > %1.output0.txt

※この修正では「パスワード14文字のうち13文字の変換に成功し1文字だけ失敗した場合のみ列挙」という意味になる。2にすれば「2文字失敗した場合」になるが、増やせば増やすほど該当件数が爆発的に増加する。

 また、table1はローマ字変換と数字のみ、table2はローマ字変換と記号のみ、table3はローマ字変換のみ、table4は数字のみ、table5は強引な英語読みを含む変換プロファイルですので、うまくカスタマイズしてください。

06-yokaipassrip(テーブルのみ出力)

 先ほど生成した502KBのテキストデータは「目視に特化している」ので、各種ツールで使えません。
 なのでこのフォルダに passwords-last7956212.txt.output0.txt をコピーして、同フォルダの start.bat にファイルを投げ込むと502→186KBまで縮んだ password-no-comment.txt が生成されます。
 これは名前のとおり右のコメント部を除去した純粋なパスワードリストで、各種フィルタツールから利用することができます。


 地獄の目視チェック作業が終わり「うわーん、全部ハズレだったー!!」という時は、そのファイルがハズレであると分かるようにファイル名やフォルダ名をしっかり付けておきましょう。
 次のツールで使います。

07-yokaidiff(不一致除去)

 まずyokaidiff.exeに「加工前のオリジナルのパスワードファイル passwords-last7956212.txtをドラッグ&ドロップで投げ込んでください。
 そしてツールが起動して「7956211 件のパスワードテーブルをロードしました」と表示されたら、コマンドプロンプト画面に先ほど目視してハズレだった186KBのテキストファイルをドロップしてエンターキーを押下。

 めちゃくちゃ待たされますが「マスタとなるテーブルから11848件のパスワードを除去しました」と表示されるので、ここで何も入力せずにエンター。
 「保存ファイル名を拡張子付きで入力してください」と求められるので適当に「output.txt」とでも入力してエンター。

 これで生成された output.txt に書かれたパスワードの個数は 794万4363 ……つまり、11,848個のハズレパスワードを除去したリストファイルです。
 なので……

05-yokaitable(強力フィルタ)をカスタマイズして候補を絞る。

06-yokaipassrip(テーブルのみ出力)でパスワード情報のみを抽出。

目視してダメなら07-yokaidiff(不一致除去)でマスタファイルからハズレを除去。

05に戻ってやりなおし。

 そんな作業の繰り返しによる絞り込みを行っているわけです。
※合理的な絞り込み手法が発見されたら、ここから一気に減る可能性もあります。


 というか、一人で796回もこんな作業をやってられないので、皆で力を合わせるのが大切であり、そのためのDiscord参加なのです(‘-`)

~追記~ (2022.1.10)

 さらに下記のツールを追加したので「該当件数が多すぎてやってられない」という場合にご活用ください。

09-yokairincut(条件フィルタ)
 数字とアルファベットが隣接するものを除去、ハイフンを含むものを除去など5種のフィルタをかけて自分の読みたいパスワードだけを出力するツール。

10-yokaitopkana(先頭カナ出力)
 パスワードの頭文字がローマ字カナ変換できるものだけを出力するツール。

11-yokainumend(終端数字列挙)
 パスワードの終端が数字で終わるものだけを出力するツール。

【更新2/5】妖怪道中記パスワード解析 on Discord + ツールパック

 PCエンジン妖怪道中記で34年も謎のままだった3種のパスワードのうち8桁と11桁は瞬殺されたものの、14桁の解析が大難航!
 そんなわけで、ツイッターなどでバラバラに活動していた皆の知識を一箇所へ注力すべくDiscordサーバが設定されました。

Discord : 隠しパスワード解析選手権(https://discord.gg/MAJE3X696r)

・・

 そして同チャンネルユーザ用に現時点で私がリリースしているプログラムは下記のとおり。
 ※下記ツールで用いるパスワードテーブルファイルは、discordサーバの「パスワード掲載用チャンネル」で入手できます。

・妖怪道中記パスワード分離用ツールパック
Download : yokai-tool-pack.zip

<ツールの中身>

01-yokailoop(検索ツール)
 パスワードテーブルと辞書データを照合検索するツール。

02-yokairm(候補絞り込み)
 パスワードテーブルから単語検索して「これはハズレだな」と思ったキーワードを含む行をテーブルから消去し、一通り消し終わってから別テーブルとして書き出せるツール。

03-yokaisame(比較照合)
 上述の yokairm で複数の人でパスワードを絞り込んだあと、このツールでテーブル同士を比較すると「すべてに存在するパスワード」だけを残してファイル出力できます。

04-yokaisplit(不要行の一括除去)
 パスワードテーブルと辞書データを照合検索するツール。
 うまく使えば特定の単語を含む行だけを一括削除できます。

05-yokaitable(強力フィルタ)
 上述の yokaisplit の「行の全てが変換できないと除去」バージョン。
 強すぎるので本物のパスワードごと消えるリスクも高いです。

06-yokaipassrip(テーブルのみ出力)
 テキストファイルの左14文字+改行だけを残すツールです。
 メモ書きなどを一括除去して、素のパスワードを作りたい時用。

07-yokaidiff(不一致除去)
 03-yokaisameと真逆の動作する(=一致したものを除去する)ツール。
 「このファイルには絶対にパスワードが含まれていない!」
 …と結論が出た時に、それを新たな解析の弾丸として再利用できます。

08-yokaiunders(大量除去)
 コイツだけ毛色が全く違います。
 上級者向けですが一撃で数十万~数百万個のハズレパスワードを大量除去できる強力なツール群です。

09-yokairincut(除去フィルタ)
 数字とアルファベットが隣接するパスワードを除去、数字を含まないパスワードを除去、!を含むパスワードを除去など5種のフィルタを組み合わせたツールです。

10-yokaiendnum(終端数字列挙)
 パスワードの指定した位置から先から終わりまで数字が並んでいる(区切り文字としてハイフンとドットを認める)場合のみ出力するツールです。

11-yokainumend(終端数字列挙)
 パスワードの終端が数字で終わるものだけを出力するツール。

12-yokaisynerr(文法エラーチェック)
 子音が四連続したり、子音が二連続した後に記号が入るような不自然な文字列を除去するツール。

13-yokaidict(辞書照合して出力)
 パスワードファイルと辞書ファイルを照合し、パスワードからキーワードを発見する都度にそれを出力します。

~2022.1.22新ツール yokaiNGwordGUI 公開。
Download : yokaiNGwordGUI.zip
ひとまずリンクだけ

・・

 これらのツールを組み合わせることで全4000万件以上ある羅列を数万、数千……と候補を絞り込むことができますので、徹底的に真パスワードに関係なさそうなキーワードを除外しましょう。
 そして、自慢のパスワードファイルはdiscordサーバの「パスワード掲載用」チャンネルへの投稿をお願いします。

 また、頑張って目視したテーブルがハズレだった時も、それを共有してください。
 そのハズレデータは、07-yokaidiffによってマスタテーブルからノイズを除去する有用なファイルになりますので、同Discordサーバの「ハズレパス共有」チャンネルへの投稿をお願いします。

~追伸~

 途中で今回の件を知って「全然状況がわかんねえ!」って人向けに、kazuhito_m氏がこれまでの経緯をすべてまとめてくれています。
 これからチャレンジしたい人も、今まで関わってきた人も一度おさらいで読んでおくが吉ですの(・ω・)

【今来た人向け】これまでのあらすじ
http://youkaiosugi.com/overview

 
 

 

 

【tanzaku氏作】妖怪道中記パスワード辞書アタックツール実行方法まとめ

前回の記事:4STさん支援「PCエンジン妖怪道中記パスワード解析」

 現時点でtanzaku氏の開発した辞書アタックツールが最も高速化かつ、実行環境を容易に構築できるので、導入手順を以下に記します。

1.Microsoft V++ Build Tools公式サイトからBuild Toolsをダウンロードし実行。

2.Visual Studio Installerが実行されるので「C++によるデスクトップ開発」をチェックし「インストール」ボタンをクリック(空き容量が6.9GB以上必要なので注意)。

 ※インストール完了後「再開」ボタンでPCが再起動するので注意。

3.プログラミング言語Rust公式サイトにアクセスし「はじめる」をクリック。

4.ほとんどのユーザは「RUSTUP-INIT.EXE(64-BIT)をダウンロードする」をクリックし、64ビット版インストーラをダウンロード+実行する(※ここでエラーが起こった人だけ32-BITを使ってください)。

5.下記のメッセージを表示して停止するので「1」キーを押してエンター。
1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
 ※わかる人はカスタマイズしても良いと思うけどデフォルト推奨。

6.Press the Enter key to continue.が表示された指示通りエンターキーを押下してウインドウを閉じる。

7.ツール開発者のtanzaku氏のツイートからgithubのリンクを開き、右上のCodeボタンから「Download ZIP」でソースコードをダウンロード。

8.ZIPファイル内の yokaidouchuuki-master フォルダを解凍し、適当なフォルダにコピーする(※たぶん問題ないけど c:\yokai\ みたいに半角英字で日本語を含まないフォルダ名にしておくほうが良いと思う)。

9.バッチファイル yokai-start.bat を右クリック→リンク先をファイル保存し、先ほど作成したyokaidouchuuki-masterフォルダにコピーする。

10.yokai-start.batを実行すると初回は「Updating…」と表示してから
calc DP
start search
check 0 0
check 0 1
 のように進行すれば成功ですが、とりあえずウインドウを閉じましょう。

11.さらに同フォルダの辞書ファイル dict.txt をテキストエディタで開き、自分の運とセンスと才能を信じながら編集してから yokai-start.bat を実行。

12.もし真のパスワードが見つかったら4STシイナさんにご報告を!
真の無敵パスワードは「なむこなむ!756-2311」です。


 この記事を見てもわからん! という人は、もっとグラフィカルに説明してくれているおばきいさんのサイトもご一読を!(迷惑かけちゃダメですよ)

【真のパスワード発見!】4STさん動画支援「PCエンジン妖怪道中記パスワード解析」

 2021年12月17日公開の4STさんの動画「ナムコの知られざる天才スーパーハッカーが仕込んだ隠しメッセージの謎とそれを廻る都市伝説|妖怪道中記」の支援コンテンツを作成しました。
詳しくは下記特設サイトをご覧ください。

求む!PCエンジン「妖怪道中記」のパスワード3種
http://i486.mods.jp/ichild/yokaipw

2021年12月21日
これまでのまとめ

1.解析資料とツール公開から半日であーすまん氏8文字パスワードを撃破。

2.翌日、自作ツールで辞書アタックしたぼてさん氏が11文字パスワードを撃破。

3.さらに自作ツールで辞書アタックしたtanzaku氏が14文字パスワードを撃破。

――が!

4.妖怪道中記のパスワード認証アルゴリズムは構造上「同じ効果を持つ異なるパスワード」が多数重複する。そして発見された14文字パスワードは「真のパスワードではない」と判明(開発者の宇田川氏より情報)。

5.解析者達の知識を集結するためDiscordサーバ「隠しパスワード解析選手権」を開設し、その中で「パスワードの重複は4731万件ある」ことが発覚――!

~2022年2月20日追記~
Discordサーバにて、ゲームおやじ氏が発見したパスワードで決定しました。
真の無敵パスワードは「なむこなむ!756-2311」です。


 もっと細かな経緯についてはkazuhito_m氏がまとめているので、詳しくは下記サイトをご覧ください。
https://youkaiosugi.com/overview

 そして改めて……Discordへの参加をお待ちしております。