[{"data":1,"prerenderedAt":244},["ShallowReactive",2],{"navigation":3,"blog:/blog/2026051200-hinada-garbage":82,"blog:/blog/2026051200-hinada-garbage:surround":241},[4],{"title":5,"path":6,"stem":7,"children":8,"page":81},"Blog","/blog","blog",[9,13,17,21,25,29,33,37,41,45,49,53,57,61,65,69,73,77],{"title":10,"path":11,"stem":12},"ホームページ作り直したンゴねぇ","/blog/2026021300-create-homepage","blog/2026021300-create-homepage",{"title":14,"path":15,"stem":16},"バレンタインデー食べ食べナイト","/blog/2026021301-chocolate","blog/2026021301-chocolate",{"title":18,"path":19,"stem":20},"ボーンナム1600万をだした","/blog/2026021600-bornam1600","blog/2026021600-bornam1600",{"title":22,"path":23,"stem":24},"レガシーの最先端を行く、とは","/blog/2026021700-l-uploader","blog/2026021700-l-uploader",{"title":26,"path":27,"stem":28},"日本ハイスコア協会のデータ集計ページ下調べ","/blog/2026021800-jha","blog/2026021800-jha",{"title":30,"path":31,"stem":32},"メールの話と絵文字リアクションの話","/blog/20260220-mail-chat","blog/20260220-mail-chat",{"title":34,"path":35,"stem":36},"日本ハイスコア協会のデータ集計ページ下調べ②","/blog/2026022200-jha-poc","blog/2026022200-jha-poc",{"title":38,"path":39,"stem":40},"日本ハイスコア協会のデータ集計ページ下調べ③","/blog/2026022300-jha3","blog/2026022300-jha3",{"title":42,"path":43,"stem":44},"パソコンのデータ全部飛んでわろたｗ","/blog/2026022600-wsl-deleted","blog/2026022600-wsl-deleted",{"title":46,"path":47,"stem":48},"人間は自分のボキャブラリーにない表現は理解できない話","/blog/2026030300-metaphor","blog/2026030300-metaphor",{"title":50,"path":51,"stem":52},"超かぐや姫見たので暇だし立川散歩してきた","/blog/2026030800-extreme-princess-kaguya","blog/2026030800-extreme-princess-kaguya",{"title":54,"path":55,"stem":56},"超かぐや姫の小説を読んで限界になりそうになってる人","/blog/2026031200-extreme-princess-kaguya-read-novel","blog/2026031200-extreme-princess-kaguya-read-novel",{"title":58,"path":59,"stem":60},"超かぐや姫を2回見てきた人","/blog/2026031500-extreme-princess-kaguya-2nd","blog/2026031500-extreme-princess-kaguya-2nd",{"title":62,"path":63,"stem":64},"3連休","/blog/2026032300-three-day-holliday","blog/2026032300-three-day-holliday",{"title":66,"path":67,"stem":68},"2連休","/blog/2026040500-two-day-holiday","blog/2026040500-two-day-holiday",{"title":70,"path":71,"stem":72},"レイトン教授ってSteamでできるんかい！！！！！！","/blog/2026041100-professor-layton","blog/2026041100-professor-layton",{"title":74,"path":75,"stem":76},"サイレントセレナに文花帖系作品追加してぇなぁ","/blog/2026041300-silentselene-code-edit","blog/2026041300-silentselene-code-edit",{"title":78,"path":79,"stem":80},"秘封ナイトメアダイアリーのリプレイバイナリ上に正しいスコア書かれていないやんけwwww","/blog/2026051200-hinada-garbage","blog/2026051200-hinada-garbage",false,{"id":83,"title":78,"author":84,"body":85,"date":232,"description":233,"extension":234,"image":235,"meta":236,"minRead":237,"navigation":238,"path":79,"seo":239,"stem":80,"__hash__":240},"blog/blog/2026051200-hinada-garbage.md",null,{"type":86,"value":87,"toc":224},"minimark",[88,92,96,99,120,123,129,139,142,150,156,159,162,165,175,181,184,187,193,196,199],[89,90,91],"h2",{"id":91},"やりたいこと",[93,94,95],"p",{},"サイレントセレナにて文花帖系を組み込むための立て付けを作った。\nよって今後文花帖系作品を追加していく需要が(僕個人の中で)増える。\n秘封ナイトメアダイアリーのスコアをリプレイから取得し、サイレントセレナで解析できることを目的とする。",[89,97,98],{"id":98},"東方のリプレイファイル構造の復習",[93,100,101,102,114,115],{},"一般には先頭にゲームIDになぞらえたマジックナンバー",[103,104,105],"sup",{},[106,107,113],"a",{"href":108,"ariaDescribedBy":109,"dataFootnoteRef":111,"id":112},"#user-content-fn-magic",[110],"footnote-label","","user-content-fnref-magic","1","とユーザデータオフセット等のヘッダが来た後、ゲーム上で実際に使われる暗号化されたバイナリデータがユーザデータオフセットまで続き、ユーザデータオフセットからはASCIIの可読文字が続く。\n",[116,117],"img",{"alt":118,"src":119,"title":118},"天空璋リプレイヘッダ","/blog/2026051200-hinada-garbage/t16r_header.png",[93,121,122],{},"ASCII可読文字部にはリプレイファイルを活かしてサービスを作りたい人向けにスコアや日付等のメタデータが書かれている。ロイヤルフレアがここを使っていたことは有名だ。",[93,124,125],{},[116,126],{"alt":127,"src":128,"title":127},"天空璋リプレイメタデータ","/blog/2026051200-hinada-garbage/t16r_meta.png",[93,130,131,132,138],{},"KaitaiStructのksyファイルに起こすと",[106,133,137],{"href":134,"rel":135},"https://github.com/n-rook/thscoreboard/blob/main/ref/threp-ksy/th_modern.ksy",[136],"nofollow","これ","のようになる",[89,140,141],{"id":141},"秘封ナイトメアダイアリーの構造",[93,143,144,145,149],{},"メタデータを見てみると嘘のスコアが書かれている。\n今回のスコアは ",[146,147,148],"code",{},"105798"," のはずなので違っている。これは太田順也側のミスだ。カスがよ。",[93,151,152],{},[116,153],{"alt":154,"src":155,"title":154},"秘封ナイトメアダイアリーリプレイメタデータ","/blog/2026051200-hinada-garbage/t156_meta.png",[93,157,158],{},"このせいで旧ロイヤルフレアではスコアボードができなかった。",[89,160,161],{"id":161},"秘封ナイトメアダイアリーの内部データを復号してみる",[93,163,164],{},"ここで、サイレントセレナはゲームの使っている暗号化部を復号化する謎技術を使っている。自分もそれを使って復号してみた。",[93,166,167,168,170,171,174],{},"スコアは ",[146,169,148],{}," なのでこれを16進数のリトルエンディアンに直すと ",[146,172,173],{},"469D0100"," となるはずだ。これを復号したゲーム内部データから探してみる",[93,176,177],{},[116,178],{"alt":179,"src":180,"title":179},"秘封ナイトメアダイアリーリプレイ暗号化部の復号結果","/blog/2026051200-hinada-garbage/t156_decrypt.png",[93,182,183],{},"ありませんでしたｗ",[93,185,186],{},"よくよく考えるとリプレイ画面でスコアを参照していない。つまりゲームはリプレイからスコアを一切参照していないのだろう。\n太田順也くんさぁ…",[93,188,189],{},[116,190],{"alt":191,"src":192,"title":191},"秘封ナイトメアダイアリーリプレイ画面","/blog/2026051200-hinada-garbage/replay.jpg",[93,194,195],{},"でもよく考えると秘封ナイトメアダイアリーをスコアタする奴なんていないのでサイレントセレナに追加する必要はないだろう。",[93,197,198],{},"ゴミカスがよ。",[200,201,204,209],"section",{"className":202,"dataFootnotes":111},[203],"footnotes",[89,205,208],{"className":206,"id":110},[207],"sr-only","Footnotes",[210,211,212],"ol",{},[213,214,216,217],"li",{"id":215},"user-content-fn-magic","例えばth13ならt13rとなる。これはth13のrelease版という意味だと予測できる。体験版ならtraialのtでt13tとなる。ただしth14は太田順也のデバッグ不足でt14rではなくt13rとなっている。もっとデバッグしろ。 ",[106,218,223],{"href":219,"ariaLabel":220,"className":221,"dataFootnoteBackref":111},"#user-content-fnref-magic","Back to reference 1",[222],"data-footnote-backref","↩",{"title":111,"searchDepth":225,"depth":225,"links":226},2,[227,228,229,230,231],{"id":91,"depth":225,"text":91},{"id":98,"depth":225,"text":98},{"id":141,"depth":225,"text":141},{"id":161,"depth":225,"text":161},{"id":110,"depth":225,"text":208},"2026-05-12T00:00:00.000Z","太田順也はもっとデバッグしろ","md","/blog/default.webp",{},5,true,{"title":78,"description":233},"gw3jGaiv77OlyomV0Xp4wzg-y35KMsvaWnKZik4crk4",[242,84],{"title":74,"path":75,"stem":76,"description":243,"children":-1},"コードの理解メモ",1779287525895]