【速報】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氏がこれまでの経緯をすべてまとめてくれています。
 これからチャレンジしたい人も、今まで関わってきた人も一度おさらいで読んでおくが吉ですの(・ω・)

【今来た人向け】これまでのあらすじ
https://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種
https://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への参加をお待ちしております。

飛装騎兵カイザードの隠しメッセージを見る方法

 2021年11月26日に4STにアップされた一本の動画――

 いつもの4STの隠しメッセージ動画だと思いきや、「飛装騎兵カイザード」の項が始まるや否や、いきなり20分47秒からセンシティブ映像の警告メッセージが流れるという恐怖映像に仰天した人も多いはず。

 今は中古で数百円で購入できるような激安ソフトですし「実際に入手して自分の目で見てみたい!」という変態向けにテキスト抽出スクリプトを作成しました。

TECONVS Wiki : PCエンジン「飛装騎兵カイザード」

テキストコンバータ:TECONVS

 Wikiからスクリプトとテーブルをコピペしてそれぞれテキストファイルに保存し、TECONVSでROM+スクリプト+テーブルをそれぞれ指定すれば、隠しメッセージのテキスト情報を取得することができます。

 ……まあ、正直あまり読むことはオススメしませんがね。

GCCODE2 v1.40を公開しました


Download : gccode2_v140.zip

 テキストコンバータ作成支援ツール『GCCODE2』をまたまた機能追加しました。

1.「差異かなTBL作成」「差異カナTBL作成」
 たとえばSFC版ドラクエ5で半角カナの「スライム」を検索して、文字コードの差異が6Fであると確定した状態で「差異カナTBL作成」ボタンを押すと、ファイル保存ダイアログが開くので「DQ5カナテーブル.txt」とでも名前を付けて保存しましょう。
 これをテキストエディタで開くと……

 てなわけで、今までせっせと1文字ずつ手入力していたのが、この機能一発である程度まで作れるようになりました(※ソフトによってはヤ行以降やワ行以降がおかしくなる場合あり)。

2.ドラッグ&ドロップ実装
 「ROMイメージ単体ドロップ、テーブルファイル単体ドロップ、ROMイメージとテーブルファイルを同時ドロップ」で一気に開けるようになりました。
 ファミコンやPCエンジンなどいろんな機種のソフトを飛び飛びで解析したい時にラクになりました。
(※ソフトの仕様上、一度ROMデータをロードしたら再ロードできないので、バンバン投げ込めるわけじゃないです)

GCCODE2 Ver1.30をリリースしました

 家庭用ゲームソフト用テキストコンバータ作成支援ツール『GCCODE2』をバージョンアップしました。
 →GCCODE2について詳しく知りたい方はコチラを先にご覧ください


Download : gccode2_v130.zip

 めちゃ地味な機能ですけど、今まで「画面に表示された文字をいちいち半角カナに打ち直さないとダメなうえ、学習辞書がオンだと辞書が汚れるのがイヤな感じ」だったので、十数年越しに修正です(‘-`)

 あと、検索ウインドウでマウススクロールすると、ヘキサダンプがスクロールするバグがあったのでそれも修正しました。