application/x를 실행 가능하게 만드는 방법

application/x를 실행 가능하게 만드는 방법

파일을 생성해야 하는데 "file filename" 명령을 실행하면 "application/x-executable" 파일이라고 표시되어야 합니다.

답변1

fileELF 실행 파일의 MIME 유형을 보고합니다(적어도 내가 보고 있는 버전 5.22에서는 그런 것 같습니다).

따라서 ELF 실행 파일을 찾으려면 충분한 ELF 파일 헤더만 필요합니다. 예를 들어:

printf '\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\2\0' > file

중요한 것들은 다음과 같습니다:

  • \177ELFELF 파일로 식별
  • 이것은 \2\0의미한다실행 가능 파일(공유 라이브러리 또는 기타 ELF 파일 유형과 반대)
  • 첫 번째는 \1리틀 엔디안( 로 변경하는 \2경우 \2\0반드시 그래야 함 \0\2)이라고 알려줍니다.

다른 모든 것은 변경할 수 있습니다. 예를 들어, 로 단축할 수 있습니다 printf '\177ELF.\1%10s\2\0'.

여기에는 ELF 실행 파일로 인식되는 데 필요한 최소 사항이 포함됩니다.

( file --mime-type file무언극 유형 표시).

또는 시스템의 ELF 실행 파일에서 다음 바이트를 가져옵니다.

head -c18 < /bin/ls > file

말할 필요도 없이 이러한 파일을 유효한 ELF 실행 파일로 만들지는 않습니다. ELF 파일 헤더는 file해당 파일을 ELF 실행 파일로 식별하는 데 충분하지만 시스템에서 실행하기에는 충분하지 않습니다.

여전히 실행 가능한 작은 ELF 실행 파일을 만들려면 다음을 참조하세요.이 사람의 시도최소 "Hi World" 실행 파일을 만듭니다(x86/amd64의 Linux용).

uudecode << EOF
begin-base64 755 file
f0VMRgEBAUhpIFdvcmxkCgIAAwABAAAAgIAECDQAAAAAuAQAAADNgOtYIAAC
ACgABQAEAAEAAAAAAAAAAIAECACABAiiAAAAogAAAAUAAAAAEAAAAQAAAKQA
AACkkAQIpJAECAkAAAAJAAAAugkAAAC5B5AECLsBAAAA66QAAADr6rsAAAAA
uAEAAADNgA==
====
EOF

또는에서http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html(45바이트!), 아무것도 하지 않고 코드 42로 종료합니다.

uudecode << EOF
begin-base64 755 file
f0VMRgEAAAAAAAAAAAABAAIAAwAgAAEAIAABAAQAAACzKjHAQM2AADQAIAAB
====
EOF

흥미롭게도 Linux는 유효한 실행 파일이 아닌데도 이를 ELF 실행 파일로 허용하고(ELF 헤더보다 더 짧음) 이를 file보고하지 않습니다 application/x-executable(바이트 순서 필드가 1/2 대신 0이기 때문에).

관련 정보