Development Tip

23,148,855,308,184,500은 마법의 숫자입니까, 아니면 순전히 기회입니까?

yourdevel 2020. 10. 3. 12:05
반응형

23,148,855,308,184,500은 마법의 숫자입니까, 아니면 순전히 기회입니까?


같은 뉴스는보고 이 하나가 위의 번호가 프로그래밍 버그로 제기했을 수 있음을 나타냅니다.

미국의 한 남자가 담배 한 갑을 사기 위해 지역 주유소로 튀어 나와 카드에 23,148,855,308,184,500 달러가 청구 된 것을 알았습니다.

이는 미국 국채의 몇 배인 23 조 달러 (14 조 파운드)입니다. *

16 진수에서는 $ 523DC2E199EBB4로 첫눈에별로 흥미롭지 않습니다.

누구든지 어떤 프로그래밍 오류가 이것을 일으켰는지에 대한 생각이 있습니까?


숫자에 센트를 더하면 2314885530818450000이됩니다. 16 진수는 2020 2020 2020 1250입니다.

패턴이 보이십니까? 처음 6 바이트는 공백으로 덮어 썼습니다 (16 진수 20, 12 월 32).


잠깐만 기다려요; 뭔가 수상한 일이 벌어지고 있습니다.

공백으로 채워진 설명은 확실히 좋게 보이지만 (적어도 부분적으로) 그럴듯 할 수 있습니다.

VISA는 Visa Buxx 선불 카드를 사용하는 스나 푸의 영향을받는 고객이 "13,000 명 미만"이라고 밝혔다. 지금까지 몇 가지 뉴스를 찾았습니다. 뉴햄프셔의 Josh Muszynski, 테네시의 Jason Bryan, 텍사스의 Ron Seale, Bethel의 Karen Taylor의 십대 아들, Owatonna의 십대 소녀 Elizabeth Lewis.

문제는 모두 $ 23,148,855,308,184,500.00의 동일한 요금을 가지고 있다는 것입니다 . 문제가 스페이스 패딩이라면, 모두 똑같은 $ 0x1250 ($ 46.88) 요금이 어떻게 부과 되었습니까? 그들 중 두 명은 주유소에서 담배를 샀고, 또 다른 두 명은 식당에서 돈을 냈고, 루이스는 계란과 우유를 샀고, 마지막은 약국에서 샀습니다. 이 모든 다양한 품목의 비용이 동일합니까? 레스토랑 계산서에 46.88 달러는 괜찮아 보이지만 담배 한 갑은? 우유와 계란 용‽

공백 채우기 오류는 0x1250 상수를 고려하지 않는다는 점을 제외하면 의미가 있습니다. 왜 그들 모두가 마지막 WORD에서 0x2020 2020 2020 1250대신 0x2020 2020 2020 2020또는 다른 숫자로 끝났 습니까?

흠, 13,000 명의 고객 만 영향을 받았다면 어떻게 든 정확하고 구체적인 청구로 인해 오류가 발생했을 수 있습니다. 이 경우 단순한 필드 오류 이상입니다. 64 비트 정수로 해석되는 텍스트 필드뿐이라면 다른 양이 원인이되지 않아 13,000 미만이 아닌 모든 사람에게 영향을 미칩니다. 그런데 어떻게 13,000 명이 같은 주에 똑같은 금액을 청구 할 수 있었을까요?

그들은 그것이 "일시적인 프로그래밍 오류"라고 말하며, 그럴 수도 있지만 해킹 일 수 있습니까? 이 경우 아마도 매직 넘버가 될 것입니다. 사실, 이것은 둘 다의 조합 일 수 있습니다. 일부 해커가 0x1250 자동 청구를하고 공간 패딩 오류와 결합되어 하나 또는 두 오류가 모두 감지됩니다.

등록은 의견 중 하나가 숫자가 가능성이 명시 적으로가는 가장 가까운 은행 및 금융 소프트웨어 이후 가능성이 $ 100 (반올림되고 언급하지만 대답은, 실제로 패딩 필드 오류입니다,하지만 그들은 모두 같은 이유에 확장하지 않는 것을 생각 정밀도를 보장하기위한 길이).

( 비슷한 이전 오류에 대한 보고서 도 있습니다 .)


Jason Bryant의 청구서 :

Jason Bryant의 청구서

Elizabeth Lewis의 청구서 :

엘리자베스 루이스의 청구서

Ron Seale의 청구서 :

Ron Seale의 청구서

Josh Muszynski의 청구서 :

Josh Muszynski의 청구서


카드로 구매하면 소프트웨어가 즉시 온라인으로 전환되어 구매에 필요한 충분한 자금이 있는지 확인하지만 거래 자금 만 보류하게됩니다. 근무일이 끝나면 소프트웨어는 지난 24 시간 동안 발생한 모든 거래를 수집하고 처리를 위해 인수 은행에 제출합니다.

은행에 제출하는 것을 결제라고하며 매우 엄격한 형식으로 일반 텍스트 파일을 전송하여 수행됩니다. (이것은 모두 수십 년 전에 개발되었으며 현재 사용하는 시스템 수가 많아 현대화하기 어렵습니다)

각 트랜잭션은 파일에 텍스트 줄로 나타나며 그 일부가 트랜잭션 값입니다. 이 필드는 11 자리 숫자 (왼쪽에 0이 채워짐) 여야하며 항상 가장 낮은 공통 분모 (이 경우 센트)로 값을 유지합니다. 11 자리 숫자는 모든 통화의 가치에 적합합니다.

이 경우 결제 처리자가 제출 소프트웨어를 일부 변경하고 제로 패딩을 공백 패딩으로 잘못 대체 한 것 같습니다. a) 서비스 제공 업체, b) 은행 인수 및 c) 수령하지 않고 비자를 얻은 방법은 나를 피할 수 있습니다. 그 정산 파일 (13,000 개의 고가 거래)의 순 가치는 천문학적이었을 것이며 아마도 어딘가에 기여한 요인이었을 것입니다.


후행 0을 제거하면 VISA 카드 번호로 확인됩니다. 내 추측으로는 카드를 스 와이프 한 다음 스 와이프가 실패했다고 생각하여 수동으로 번호를 입력했습니다.


궁극의 미스터리는 여전히 12 50이 나오는 곳입니다. Ctrl + R, P의 ASCII 코드입니다. QuickBooks에 대한 유효성 검사 코드를 입력하기 위해 입력해야하는 비밀 키 입력입니다.

링크 : 인증 코드 입력 위치

Quite a coincidence. I wonder what happens when you type these keys in the wrong place...


If you shift left 64-bit representation 8 bits left (multiply by 256) You will get a well formed credit card number and 3 empty positions for thise 3 secure extra numbers (all zeroes for some reason). There is only 1 out of 10 chance that random number gives a well formed CC number.

5926 1069 5889 5232 000


If you use the binary equivelant (1110101110110100) decode of the number 23148855308184500, you get K鑛, which is the Mandarin character for mining and ore. Kmine could mean "knowledge mine," or something like kmine Holdings Ltd. Perhaps there's a correlation between K(mine or ore) and Bank of America or Visa?

참고URL : https://stackoverflow.com/questions/1133581/is-23-148-855-308-184-500-a-magic-number-or-sheer-chance

반응형