ふつーのプログラマです。主に企業内Webシステムの要件定義から保守まで何でもやってる、ふつーのプログラマです。

史上最大の作戦 (3) 12月24日

»

 高村ミスズは困惑していた。これで丸三日もキサラギと連絡が取れないのだ。
 これまでにも、連絡が途絶えることはあったが、そのような場合、事前に事情を伝えてきていたものだ。本業の方が忙しいとか、ゲームの大会で遠征するとか、大失恋して立ち直るのに時間を要するとか。高村自身が依頼した仕事で、どこかのネットワークに深く潜っていた場合もあるが、今回のように、何の兆候もなく、いきなりPING が届かなくなるのは初めてだ。
 多数のフォロワーを抱えるゲーマーとして、いくつかのSNS を利用しているが、どれにも活動の痕跡がない。メール、SMS にも応答がないし、LINE も既読にすらならない。
 キサラギにも自分の人生というものがある。彼は高村の、いや三村スズタカの専属というわけではないのだから、常に連絡先を残しておく理由はない。普段なら、そう考えて、キサラギほど腕はよくないが別のハッカーに声をかけたところだ。だが今回は別の事情があった。
 数年前を最後に連絡がなく、一生、連絡がないことを祈っていた相手からの着信があったのは22 日の夜だった。『どうもマーチン先生』という挨拶を聞いた途端、高村はスマートフォンを放り投げたくなる衝動に耐えなければならなかった。
 「須藤か」何とか平静な声で応じたものの、ボイスチェンジャーを介していなければ、動揺が伝わっていたに違いない。「何か用かね」
 『相変わらず元気そうで何よりだね。少し早いが、メリークリスマスと言っておこうか』
 「悪いが忙しい身でね。用件があるなら簡潔に手短に言ってもらいたい」
 『元旦に新発売されるスマートフォンのことは知ってるだろうね』
 意外な問いに、高村は眉をひそめた。
 「ナルキッソス・ゼロワンのことか。IT 系のニュースサイトでは、それなりのトピックになっているからな。それがどうした。予約したいが正式な身分証明書がないからできないのか。気の毒にな。いい機会だから真っ当な職場に転職したらどうだ」
 『同時に配信されるドラマとゲームのことは?』
 「知っている。ゼロワンでしか視聴・プレイできないという触れ込みのやつだろう。どんなプロテクトなのか興味はあるがね。一台、入手する予定だから、手元に来たら調べてみるつもりだ」
 『忠告しておくがやめておいた方がいいぞ』
 「なんだと?」
 『こっちも時間がないから要望通り手短に言おう』須藤の声が真剣さを増した。『以前に話したパートタイムカウンターテロ・プロジェクトがまた動き出している。ナルキッソス・ゼロワンで大規模な実験を行う予定だ。そう、ナルキッソス・モバイルにはハウンドの資本が注入されているんだ』
 ハウンド、という固有名詞を耳にした途端、高村は反射的にキーボードに手を伸ばしメッセンジャーを起動した。ショートカットでキサラギを呼び出す。
 『言っておくが調べてもわからんよ』高村の行動が見えているかのように、須藤は釘を刺した。『連絡したのは、このプロジェクトを止めるために力を貸してもらいたいからだ』
 「聞き間違いか? 止めると聞こえた気がしたんだが」
 『間違っていない。このプロジェクトは止めなければいかん』
 「どうした心境だ。前に話をしたとき、あんたはそのバカげたプロジェクトに賛同していたどころか推進していて、私をスカウトしようとまでしたんだぞ」
 『プロジェクトPCT が、今や別の目的のために実行されようとしているからだよ』
 高村は驚いた。須藤の声に、疑いようもない恐怖の響きを感じたからだ。
 「別......別の目的って、誰が何のために?」
 『知る必要はないし、知らない方がいいし、知ったら後悔することになる。いいかね先生、私は先生から見れば唾を吐きかけたくなるような死の商人かもしれないが、少なくとも、先生に嘘をついたことはない。それは認めてくれるだろう』
 「......力を貸してほしいというのは何のことだ」キサラギが一向に応答しないことを気にしながら、高村は訊いた。
 『クリスマス前後に、ちょっとした事件が起こるはずだ。同じタイミングで、先生のもとにあるデータが届く。それを公表してもらいたいんだ』
 「何のデータだ」
 『見ればわかる』
 「なぜあんたが公表しないんだ」
 『IT 業界で著名な人物が公表する必要があるんだ。どこの誰ともしらない一ネットユーザがほざいても、信用度がないからな』
 「よくわからんな。一体、何が起こるんだ」
 『あるSF 映画にぴったりのセリフがある。Something Wonderful だよ』
 その言葉を残して、通話は唐突に切れた。
 スマートフォンを放り出した高村は、改めてキサラギとコンタクトを取ろうと試みた。ナルキッソスとハウンドの関係について調査を依頼するためだ。須藤の言葉を疑っているわけではないが、複数の情報源から裏を取るのは常識だ。
 だがいつまで待っても、キサラギと連絡をつけることはできなかった。高村は喉に魚の小骨が刺さったままのような精神状態でクリスマスまでの数日を過ごすことになった。

 ◇ ◇ ◇ ◇ ◇

 クリスマスイブということで、カフェテリアでは無料のミニケーキがサービスされていた。イノウーとマリが休憩時間に向かうと、長蛇の列になっていた。
 「うわ、みんな甘いものに飢えてるんすね。あ」
 警備員の制服を着た屈強な男性が数名、カフェテリア内に立っていた。イノウーとマリは顔を見合わせて笑った。その原因を作ったのは自分たちだと気付いたからだ。
 「やあ、君たちもケーキか」
 声をかけてきたのは、マーズ・エージェンシーの元社長牧野だ。
 「おつかれさまです」
 「あの」マリが小さく頭を下げた。「昨日はお騒がせして申しわけありませんでした」
 「まあ若いからいろいろあるんだろうけどねえ」牧野は楽しそうに笑った。「イノウーくんも苦労するねえ」
 「全くです」
 マリが目立たないように足を踏みつけてきた。
 「ご一緒にどうですか」イノウーはさりげなく足を外しながら訊いた。
 「ありがとう。残念だけど、糖分は控えないといけなくてね。まあ二人で楽しんで。話し合うこともたくさんあるだろうしね」
 牧野が手を振って行ってしまうと、マリはぼやいた。
 「なんであたしが二股かけてるみたいに思われなきゃならんのですか」マリはぼやきながら、カフェテリア内をレーダー照射するみたいに見回した。「そういえば、あの星野って人、今日はいないみたいですね」
 「一度戻るって言ってたかな」
 「戻ってこなきゃいいのに」
 「まあ、そう言わないで」イノウーはなだめた。「あの人も仕事でやってるんだから」
 昨日、火災警報を鳴らした後、開発ルームに忍び込んだイノウーたちは、DOD ルームから出てきたナルキッソス・モバイルの須藤と名乗る男に誰何された。適当に誤魔化して逃げるしかない、とイノウーは思ったが、星野は大胆に須藤の前に進み出た。
 「公正取引委員会の者です」星野は堂々と官名詐称を口にした。「ノヴァ・エンターテインメントが発売を予定しているゲームのことで調査に来ました」
 「身分証を見せてもらいたいね」
 「その必要はありません。とにかく通してください」
 そんなハッタリが通用するはずがない、とイノウーはハラハラした。さっさと逃げ出した方がいい、と星野に合図しようとしたとき、意外にも須藤はドアの前からどき、レディーを招き入れる紳士のように片手を差し出した。
 「どうぞ」
 「え?」意外だったのは星野も同じだったようで、戸惑ったように須藤の顔を見たが、すぐに自信ありげな態度を取り戻した。「ご、ご協力ありがとうございます。火災みたいですから、早めに避難された方がいいですよ」
 「そうさせてもらいますよ」
 須藤が一礼しながら言った。星野は開発ルームに足を踏み入れ、イノウーたちも続いたが、ドアが閉まる直前、須藤が声をかけた。
 「DOD のソースにアクセスできるのは、末尾が8702 から8709 のPC だ。ロックのパスワードは、端末番号の前に大文字のQ が二つ、最後にS が二つだよ」
 全員が振り返ったとき、すでにドアは閉まっていた。内側からはプッシュハンドルを押すだけで開くが、きっと姿を消しているだろうとイノウーは考えた。
 警報音が止まった。火災ではないことが判明したのだろう。星野とイノウーはずらりと並んでいるPC の列に駈け寄った。PC には端末番号が貼りつけられている。NVGDS の後に4 桁の数字が続く形式だ。須藤が言い残した8702 から8709 の8 台もちゃんとあった。
 「なんで教えてくれたんですかね」イノウーは訊いた。
 「知るもんですか」星野はロック解除のパスワードを入力しながら答えた。「とにかく急ぐわよ」
 もしかしたらロック解除パスワードというのはウソで、規定回数を超えた試行でアカウントを無効にさせるためかもしれない、という疑いはあったが、Enter キーを押すと、あっさりデスクトップが表示された。
 「もし、さっきの人が」イノウーは隣のPC のロックを解除しながら訊いた。「パスワードを教えてくれてなかったらどうしてたんですか?」
 星野はデスクトップのEclipse アイコンをダブルクリックしながら、イノウーをちらりと見て答えた。
 「一応、何個かツールは持ってきてるから。合法的なものじゃないけどね。使わずにすんでよかった」
 Eclipse のプロジェクトツリーにはDOD らしきプロジェクトが並んでいた。星野は素早くプロジェクトを開いていきながら、中を確認し始めた。
 「そこの二人」星野は顔も上げずにマリと古里に声をかけた。「外に出て見張ってて。誰か入ってきそうだったらノックして、時間稼いで」
 古里は雰囲気に呑まれたのか、おとなしく外に出ていったが、マリはイノウーの袖を引っ張って、ドアの前まで連れていった。
 「何がどうなってるのか説明してくれるんですよね」
 「もちろん。でも、ちょっと待ってて」
 「いいですけど」マリはいきなりイノウーの耳に唇を寄せた。「あたし以外の女と、あんまり接近しないで」
 熱い吐息を残して、マリはドアから出て言った。イノウーがPC の前に戻ると、星野はモニタを見つめながらニヤリと笑った。
 「いい子ね。大事にしなさいよ」
 「言われなくても」照れ隠しに真面目な顔を作りながらイノウーは答えた。「で、何をすればいいんですか」
 「怪しいモジュールを探すのよ」
 「その怪しいかどうかって、どうやってわかるんですか」
 「オンラインゲームの仕組みは詳しい?」
 「いえ、特には」
 「アプリのオンラインゲームは」星野が手を動かしながら、早口で説明した。「言うまでもないけど、膨大なグラフィックデータとかサウンドデータを、いちいち通信でやり取りしてられないから、大きいファイルはあらかじめダウンロードしておく。アプリのインストール時とかアップデート時とかにね。私たちが探してるのは、怪しいサブリミナルロジックよね。でも、それは事前ダウンロードされるものではないと思う」
 「どうしてですか?」
 「証拠を残すことになるでしょう。チートで儲けてるチーターにとってダウンロードデータは宝の山。ゼロワン発売と同時に解析に入るに決まってる。その中の誰かがサブリミナルロジックに気付くかもしれない、と考えたら、私なら配置しない。リアルタイムサーバ側に配置して、任意のタイミングでゲームデータに紛れ込ませる方が確実」
 「でもここには」イノウーはEclipse のプロジェクトツリーを指した。「100 以上のプロジェクトがあるんですよ。どれが本番で、どれがサーバ側モジュールかなんてわからないじゃないですか。一個ずつ開いて調べるんですか?」
 プロジェクト名はアルファベットと連番で、中身を表すようなネーミングになっていない。
 「ここにあるプロジェクトは、どれもjp.co.novaentertainment パッケージの直下にMain.java があるのよ。そこにpublic static void main() メソッドがある。サーバ側モジュールはプロセスとして起動されるはずだから、起動クラスはMain.java だと思う。そこにワームロジックを入れておく」
 「100 個全部に? 手分けしても一人50 個ですよ。すぐ時間切れになりますよ。そもそもワームって何ですか」
 「そこでこれの出番。ジャジャーン」
 妙な擬音とともに星野はポケットからスマートフォンをつまみ出した。続いてもう1 台。さらに1 台。いったい、いくつスマートフォンを隠し持ってるんだ、とイノウーが呆れながら見ていると、星野は1 台を開発PC のキーボードの前に置いた。
 「言うまでもないけどUSB メモリとかは持ち込めないし、デバイスロックで認識しない」星野はスマートフォンを操作しながら言った。「それどころか挿した途端に、監視ツールにアラートが上がるはず。でもこのPC からMain.java を編集して保存するだけなら、通常の開発作業と同じだからアラートは上がらない」
 「つまり手で入力するんですか?」
 「手順はこう」イノウーの抗議を無視して、星野はマウスを掴んだ。「まずプロジェクトを開く。Main.java を探して開く。main メソッドは、こんな感じで try~catch で例外トラップしてるよね」
 「はい、でも......」
 「最後のcatch ブロックの後に改行してカーソルを合わせる」星野は説明しながらキーを叩き、言葉通りに入力した。「もし、すでにfinally ブロックがあったら、一番下の閉じ括弧の前に改行してカーソルを置く。そしたらスマホのこれをタップ」
 星野がタップすると、スマートフォンの表面がパカッと開いたのでイノウーは目を見張った。中から細い金属ワイヤーが何本も出現し、人間の指のように数カ所で折れ曲がった。一本は先端がカメラになっていて、左右に首を振ってキーボードのレイアウトを確認しているようだ。すぐに残りのケーブルが触手のようにうねうねと動き、ホームポジションで待機した。イノウーはケーブルの数を数えた。9 本だ。
 「なんですか、これは」
 「位置が決まったら、これをタップ」
 9 本のケーブルが一斉に動き出し、ものすごいスピードでJava のコードを打ち込んでいった。難読化されたコードのように、改行もなければ、スペースも最小限、変数名も2 文字だ。唖然と眺めていると100 ステップほどのコードを入力し終え、ケーブルはCtrl + S でソースを保存し動きを止めた。
 「これで一丁上がり。エラーが出てないのを確認したら、プロジェクトを閉じて、次で同じことを繰り返す。私は上から潰していくから、君は下から。はい始めて」
 イノウーは言われた通りにやってみた。最初は操作に手間取ったが、すぐにケーブル群にコーディングを実行させることに成功した。
 「これ、どこで売ってるんですか」
 「売ってるわけないでしょ。このタスクのためにカスタマイズされた一点物よ」
 ドアが開き、マリが顔を覗かせた。慌てた様子で囁く。
 「まずい、人が戻って来始めた」
 「あと......3、4 分時間を稼いで」
 「時間を稼ぐって言っても」
 「元カレと痴話げんかのふりでもしたら」
 「元カレじゃない!」
 マリは怒鳴ると、星野を睨み付けてドアを閉じた。
 「Git で管理してるみたいですけど」イノウーはプロジェクトのフォルダを見ながら言った。「リモートにプッシュしとかなくていいんですか?」
 「そうしたいんだけど、リモート側のパスワードまでわからないからねえ」星野は進み具合を注視していた。「担当者が後で気付いて、まとめてプッシュしてくれることを期待するしかない」
 「そのときに追加コードに気付かれたら?」
 「リリースまで時間的余裕がないから、そんなこと気にしてられないんじゃないかな」
 「確信があるわけじゃないんですね」
 「ないわね」星野は認めた。「やれるだけやるしかない」
 ドアの向こうから話し声が聞こえてきた。男女が何か言い争っている。片方はマリの声だ。星野の提案通り、痴話げんかの芝居をしているらしい。
 「残り3 つ」星野が慌ただしくキーを叩いた。「そっちは終わって。Eclipse を閉じて画面ロック。すぐ出られるように」
 言われた通り後始末をしながら、イノウーはドアの方を見た。言い争いはだんだん激しくなっていて、第三者の声も混じり始めた。通してくれないか、仕事があるんだ、という怒声も聞こえる。このPC を使う正当な権利がある社員なのだろう。
 「ぼくたちがここにいる理由をなんて説明するんですか」
 「知らないわよ。何か考えて」
 「そんな行き当たりばったりな」
 「あと1 つ。他にドアは?」
 「ないです」
 「本当に火事になったらどうするのかしらね。エアダクトとかに潜り込めない?」
 「映画じゃあるまいし......」
 「終わった!」星野は叫ぶと、素早くPC にロックをかけ、奇妙なスマートフォンをつかんでポケットに放り込んだ。「外の様子は?」
 「人が集まってきてるみたいです」
 「仕方ないなあ」星野は室内を見回し、キャビネットからA4 サイズの社用封筒を引っぱり出した。「これで顔を隠して、後はダッシュってことで......」
 そのとき、再び火災警報が鳴り響いた。二人はハッと顔を見合わせた。
 「誰が......まさか本当に火事?」
 ドアの外で誰かが悲鳴をあげ、落ち着け、と叫んでいる声が聞こえた。考えているヒマはない。イノウーはドアを開いた。
 マリと古里を遠巻きにして7、8 人の社員が集まっていたが、火災警報に気を取られて、幸いドアに注意をはらっている人間は皆無だった。イノウーと星野は急いでドアから出ると、他の社員を真似てキョロキョロするふりをした。
 今度の火災警報はすぐに止んだ。前回が誤報だったので、ビルの管理部がすぐに切ったのだろう。
 「あれ、イノウーくんじゃないかね」
 声をかけられて振り向くと、そこに牧野が立っていた。驚いた顔でイノウーとマリを交互に見ている。
 「あ、牧野さん」
 「ここで何を? 笠掛くんがベータテスターで来てるのは知ってたんだけど。君も来てたの?」
 「ええ、まあ」
 「この人、牧野さんの知り合いですか?」社員の一人が腹立たしげに訊いた。「さっきから、ここで古里と何かもめてて、うるさくて仕方ないんですけどね」
 「そうなのかね」
 「違うんです」マリは慌てて釈明した。「いや違わないんですけど......その、つまり......」
 「ああ、なるほどなあ」牧野は、マリの隣にいた古里に目を留め、納得したように頷いた。「そういうことか」
 「勝手に納得しないでください。違うんです。あたしは、その......」
 「わかったわかった」牧野は笑いながら頷くと、イノウーとマリに言った。「ちょっとお茶でも飲みながら、落ち着いて話そうじゃないか。マーズの様子も聞きたいしね。それでいいだろ」
 「まあ、牧野さんがそう言うなら」
 集まっていた社員たちが離れていく。イノウーはいつの間にか星野の姿が消えていることに気付いた。

 ◇ ◇ ◇ ◇ ◇

 ケーキと紅茶を楽しんだ二人はテスターの部屋に戻りかけたが、途中で星野がエレベーターから急ぎ足で降りてくるのに気付いて足を止めた。マリは険悪な表情を浮かべたが、星野は気にせず、イノウーに近付いた。
 「ここでのタスクは終わりよ」星野は周囲を気にしながら言った。「気分が悪くなったとか適当な理由をつけて、すぐに帰り支度をして出てきて」
 二人は顔を見合わせた。
 「わかりました。じゃあ、牧野さんに挨拶だけして......」
 「そんな時間はないの。5 分で戻ってきて。下で待ってる」
 「何かあったんですか?」
 「説明している時間はないの。言えるのは今夜は寝ているヒマはないかもしれないってこと。全く、クリスマスイブに働かなきゃいけないのはプログラマの宿命なのかしらね。さ、急いで」

(続く)

 この物語はフィクションです。実在する団体名、個人とは一切関係なく、たとえ実在の人物に似ているとしても偶然です。また登場する技術や製品が、現実に存在していないこともありますので、真剣に探したりしないようにしてください。

Comment(3)

コメント

ゆんろん

>PC には端末番号が貼りつかられている。

貼り付けられている、でしょうかね。

h1r0

ほんと星野さんガッツリ関わっていて面白い
かわいそうにwww

プロポーズ大作戦なら決めるのは明日だよな!
頑張れよイノウー!

リーベルG

ゆんろんさん、ご指摘ありがとうございます。

コメントを投稿する