annnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnaスマートフォン用の表示で見るannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnaこの広告は、90日以上更新していないブログに表示しています。わかってない部分を明らかにしていく前回は、パスワードの正誤判定チェックは1文字の偶数パリティで行われていることがわかった。「2週目とかのカウンター」この辺だろうか。10文字or12文字のフラグ「どこまでがそのキャラのデータか」をデータに組み込むには「先頭に文字数を付加する」「区切り文字を挿入して区切る」大きく分けてこの2パターンが簡単だと思う。星をみるひとのパスワードの場合、先頭にキャラIDを示す固定文字があって、その文字からそのキャラについての固定長でデータが入っているという感じだった。バトルドッジボールの場合もキャラIDっぽい文字を示す箇所はあるのだが、この文字自体はおそらく能力値でも使われる可能性がある文字だろう。データが固定長でない場合、キャラIDが先頭にあっても「どこまでが能力値?キャラIDっぽい文字が出たけど、ここから次のキャラのデータでいいの?」という判定はできないと思う。出てきたら区切り」とかそういうのじゃないのかなーと思いながら、過去に収集したパスワードを前回作ったツールに放り投げてみたがどうもこの予想は外れているらしい。前回ためしに強引に作ったパスワードの場合、能力値がなぜか16進数で表示されていたんだった。♦♦P♦トウさ1勝したりキャッチしたりしたので作成時点とちょっと違うが、能力値をいじらなかった場合このようなパスワードになった。この能力値は内部的におかしくなって、減らしていって0を突き抜けて999にできる項目がある。いDぜしごヤす全体的にだいぶ変わってしまったけど、先頭に注目したい。「ギ」はチームIDの部分だと思うけど、「な」に変化した。アんシOがパリティっぽい挙動をする文字が34桁目から40桁目に位置がずれてるから3キャラに2文字ずつ足したと考えると辻褄合うしやっぱり中間に文字増えてると思った方が良さそう。いじってるんだけど、42文字のパターンと50文字のパターンしか出せていない。文字数に応じて各キャラのデータが10文字or12文字を判断してるんじゃなかろうか。なったら50文字になるかはいまいちわかっていない。キャラIDの位置も当然ずれているとして、2人目は「じ」→「ダ」に変化しているように見えるし、16ビット分ずれているわけではないかもしれない。シPさばけしダークブレインの各能力値は+100~116になっているのだが、最初に予想した各能力値の位置を見ると0の時と同じ文字がある。体力の「シ」とフットワークの「さ」だ。これらは能力値100の項目だ。いキPアトウさ1桁目はチームID、2桁目はステージ進行度、4、14、24桁目はMP、34文字目はパリティなので変化は無視して、他の変化した部分を抽出すると10~12桁目、20~22桁目、30~32桁目、40~42桁目だけが変化したことがわかる。今まで「不明」だった部分は各能力値の100の位を表していたっぽいことがわかった。前半5文字でそれぞれ0~99を表現して、後ろの3文字で5項目分の0~9を表現していて、また、各項目が9ををオーバーした場合に16進数表記になるんだろう。一応確認ダークブレインのジャンプ力を「ゼ」→「♦」に変化させたとき、「00」→「A2」に変化した。0010」が増えている。これは「A2」なので、上位4ビットで10の位、下位4ビットで1の位を表していて、9を超える場合16進数表記に化けてしまうわけだ。00000001」が増えている。4ビットずつ各能力値に対応してそうですね。この場合だと各能力値は「F99」と表示される値、つまり「1699」までしか表現できないので、Lv20に相当する「9999」を表現するためには桁が足りないっぽい。増える文字はというわけで、42文字パターンは解析できたといっていいかな。ゲさしゼそ」が出てきますね。この辺の値の使われ方は変化していないと考えていいでしょう。アんシぜが意外なところが変化した。「さし」=「0000」から「さl」=「9900」に変化したということになるでしょう。体力、ショット~ジャンプ力の順で2文字ずつ10の位と1の位、1000の位と100の位が表されていると考えられます。能力値0の場合でも「ああああ」などにならずに多少のオフセットがあるせいでわかりにくくなっていますが、雷門のフットワークの100と外野の9999を調整すれば50文字パターンでの全能力値0のパスワードが作れそうですね。ジェネレーターはその状態を起点にすれば作れそう。1001」を引いて「アル」にすれば良さそう。思ったのだが、ここで問題発生。ゲーム画面で表示されたはずの上記のパスワードが通らないのだ。スクショ重ねて確認したから入力ミスではない。前回の記事に「全文字のXorをとっても00000000にならない」と追記したのだが、どうやら改造パスワードからの進行結果としてゲーム画面が表示してくるパスワードが嘘らしい。この50文字のパスワードだと40文字目の「エ」がパリティにあたるのだが、ここを「ハ」にすると全文字のXorの結果が0000000になる。アんシぜがを通そうとしたのだがうまくいかなかった。アんシぜがこの「ゴ」も嘘パリティなのだが、計算してみると実際は「242」にあたる文字が入るはず。そんな文字はないのでこのパターンのパスワードは通せないということになりそう。メモレベルの話バトルドッジボールのパスワード解析をやっていくぞい。通せるパスワード作る方法多分分かった月別アーカイブはてなブログをはじめよう!annnnnnnaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。