パスワードを忘れた? アカウント作成
13526636 story
ゲーム

MGSVでサーバー内の核兵器が2,147,483,647発を超え核廃絶EDが解放される 36

ストーリー by hylom
地球終了EDも用意しておけば良かったのに 部門より
あるAnonymous Coward曰く、

コナミのゲーム『メタルギアソリッドVファントムペイン (MGSV)』において、存在自体は知られていたものの達成は困難とみられていた核廃絶エンディング(核廃絶ED)と呼ばれるイベントが2月2日、PC版において突如として解放されるという珍事が発生したようである(AUTOMATONGameSparkFPS News)。

本作における核兵器は、オンライン要素の「FOBミッション」において他のプレイヤーからの報復を抑制する効果があるアイテムなのだが、核廃絶EDは「サーバー上の全プレイヤーが核兵器を廃棄する」という、全プレイヤーの協調が必要な非常に難しいEDとして条件が開示されていた。PC版の核兵器数も2018年1月時点で7533発であり、本来であればEDが解放されることはないはずなのだが、2月2日になり「総核兵器数: 2147483647」の文字とともに全ての核兵器が廃棄されたというEDが流れてしまった(ED動画)。

プログラマーならすぐ気付くであろう意味深な数値は、どうみても桁あふれが原因である事を示唆しているが、ユーザーの協調を信じて入れられた仕組みがユーザーのクラッキングにより突破されてしまったのだとしたら、何とも皮肉な結果である。

メタルギア公式Twitterアカウントは今回の問題の原因として「サーバー側が不正な値を受信したことにより、全ユーザーの核保有数が0であると認識し、発生した」と発表している(AUTOMATONの続報)。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • この数値の意味とは (スコア:3, おもしろおかしい)

    by Anonymous Coward on 2018年02月15日 6時30分 (#3361638)

    追試なしは皆無視な=テストをしていない?そんなことは気にするな。ということ?

    • 人類は10通りに分類できます

      この数値の意味が解る人と
      そうでない人です

      親コメント
      • by Anonymous Coward

        日本語株の声帯虫がいるために声に出すことはできない

    • by Anonymous Coward

      核兵器を2147483648発用意するというディストピアを想像できなかった。

      • by Anonymous Coward

        それだけ用意されたら手に負えない=廃棄
        ってみなされたのかもねー(鼻ほじ

        • by Anonymous Coward

          マジレスですが、チートでもなければそんな数値にはできない(テストの話で言えば、他のテストで先にひっかかるから単純な数上限のテストは不要と思われた…というか上限無限にしないとパスできねーじゃん)、という話かと。

          というかこの枝、7FFFFFFFを超えたから0未満と判定された(のではないか)、という流れを分かってのコメントなのか不安になるな・・・。

  • by Anonymous Coward on 2018年02月15日 9時20分 (#3361703)

    核ガンジーもオーバーフローと核のバグでしたね

  • 表示が「2147483648発」や「-21474836478発」だとわかりやすいが、
    「2147483647発」だったんだ?

    • 0から数えて2147483648でカウントが止まったのでしょうねぇ。
      まぁ、止まるだけまだよろしくて、むかしは、999の次は0だったことを
      ぼんやりと懐かしく思い出しました。

      ええ、ゲームウォッチ世代ですがなにか?

      親コメント
      • by Anonymous Coward

        昔は255の次が0だったんですよw

      • by Anonymous Coward

        0に戻った後は点数を点滅させて区別していましたね(懐古)

    • by Anonymous Coward

      累計の総核兵器数だと現時点での保持数とは違うから判定に関わらないし、
      現時点での総計なら0とでなきゃおかしい。
      # 現時点なら固定で書いておけばいいから多分累計よね。

      表に出てきたのがこれってだけでいくつかの値が0x7ffffffで
      上書きされてたんじゃないかなぁ?

  • by Anonymous Coward on 2018年02月15日 6時33分 (#3361639)

    クラックを試みるユーザーを通報しなかったおかげで達成できたんじゃないですか?

  • by Anonymous Coward on 2018年02月15日 7時20分 (#3361645)

    皆で核兵器を大量保有したら平和が訪れた
    って北朝鮮が喜びそうな話ですね。

  • by Anonymous Coward on 2018年02月15日 7時25分 (#3361646)

    これだから32bitは困る┐(´-`)┌

    • by Anonymous Coward

      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発・・・

      # どう読むのかは知りません

      • by Anonymous Coward on 2018年02月15日 11時38分 (#3361771)

        128bitは
        170澗 1411溝 8346穣 0469𥝱 2317垓 3168京 7303兆 7158億 8410万 5727

        256bitは無量大数超えちゃうので……

        親コメント
        • by Anonymous Coward
          256 bitのを英語で読むと
          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
  • by Anonymous Coward on 2018年02月15日 8時56分 (#3361688)

    unsigned にしておけばよかったのに。

    • by Sune (7520) on 2018年02月15日 10時19分 (#3361743)

      どういう不正な通信をしたか知らないけど、数千から一気に2147483647+1まで増えたんだからunsignedでもあっという間に到達したんじゃないかな。

      親コメント
    • by Anonymous Coward

      クラックして0発にしなかったってあたりが、わたし、気になります。

      1. サーバとやりとりされるデータはunsignedとして設計されていた
      2. signedだけど受信時に0以上かどうかのチェックが入ってた
      3. 攻撃者が減らすより増やす方がおもしろそう、と考えただけ

      2だと、「クラックされる可能性を考慮して、受け取った値をチェックしておこう」と考えてたって事だから、
      そこまで考えつつオーバーフローの可能性は失念してたという所に疑問が残るけど。

      • by Anonymous Coward

        1ユーザの所持数は最低値0だったから、とか
        自分の所持数を増やす方は簡単でもほかのユーザの所持数を減らすのは難しい

        • by Anonymous Coward

          その、最低値0という仕様をどう実装してたのかな、と。何もしてなければクラックで-7533とかにもできうる

      • by Anonymous Coward

        現実で核廃絶が進まない事に対する皮肉のためにむちゃくちゃ増やしてたらまさかのオーバフロー、っていうオチとか

      • by Anonymous Coward

        核兵器総数狙いじゃなくて、自分のパラメータなんかをマックスにしようとして
        穴をついて0x7fffffffをばらまいたらたまたま上書きしたところが核の総数を
        保持してる領域だったんじゃないのかな。
        # すぐバレるからなにか不具合起こさせるために境界値突っ込みまくったのかもね。
        # 調べてみたら核兵器って侵入して盗んで廃棄出来るみたいだから協調しなくても出来るみたいね。

  • by Anonymous Coward on 2018年02月15日 20時17分 (#3362122)

    バグとは関係ないけど、元々はみんないなくなれば条件を満たすとかそういう皮肉で作られたものなんだろうか?

  • by Anonymous Coward on 2018年02月16日 4時19分 (#3362274)

    心に響くのは、尿漏れが深刻な脅威になっているような中高年だけじゃないの?

typodupeerror

長期的な見通しやビジョンはあえて持たないようにしてる -- Linus Torvalds

読み込み中...