556

このようなニュースレポートは、上記の数がプログラミングのバグとして発生した可能性があることを示しています。

米国の男性が地元のガソリンスタンドに飛び出してタバコのパックを購入しましたが、彼のカードには23,148,855,308,184,500ドルが請求されていました。

これは23兆ドル(14兆ポンド)であり、米国の国家債務の何倍にもなります。*

16進数では、$ 523DC2E199EBB4ですが、一見するとそれほど面白くはありません。

どのプログラミングエラーがこれを引き起こしたのかについて誰かが考えていますか?

4

7 に答える 7

1447

数値にセントを追加すると、2314885530818450000 が得られます。これは、16 進数で 2020 2020 2020 1250 です。

パターンが見えますか?最初の 6 バイトはスペース (16 進数 20、10 進数 32) で上書きされています。

于 2009-07-15T19:56:37.203 に答える
239

ちょっと待って; 何か怪しいことが起こっています。

スペースが埋め込まれた説明は確かに良さそうに見えますが、(少なくとも部分的に) 怪しいかもしれません。

VISA は、Visa Buxx プリペイド カードのスナフの影響を受けた顧客は「13,000 人未満」であると述べました。これまでにいくつかのニュースを見つけました。ニューハンプシャーのジョシュ・ムジンスキー、テネシーのジェイソン・ブライアン、テキサスのロン・シール、ベテルのカレン・テイラーの10代の息子、オワトナの10代の少女エリザベス・ルイス。

問題は、それらすべての料金がまったく同じであるということです: $23,148,855,308,184,500.00. 問題がスペースのパディングである場合、それらすべてがまったく同じ $0x1250 ($46.88) の料金を請求されたのはなぜですか? そのうちの 2 人はガソリン スタンドでタバコを購入し、別の 2 人はレストランで支払い、ルイスは卵と牛乳を購入し、最後の 1 つはドラッグ ストアで購入しました。これらのさまざまなアイテムはすべて同じ価格ですか? レストランの請求書は 46.88 ドルで十分に思えますが、たばこの 1 パックはどうでしょうか。牛乳と卵用‽</p>

0x1250 定数を考慮していないことを除けば、スペース パディング エラーは理にかなっています。0x2020 2020 2020 1250最後の WORD の代わりに、0x2020 2020 2020 2020または異なる数字になったのはなぜですか?

うーん、影響を受けた顧客が 13,000 人だけだった場合、正確な特定の料金が何らかの形でエラーを引き起こした可能性があります。その場合、それは単なるフィールド エラーではありません。テキスト フィールドが 64 ビット整数として解釈されただけの場合、なぜ他の量が原因ではないので、<13,000 だけでなく、すべての人に影響を与えます。それでも、13,000人がたまたま同じ週にまったく同じ金額を請求できたのはなぜでしょうか?

彼らはそれが「一時的なプログラミング エラー」だと言っています。その場合、それはおそらくマジックナンバーでしょう。実際、それは両方の組み合わせである可能性があります: 一部のハッカーが 0x1250 の自動課金を設定し、それがスペース パディング エラーと組み合わされて、一方または両方のエラーが検出された可能性があります。

レジスターは、答えは確かにパディング フィールド エラーであると考えていますが、なぜそれらがすべて同じであるかについては詳しく述べていません。精度を確保するために長さにします)。

(同様の以前のエラーのレポートもあります。)


ジェイソン・ブライアントの法案:

ジェイソン・ブライアントの法案

エリザベス・ルイスの法案:

エリザベス・ルイスの法案

ロン・シールの法案:

ロン・シールの法案

Josh Muszynski の法案:

Josh Muszynski の法案

于 2009-07-16T17:52:53.147 に答える
62

カードで購入すると、ソフトウェアはすぐにオンラインになり、購入に十分な資金があることを確認しますが、取引の資金は保留になります。営業日の終わりに、ソフトウェアは過去24時間に行われたすべてのトランザクションを収集し、処理のために取得銀行に送信します。

銀行への提出は決済と呼ばれ、非常に厳格な形式でプレーンテキストファイルを送信することによって行われます。(これはすべて数十年前に開発されたものであり、現在それを使用しているシステムの数により、最新化が困難になっています)

各トランザクションはテキスト行としてファイルに表示され、その一部がトランザクション値です。このフィールドは11個の数字(左側にゼロが埋め込まれている)である必要があり、常に最小公分母(この場合はセント)の値を保持します。11個の数字は、どの通貨の値にも対応します。

この場合の支払い処理業者は、提出ソフトウェアにいくつかの変更を加え、誤ってゼロパディングをスペースパディングに置き換えたようです。これがa)サービスプロバイダー、b)取得銀行、c)取得されないビザによってどのように得られたかは私を逃れます。その決済ファイルの正味額(13,000件の高額取引)は天文学的なものであり、おそらくそれもどこかでの要因でした。

于 2009-07-16T14:08:49.760 に答える
20

末尾のゼロを削除すると、VISA カード番号として検証されます。私の推測では、彼らはカードをスワイプしてから手動で番号を入力し、スワイプが失敗したと考えました。

于 2009-07-16T03:11:44.113 に答える
10

究極の謎は、12 50 がどこから来ているのかです。これらは Ctrl+R、P の ASCII コードです。これは、QuickBooks の検証コードを入力するために入力する必要がある秘密のキーストロークです。

リンク:検証コードを入力する場所

かなりの偶然です。これらのキーを間違った場所に入力するとどうなるのだろうか...

于 2010-04-15T02:13:12.033 に答える
7

64 ビット表現を 8 ビット左にシフトすると (256 を乗算)、適切な形式のクレジット カード番号と、この 3 つの安全な追加番号 (何らかの理由ですべてゼロ) に対して 3 つの空の位置が得られます。乱数が適切な形式の CC 番号を与える可能性は 10 分の 1 だけです。

5926 1069 5889 5232 000

于 2010-04-15T02:42:36.587 に答える
6

数値 23148855308184500 の 2 進数等価 (1110101110110100) デコードを使用すると、鉱業および鉱石を表す北京語の文字である K鑛 が得られます。Kmine は「知識の鉱山」、または kmine Holdings Ltd のようなものを意味する可能性があります。おそらく、K (鉱山または鉱石) と Bank of America または Visa の間に相関関係があるのでしょうか?

于 2009-07-16T03:17:43.090 に答える