ELF 매직에 대한 토론, 가장 최근에는 이 보안 스택 교환 질문 에 대한 의견을 보았습니다 . 이전에 언급 한 내용을 보았으며 부트 로그에서 본 적이 있습니다. 그러나 그것이 무엇인지 잘 모르겠습니다.
C 또는 하위 수준의 언어를 사용하지 않기 때문에 elf 의 맨 페이지 가 약간 위에 있습니다.
매일 운영 체제로 Linux를 사용하는 사람으로서 ELF 란 무엇입니까?
ELF 매직에 대한 토론, 가장 최근에는 이 보안 스택 교환 질문 에 대한 의견을 보았습니다 . 이전에 언급 한 내용을 보았으며 부트 로그에서 본 적이 있습니다. 그러나 그것이 무엇인지 잘 모르겠습니다.
C 또는 하위 수준의 언어를 사용하지 않기 때문에 elf 의 맨 페이지 가 약간 위에 있습니다.
매일 운영 체제로 Linux를 사용하는 사람으로서 ELF 란 무엇입니까?
답변:
참조하는 맨 페이지에서 바로 :
elf - format of Executable and Linking Format (ELF) files
ELF는 Linux에서 사용되는 실행 파일의 이진 형식을 정의합니다. 실행 파일을 호출 할 때 OS는 실행 파일을 메모리에 올바르게로드하는 방법, 동적 라이브러리 종속성을 해결하는 방법 및로드 된 실행 파일로 점프하여 실행을 시작할 위치를 알아야합니다. ELF 형식이이 정보를 제공합니다. ELF 매직은 ELF 파일을 식별하는 데 사용되며 파일의 처음 몇 바이트에 불과합니다.
% od -c -N 16 /bin/ls
0000000 177 E L F 002 001 001 \0 \0 \0 \0 \0 \0 \0 \0 \0
0000020
또는
% readelf -h /bin/ls | grep Magic
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
이 16 바이트는 파일을 ELF 실행 파일로 명확하게 식별합니다. 많은 파일 형식에는 파일 유형을 식별하는 동일한 작업을 수행하는 "매직"바이트가 있습니다.
readelf
.
e_ident
EI_MAG0
EI_MAG3
/bin
확실히 ELF 바이너리입니다. 그래도 다운로드 한 임의의 파일은 아무 말도하지 않습니다.
"매직 숫자"는 파일 시작 부분에서 일정한 바이트 시퀀스 (주로)에 부여 된 이름으로, 해당 파일을 특정 파일 형식으로 표시하는 데 사용됩니다. 파일 확장자와 비슷한 용도로 사용됩니다.
자세한 정보는 전문 용어 파일 항목 을 참조하십시오.
예를 들어 PNG 이미지는 항상 같은 8 바이트로 시작합니다. 137 80 78 71 13 10 26 10
따라서 ELF 매직 넘버는 엘프 파일의 시작 부분에서이를 식별하는 바이트입니다.