"죽은 쇠고기"는 무엇을 의미합니까?


91

"죽은 쇠고기"라는 단어는 무엇을 의미합니까? 인터뷰 질문에서 읽었습니다. ipv6과 관련이 있습니다. 예를 들어 "The quick brown fox jumps over the lazy dog"와 같이 임의의 16 진수 일 수 있다고 생각했습니다.

내 이해가 맞습니까? 아니면 더 중요한 의미가 있습니까?


59
나에게 그것은 점심 시간을 의미합니다!
FrustratedWithFormsDesigner

5
"DEADBEEF"는 인터넷 이전에도 수십 년 동안 거슬러 올라갑니다. (IBM에서 70 년대 후반에 사용하고 있었던 것 같습니다.) 16 진 덤프에서 쉽게 볼 수있는 방식으로, 할당 해제되거나 액세스 할 수없는 스토리지를 표시하는 방법 일뿐입니다.
Hot Licks 2014-07-11

답변:


106

http://en.wikipedia.org/wiki/Hexspeak
http://www.urbandictionary.com/define.php?term=dead%3Abeef

"Dead beef"는 16 진수 표기법으로 사용되는 af 문자로만 만들어 졌기 때문에 프로그래밍에서 매우 인기있는 문장입니다. 문장의 시작과 중간에있는 콜론은이 문장을 (이론적으로) 유효한 IPv6 주소로 만듭니다.


45
링크 된 사이트가 더 이상 존재하지 않더라도 답변이 여전히 존재하는지 확인합니다. 위키 백과는 항상 변화하고 있으며 여러 가지 이유로 일부 국가에서 차단되었습니다 ([어린이] 포르노 / "잘못된"진실). 따라서 답변을 독립적으로 만들고 자세한 답변 / 인용을위한 링크 만 사용하는 것이 가장 좋습니다. 내 2 센트.
josefx

45

AF 문자 만 사용하여 구성된 표현으로 인식 가능한 16 진수가 필요할 때 자주 사용됩니다. 일부 시스템은 해제되어 다시 참조해서는 안되는 메모리를 표시하는 등 다양한 용도로 사용합니다. 디버거에서이 값이 표시되면 오류가 발생했다는 신호일 수 있습니다. 에서 위키 백과 :

0xDEADBEEF ( "죽은 쇠고기")는 IBM RS / 6000 시스템, 32 비트 PowerPC 프로세서의 Mac OS 및 Commodore Amiga에서 매직 디버그 값으로 사용됩니다. Sun Microsystems의 Solaris에서는 해제 된 커널 메모리를 표시합니다. Alpha 프로세서에서 실행되는 OpenVMS에서는 CTRL-T를 눌러 DEAD_BEEF를 볼 수 있습니다.

숫자 0xDEADBEEF는 인식하기 어려운 10 진수 3735928559 (부호 없음) 또는 -559038737 (부호 있음)과 같습니다.


20
그러나 거꾸로 된 55378008은 어떻습니까? (서명되지 않음)
mVChr

또는 IPv4 주소 222.173.190.239!
Alyssa Haroldsen

41

0xDEADBEEF의 값은 대부분 구형 시스템에서 세 가지 실질적인 이점이 있습니다. 저처럼 오래된 어셈블러 / C 해킹은 메모리 문제를 해결하기 위해 할당되지 않은 메모리를 채우는 데 사용합니다. 또한 "죽은 고기"라는 속어의 말장난입니다. 프로그래머는 DEADBEEF가 그의 포인터에 들어가면 죽은 고기입니다. DEADBEEF라는 가치를 처음으로 생각한 사람을 축하합니다. 여러면에서 영리합니다.

실제적인 이유로, 첫째, 무작위 16 진수 값과 반대로 단어를 실제로 철자하기 때문에 16 진수 메모리 덤프에서 더 눈에 띕니다.

둘째, 값이 포인터에 표시되면 메모리 범위를 벗어난 오류가 발생할 가능성이 더 큽니다. DEADBEEF의 주소는 시스템의 엔디안에 관계없이 시스템의 주소 범위를 벗어났습니다 (지금은 지난 세기 시스템에 대해 이야기하고 있습니다).

셋째, 16/32/64 비트 데이터에 액세스하기 위해 경계 포인터 값이 필요한 시스템에서 오류를 유발할 가능성이 더 높습니다. 16 비트 값 (DEAD, BEEF)이 모두 홀수이기 때문에 값이 잘못 될 가능성이 더 큽니다.


1
이것은 내가 언젠가 읽은 가장 흥미로운 SO 답변 중 하나입니다. @BSalita 감사합니다!
Steve Jansen

19

IPv6 주소는 16 진수 표기법으로 작성되므로 주소에 "Hexspeak"(숫자 0-9 및 문자 af)를 사용할 수 있습니다.

더 나은 모모 화를 위해 유효한 주소로 사용할 수있는 여러 단어가 있습니다.

당신이 경우 ping6 www.facebook.com -n당신은 같은 것을 얻을 것이다 "2a03을 : 2880 : f01c을 : 601 : 얼굴 : b00c : 0 : 1".

여기 예시들이 있습니다 :

  • : affe :: (Affe-원숭이를위한 독일어-관리위원회를 위해 VLAN에서 본)
  • : 1bad : babe :: (하나의 나쁜 아기-smtp-honeypot에서 본)
  • : badc : ab1e :: (잘못된 케이블-안전하지 않은 VLAN의 서브넷으로 표시됨)
  • : da7a :: (데이터-파일 서버에 표시됨)
  • : d1a1 :: (Dial-VPN Dial-In에 표시됨)


3

사람들은 일반적으로 더미 값을 표시하는 데 사용합니다. 나는 주로 NULL 포인터의 아이디어 이전에 사용되었다고 생각합니다.


5
DEADBEEF는 일반적으로 해제 된 메모리를 표시하는 데 사용되었으므로 매달린 포인터 IIRC가있을 때 분명합니다.
Chuck

2

영어로도 읽을 수있어 눈에 띄기 때문에 여러 곳에서 사용되는 매직 넘버입니다. Wikipedia에 일부 목록이 있습니다 .


2

일련의 16 진 바이트 (0xde, 0xad, 0xbe, 0xef)로 메모리에 저장하는 패턴으로 사용되었습니다. 하드웨어 오류, 버퍼 오버런 등으로 인해 메모리가 손상되었는지 확인할 수 있습니다.


-1

0xDEADBEEF는 일반적으로 메모리 배열에 채워 지므로 잘못 가리킬 때 예외가 발생하거나 버퍼 오버 실행 등을 알 수 있습니다.


이 견해는 모든 사람들이 그 자체로 문제가없고 옳을 수 있다고 기대하게 될 것이라는 견해와는 거리가 멀지 만 증거가 없으면 믿을 수 없습니다.
shalomb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.