095:久しぶりに異世界ハッキングっぽい話
<ウルシュ国立図書館 別館資料庫(地下一階)>
「こ、ここここっ、これは一体なんなのじゃっ!?」
オウカ姫の目線の先には一冊の魔導書があり、そこから放たれた光が壁面にメッセージを投影していた。
【Angel Ring OS Ver.X】
「まったく、ノーヒントでたどり着くのが不可能な場所にこういう重要なイベントトリガー設置すんの、マジでやめてくれねーかな……」
『ホントそれ。ネブラのシナリオデザインのセンスはウンコだね』
文句をぶちぶち垂れながらOSの起動画面を眺めている俺とアンジュを見て、オウカ姫は不安そうにレンの服の袖をクイクイと引く。
「な、なあっ! どうしてこの者達はこんなに達観しておるのだっ!?」
「う、うーん……。この二人は特別なので」
「と、特別???」
レンのアバウト過ぎる説明に、オウカ姫は困り顔のまま首を傾げてしまった。
そんな二人のやり取りを微笑ましく眺めつつ、再び壁の方を見ると……
【SYSTEM ERROR Code 90】
そして、青画面にクラッシュダンプが表示されて起動が停止した。
「『…………は?』」
俺とアンジュの声がハモると同時に映像が消えて、辺りが微妙な空気で包まれた。
しばらく待っても再び投影が始まることなく、再び薄暗くなった部屋で全員無言のまま立ち尽くす。
「…………マジですか」
呆然としたまま壁を眺めている俺の横で、アンジュが青ざめながら魔導書をバタバタと開いたり閉じたりを繰り返しているが……
【SYSTEM ERROR Code -1】
【BOOT LDR MISSING】
【unknown err】
【12lw3vkltdga&4#udjjh】
「なんか悪化してるーーっ!!!?」
『ははは、こんなジメジメした場所に保管するとカビにやられちゃうんだねー……はは、は……はぅぅー』
天界のスーパーテクノロジーをもってしても湿気と経年劣化には耐えられなかったのか、まさかの起動エラーでデッドエンドという酷いオチに。
アンジュも、グッタリと脱力したまま本に向かって顔を突っ伏してしまった。
「このシステム作ったクソ野郎も想定してなかったんだろうな……つーか、これマジでどうすんだよ」
本に突っ伏したままのアンジュの頭頂部を無意味にグリグリ指圧していると、隣にロロがやって来て俺と一緒にグリグリし始めた。
「いつも通り、例のアレ使わないのかい?」
さっきの「きゃんっ」「ばかぁっ」を無かったことにしたいのか、いつもの眠そうな目で淡々と話すロロの姿に思わず吹き出しそうになってしまったが、ここで下手にからかうと逆上して襲ってきそうなので、ぐっとこらえた。
「まあ、ここまで見られておいて今さら隠す意味もねーよなぁ」
俺の呟きにロロは満足そうにウンウンと頷く。
そんじゃ、いっちょやってやりますか。
「脆弱性解析ツール起動!」
俺の掛け声に伴い、青画面の横に見慣れたコンソールが表示された。
そしてオウカ姫の方を見ると……
「そんな頻繁に慌てておったら身が持たぬわ」
微妙に疲れた顔でシステムコンソールを眺めるオウカ姫を一瞥しつつ、この部屋に配置されたキャラクタを探してみたところ「grimoire」と書かれたド直球な名前のオブジェクトを発見した。
「ったく、勿体ぶった名前付けやがって……」
俺は魔導書のOSが起動する前に解析ツールのAttachボタンでプロセスを凍結させ、Stepでプログラムカウンタを少しずつ進めた。
:77098 x7D42001 LDRB r2,[r4, +r1]
:7709C x1A03007 MOV r3,r7
:770A0 x1A00382 MOV r0,r2,LSL#0x7
:770A4 x18000C2 ORR r0,r0,r2,ASR #0x1
:770A8 x2833001 ADD r3,r3,#0x1
:770AC x3530002 CMP r3,#0x2
・
・
・
ステップ、ステップ、ステップ……~って、コレ全く終わりが見えねえな。
まだ起動ロゴすら出てこねえし、きりがないぞ。
『わざとStep Overで次のポイントまで飛ばして、クラッシュ地点からリンクレジスタを遡れば良いんじゃないの?』
突っ伏してたはずのアンジュがいつの間にか俺の横でスクリーンを眺めながら呟いた。
「お前に従うのはシャクだけどそうするよ……」
おバカキャラのくせに何故か時々妙に小賢しいのが余計に腹立たしいが、コイツの言う通りStep Overでサクサク進めたところ、特定のルーチンをコールした瞬間にプログラムカウンタが異常値を指して停止した。
【>BL FDC_MIXSECTOR_PROTECT】
「ミックスセクタープロテクトって何?」
『うーん、私もわかんないや……』
名前から察するにコピーガードっぽいけど、写本が作られないようにしているのだろうか?
どちらにしても、それが原因でマスタが正常起動出来ないとか、まるでプロテクト誤爆だ。
まあ、ここをコールしてフリーズしてるなら話は早い。
【nop】
「……というわけで、プロテクトのコールを潰してみました」
『直前にいくつかスタック操作してるっぽいから、それも直した方が良いかも?』
「へいへい」
そして周りのパラメータをちょいちょい修正してから再びプログラムをリスタートさせると、俺が転生する直前に聴いた懐かしいメロディが流れてきた。
「おおお! 神聖っぽい感じがするBGMだ!!」
『これ作曲したのネブラらしいよ……』
「………」
何故か途端にクソ曲に思えてきた。
人間というものは身勝手なのである。
『まあその気持ちは分からなくもないけど……って、何かプログラムが起動したよっ!』
アンジュが指差した先に表示されたそれは……
【ウルシュ予言書プログラム アップデータv1.0→1.1差分パッチ】
~ 久々の備考 ~
ブートローダに割り込めるデバッガとか解析ツール優秀すぎだろ常識的に考えて……。
というのはさておき、今回タケルがとった手法は破損プログラムの修復ではなく、どちらかというとコピーガードハッキングです。
・Attach
プログラムにアタッチを仕掛けて起動プロセスを追いかけて、プロテクト地点をnopでスルーさせることでコピーガードキャンセルを狙うわけですが、OSのブートローダが巨大過ぎて「きりがない」と言っているのです。
・Step Over
アンジュの言った「Step Over」はサブルーチンコールをガンガンすっ飛ばしながら起動プロセスを飛ばせるので、後述のFDC_MIXSECTOR_PROTECTルーチンを呼ぶと同時にクラッシュしました。
・FDC_MIXSECTOR_PROTECT
タケルの親世代のハッカーじゃないと理解できないサブルーチン名です。
グリモワールのページ構造を微妙に変化させることで写本(コピー品)を作らせないように制作者が仕組んだところ、経年劣化が原因でコピープロテクトが誤動作してOSが起動しなくなっていました。





