MGSVでサーバー内の核兵器が2,147,483,647発を超え核廃絶EDが解放される 36
ストーリー by hylom
地球終了EDも用意しておけば良かったのに 部門より
地球終了EDも用意しておけば良かったのに 部門より
あるAnonymous Coward曰く、
コナミのゲーム『メタルギアソリッドVファントムペイン (MGSV)』において、存在自体は知られていたものの達成は困難とみられていた核廃絶エンディング(核廃絶ED)と呼ばれるイベントが2月2日、PC版において突如として解放されるという珍事が発生したようである(AUTOMATON、GameSpark、FPS News)。
本作における核兵器は、オンライン要素の「FOBミッション」において他のプレイヤーからの報復を抑制する効果があるアイテムなのだが、核廃絶EDは「サーバー上の全プレイヤーが核兵器を廃棄する」という、全プレイヤーの協調が必要な非常に難しいEDとして条件が開示されていた。PC版の核兵器数も2018年1月時点で7533発であり、本来であればEDが解放されることはないはずなのだが、2月2日になり「総核兵器数: 2147483647」の文字とともに全ての核兵器が廃棄されたというEDが流れてしまった(ED動画)。
プログラマーならすぐ気付くであろう意味深な数値は、どうみても桁あふれが原因である事を示唆しているが、ユーザーの協調を信じて入れられた仕組みがユーザーのクラッキングにより突破されてしまったのだとしたら、何とも皮肉な結果である。
メタルギア公式Twitterアカウントは今回の問題の原因として「サーバー側が不正な値を受信したことにより、全ユーザーの核保有数が0であると認識し、発生した」と発表している(AUTOMATONの続報)。
この数値の意味とは (スコア:3, おもしろおかしい)
追試なしは皆無視な=テストをしていない?そんなことは気にするな。ということ?
人類は10通りに分類できる (スコア:1)
人類は10通りに分類できます
この数値の意味が解る人と
そうでない人です
Re: (スコア:0)
日本語株の声帯虫がいるために声に出すことはできない
Re: (スコア:0)
核兵器を2147483648発用意するというディストピアを想像できなかった。
Re: (スコア:0)
それだけ用意されたら手に負えない=廃棄
ってみなされたのかもねー(鼻ほじ
Re: (スコア:0)
マジレスですが、チートでもなければそんな数値にはできない(テストの話で言えば、他のテストで先にひっかかるから単純な数上限のテストは不要と思われた…というか上限無限にしないとパスできねーじゃん)、という話かと。
というかこの枝、7FFFFFFFを超えたから0未満と判定された(のではないか)、という流れを分かってのコメントなのか不安になるな・・・。
Re:この数値の意味とは (スコア:1)
むしろあなたが、「追試なしは皆無視な」が「2147483647」の語呂合わせだって分かっていますか?
Civの有名なバグ (スコア:3, 興味深い)
核ガンジーもオーバーフローと核のバグでしたね
表示は溢れないんだ? (スコア:1)
表示が「2147483648発」や「-21474836478発」だとわかりやすいが、
「2147483647発」だったんだ?
Re:表示は溢れないんだ? (スコア:2)
0から数えて2147483648でカウントが止まったのでしょうねぇ。
まぁ、止まるだけまだよろしくて、むかしは、999の次は0だったことを
ぼんやりと懐かしく思い出しました。
ええ、ゲームウォッチ世代ですがなにか?
Re: (スコア:0)
昔は255の次が0だったんですよw
Re: (スコア:0)
0に戻った後は点数を点滅させて区別していましたね(懐古)
Re: (スコア:0)
累計の総核兵器数だと現時点での保持数とは違うから判定に関わらないし、
現時点での総計なら0とでなきゃおかしい。
# 現時点なら固定で書いておけばいいから多分累計よね。
表に出てきたのがこれってだけでいくつかの値が0x7ffffffで
上書きされてたんじゃないかなぁ?
Re:表示は溢れないんだ? (スコア:1)
ああそういうことか、理解できた。
ユーザーの協調の賜物 (スコア:0)
クラックを試みるユーザーを通報しなかったおかげで達成できたんじゃないですか?
正恩歓喜 (スコア:0)
皆で核兵器を大量保有したら平和が訪れた
って北朝鮮が喜びそうな話ですね。
Re: (スコア:0)
20億ぐらいなら一家に一台核兵器という感じになるけど
通り魔が現れるのと同じぐらいの確率で核テロ起こりそう
あと家族の揉め事で家が核爆発
Re:正恩歓喜 (スコア:2)
「アフリカの爆弾」という小説がありまして。
#ライオンさんはライオンズクラブの会費が未納です。
Re:正恩歓喜 (スコア:1)
まあ、核家族が増えているご時世ですからね。
Re:正恩歓喜 (スコア:1)
おざなりダンジョンだったかと思うけど、
巻末にそんな感じの短編が掲載されてたような気がする。
Re: (スコア:0)
>あと家族の揉め事で家が核爆発
そんな夫婦喧嘩はイヤだ!(木亥火暴
そういや (スコア:2)
興味が無ければ、まぁ見ないでしょうけれども :-)
やれやれ (スコア:0)
これだから32bitは困る┐(´-`)┌
Re: (スコア:0)
64ビットだと9,223,372,036,854,775,807発ですし、
128ビットだと170,141,183,460,469,231,731,687,303,715,884,105,727発になるだけですが・・・・・
ちなみに256ビットだと57,896,044,618,658,097,711,785,492,504,343,953,926,634,992,332,820,282,019,728,792,003,956,564,819,967発・・・
# どう読むのかは知りません
Re:やれやれ (スコア:1)
128bitは
170澗 1411溝 8346穣 0469𥝱 2317垓 3168京 7303兆 7158億 8410万 5727
256bitは無量大数超えちゃうので……
Re: (スコア:0)
fifty-seven quattuorvigintillion eight hundred and ninty-six trevigintillion fourty-four duovigintillion six hundred and eighteen unvigintillion six hundred and fifty-eight vigintillion ninety-seven novemdecillion seven hundred and eleven octodecillion seven hundred and eighty-five septendecillion four hundred and ninety-two sexdecillion five hundred and four quindecillion three hundred and fourty-three quattuordecillion nine hundred and fifty-three tredecillion nine hundred and twent
signed, unsigned (スコア:0)
unsigned にしておけばよかったのに。
Re:signed, unsigned (スコア:2)
どういう不正な通信をしたか知らないけど、数千から一気に2147483647+1まで増えたんだからunsignedでもあっという間に到達したんじゃないかな。
Re: (スコア:0)
クラックして0発にしなかったってあたりが、わたし、気になります。
1. サーバとやりとりされるデータはunsignedとして設計されていた
2. signedだけど受信時に0以上かどうかのチェックが入ってた
3. 攻撃者が減らすより増やす方がおもしろそう、と考えただけ
2だと、「クラックされる可能性を考慮して、受け取った値をチェックしておこう」と考えてたって事だから、
そこまで考えつつオーバーフローの可能性は失念してたという所に疑問が残るけど。
Re: (スコア:0)
1ユーザの所持数は最低値0だったから、とか
自分の所持数を増やす方は簡単でもほかのユーザの所持数を減らすのは難しい
Re: (スコア:0)
その、最低値0という仕様をどう実装してたのかな、と。何もしてなければクラックで-7533とかにもできうる
Re: (スコア:0)
現実で核廃絶が進まない事に対する皮肉のためにむちゃくちゃ増やしてたらまさかのオーバフロー、っていうオチとか
Re: (スコア:0)
核兵器総数狙いじゃなくて、自分のパラメータなんかをマックスにしようとして
穴をついて0x7fffffffをばらまいたらたまたま上書きしたところが核の総数を
保持してる領域だったんじゃないのかな。
# すぐバレるからなにか不具合起こさせるために境界値突っ込みまくったのかもね。
# 調べてみたら核兵器って侵入して盗んで廃棄出来るみたいだから協調しなくても出来るみたいね。
そして誰もいなくなった (スコア:0)
バグとは関係ないけど、元々はみんないなくなれば条件を満たすとかそういう皮肉で作られたものなんだろうか?
EDと聞いて (スコア:0)
心に響くのは、尿漏れが深刻な脅威になっているような中高年だけじゃないの?