저는 ELF 이진 해부학/구조를 공부하고 있는데 ELF의 마법을 설명하는 자료가 아주 많습니다. 나는 서명을 이해 하지만 그것이 무엇 인지 45 4c 46 = ELF
언급하는 출처는 없습니다 .7f
7f 45 4c 46
"고정 바이트"라는 소스를 찾았는데 그게 무슨 뜻인가요? 상황이 약간 다를 경우 다른 것일 수 있는 임의의 고정 바이트입니까?
답변1
ELF 파일의 첫 번째 바이트입니다.
Linux에는 특정 파일 유형을 식별하기 위한 "매직 넘버" 시스템이 있습니다. 유틸리티에 도움이 될 뿐만 아니라 file
커널에서 실행 파일을 식별하는 데에도 사용됩니다.
"마법"이라는 개념은 오랜 역사를 가지고 있지만 구체적인 가치는 제조업체(예: Sun, Dell, HP 등)나 소프트웨어 패키지 제작자 사이에 거의 상관관계가 없습니다.
인쇄 가능한 초기 문자(예: E)를 사용하는 일반 텍스트일 수 있습니다. UTF-8 멀티바이트 문자는 0x80(0200 8진수) 이상을 사용하여 표시할 수 있습니다. 많은 ASCII 제어 문자(NUL, NL, TAB)에서 문제가 발생합니다. 선택의 여지가 많지 않습니다. 따라서 초기 0x7F(DEL) 바이트는 이러한 혼란을 방지하기 위한 합리적인 선택입니다.
magic
및 에 대한 로컬 매뉴얼 페이지를 볼 수 있습니다 file
.
DEL이 0x7F인 것은 실제로 우연이 아닙니다. 데이터가 일반적으로 종이 테이프에 보관되면 모든 잔해를 플러시하여 잘못된 플러시를 제거할 수 있습니다(짝수 패리티를 위한 8번째 비트 포함). 대부분의 독자는 NUL 및 DEL 문자를 완전히 건너뜁니다.