Является ли 23,148,855,308,184,500 магическим числом или явным шансом?

Новостные сообщения, такие как этот, указывают на то, что указанное число могло появиться как программная ошибка.

Один человек в Соединенных Штатах выскочил на свою местную заправочную станцию, чтобы купить пачку сигарет, и обнаружил, что с его карточки взимается 23 148 855 308 184 500 долларов.

Это 23 миллиарда долларов (14 миллиардов фунтов) - во много раз больше государственного долга США.*

В гексе это $523DC2E199EBB4, что на первый взгляд кажется не очень интересным.

Кто-нибудь есть какие-либо мысли о том, что ошибка программирования может вызвать это?

7 ответов

Решение

Добавьте центы к числу, и вы получите 2314885530818450000, что в шестнадцатеричном формате 2020 2020 2020 1250.

Вы видите образец? Первые шесть байтов были перезаписаны пробелами (шестнадцатеричное 20, 32 декабря).

Держать на секунду; происходит что-то подозрительное

Хотя объяснение с пробелами, безусловно, кажется хорошим, оно может быть (хотя бы частично) показным.

VISA сообщила, что snafu "предоплаченные карты Visa Buxx" затронули "менее 13 000" клиентов. Я нашел новости о нескольких до сих пор. Джош Мушински в Нью-Гемпшире, Джейсон Брайан в Теннесси, Рон Сил в Техасе, сын-подросток Карен Тейлор в Вефиле и девочка-подросток Элизабет Льюис в Оватонне.

Дело в том, что все они имеют одинаковую плату: 23 148855 308 184 500,00 долларов. Если проблема заключалась в пробелах, то как получилось, что все они имели одинаковый заряд в размере 0x1250 долларов (46,88 доллара США)? Двое из них купили сигареты на заправках, еще двое заплатили в ресторанах, Льюис купил яйца и молоко, последний в аптеке. Все эти разные вещи стоят одинаково? 46,88 долларов за счет в ресторане кажется нормальным, но за пачку сигарет? для молока и яиц‽

Ошибка заполнения пробелом имеет смысл, за исключением того, что она не учитывает константу 0x1250. Почему все они в конечном итоге 0x2020 2020 2020 1250 вместо 0x2020 2020 2020 2020 или разные цифры в последнем СЛОВЕ?

Хм, если бы затронуло только 13 000 клиентов, возможно, именно эта точная, специфическая плата вызвала ошибку. В этом случае это больше, чем просто ошибка поля. Если это было просто текстовое поле, интерпретируемое как 64-разрядное целое число, то почему другие суммы не вызвали его, влияя таким образом на всех, а не только на <13 000? Тем не менее, как могло случиться, что 13 000 человек могли взять такую ​​же сумму за ту же неделю?

Они говорят, что это "временная ошибка программирования", и вполне может быть, но может ли это быть взломом? В этом случае, вероятно, это будет магическое число. Фактически, это может быть комбинация обоих: некоторые хакеры помещают автоматический заряд 0x1250, который был объединен с ошибкой пробела, вызывая обнаружение одной или обеих ошибок.

Регистр считает, что ответ действительно является ошибкой в ​​виде дополненного поля, но не раскрывает, почему они все одинаковы, хотя в одном из комментариев упоминается, что число может быть округлено до ближайших 100 долларов (маловероятно, поскольку банки и банковское программное обеспечение явно идут длины, чтобы обеспечить точность).

(Есть также сообщение о подобной, более ранней ошибке.)


Счет Джейсона Брайанта:

Счет Джейсона Брайанта

Счет Элизабет Льюис:

Счет Элизабет Льюис

Счет Рона Сила:

Счет Рона Сила

Законопроект Джоша Мушинского:

Законопроект Джоша Мушинского

Когда вы совершаете покупку с помощью карты, происходит следующее: программное обеспечение немедленно подключается к Интернету, чтобы убедиться, что у вас достаточно средств для покупки, но удерживает только средства для транзакции. В конце рабочего дня программное обеспечение собирает все транзакции, размещенные за последние 24 часа, и передает их в банк-эквайер для обработки.

Представление в банк называется расчетным, и это делается путем отправки простого текстового файла в очень жестком формате. (Все это было разработано несколько десятилетий назад, и количество систем, использующих его в настоящее время, затрудняет модернизацию)

Каждая транзакция появляется в файле в виде строки текста, и часть этого является значением транзакции. Это поле должно состоять из 11 числовых символов (заполненных нулями с левой стороны) и всегда будет содержать значение в наименьшем общем знаменателе (в данном случае в центах). 11 числовых символов хорошо подходят для значений в любой валюте.

Похоже, что обработчик платежей в этом случае внес некоторые изменения в свое программное обеспечение представления и ошибочно заменил заполнение нулями пробелом. Как это получается у а) провайдера услуг, б) банка-эквайера и в) без визы меня ускользает. Чистая стоимость этого расчетного файла (13 000 транзакций с высокой стоимостью) была бы астрономической, и, возможно, это также способствовало чему-то.

Если вы удалите конечный ноль, это будет считаться номером карты VISA. Я предполагаю, что они сильно ударили карту, а затем вручную набрали номер, думая, что смахивание не удалось.

Главная загадка - все еще, откуда исходит 12 50. Это коды ASCII для Ctrl+R, P. Это секретные нажатия клавиш, которые вы должны ввести, чтобы ввести код подтверждения для QuickBooks.

Ссылка: где ввести код проверки

Совпадение Интересно, что происходит, когда вы вводите эти ключи не в том месте...

Если вы сдвинете влево 64-битное представление на 8 бит влево (умножьте на 256), вы получите правильно сформированный номер кредитной карты и 3 пустые позиции для этого 3 безопасных дополнительных номера (все нули по какой-то причине). Существует только 1 из 10 шансов, что случайное число дает правильно сформированный номер CC.

5926 1069 5889 5232 000

Если вы используете бинарный декодер (1110101110110100) с номером 23148855308184500, вы получите K鑛, символ мандарина для добычи полезных ископаемых и руды. Kmine может означать "знание мое" или что-то вроде kmine Holdings Ltd. Возможно, существует связь между K(рудник или руда) и Банком Америки или Visa?

Другие вопросы по тегам