확장자를 열 수 없을 때 조사하는 방법을 몰라요.
개시하다
여러분은 평소에 업무 중에 이런 경험이 있으신가요?
?? "이 파일을 손 옆에서 열어 주시겠습니까?"
나: "이 youknowme라는 파일 괜찮아요?"
나: "열어봐~"
나: 그저께
받은 (다운받은) 파일이 열리지 않는 일은 경험이 많죠.
대부분의 경우 파일 이름에 확장자가 없기 때문에 적당한 방식으로 열 수 없을 때 표시됩니다.
확장자가 있는 파일을 열 수 없을 경우
적절한 디스플레이에 사용할 수 있는 소프트웨어를 추가해서 대응할 수 있을 것 같아요.
이번과 같은 확장자가 없다면 조사를 위해서도 두서가 없어 곤란하다.
이럴 때 어떻게 열어야 하는지 기재하고 싶어요.
TL;DR
매직 번호 확인(형식 식별자)
적절한 확장자를 확인하고 확장자를 파일에 적절히 추가
파일을 열 적절한 방법을 선택합니다.
(appeendix) 마술 번호를 확인하지 않고 확장자를 단숨에 알고 싶으면 file 명령을 사용하십시오
해결책
확장자가 없는 파일을 전송하여 열 수 없는 경우
어떤 방법으로 원본이 어떤 격식으로 만들어졌는지
이번 설명의 확인 방법은 마술 번호(포맷 식별자)에 따라 판별하는 방법을 기재했다.
마술 번호?
파일의 데이터 중 일부는 마술 번호라고 불리며 자신이 어떤 파일인지 나타낸다.
파일 형식을 식별하는 데 사용되는 파일 본문의 특정 위치의 특정 수치
대부분의 경우, 마술 번호는 파일의 시작 몇 바이트에 기록되어 있다.
우리는 평소에 파일의 종류를 식별하는 방법으로 파일의 확장자와 속성을 확인하는 등의 조작을 생각했다
이를 사용할 수 없는 경우에도 확인할 수 있다.
매직 번호를 확인하는 방법
마술 번호를 알면 파일의 확장자를 확인할 수 있습니다
다음은 마술 번호를 확인하는 방법입니다.
파일의 본문에 있다고 하지만, 실제로 열어서 처음에 쓴 것은 아니다
파일의 바이너리 정보를 확인해야 합니다.
따라서 유닉스 명령의 xxd 명령을 이용하여 파일을 16진수로 표시하는 것이 좋습니다.
xxd 명령 자체는 파일이나 표준 입력에서 받은 내용을 16진수나 2진수로 저장하는 명령입니다.
$ xxd youknowme
00000000: 1f8b 0800 f75d fd5f 0003 edd3 3d4e c330 .....]._....=N.0
00000010: 1407 f04c 0c19 3981 4f50 de87 f39c 0c1d ...L..9.OP......
00000020: 4cdd 8809 3180 c4c0 62a9 11ca 9020 25a9 L...1...b.... %.
00000030: 9a0d 5646 8ec1 7538 0147 c17c 4642 7429 ..VF..u8.G.|FBt)
00000040: ad2a 447e cbb3 5e3c fcad e87f e6fb 93c2 .*D~..^<........
00000050: 2f8a e6c8 d7ed aa68 265d df45 5b06 00a2 /......h&].E[...
00000060: b58a cc9b 61c2 0704 50c8 6145 4942 220a ....a...P.aEIB".
00000070: 08d0 40a4 fa6d 07f9 c9b2 ed7c 13a2 ac7c [email protected].....|...|
00000080: e76b df94 ebee 9dce 2fcf afdc 4de5 cb5a .k....../...M..Z
00000090: 5db4 45d3 7efb fefe 14f5 35ff 0834 eaba ].E.~.....5..4..
000000a0: 5c4c 19c5 0009 6471 582c c302 114d 46e1 \L....dqX,...MF.
000000b0: 9fc4 0caa eaca aa98 a220 68ce 3881 09b1 ......... h.8...
000000c0: 664c 8378 dff9 47bf b3bb d60f 3efb 7f17 fL.x..G.....>...
000000d0: ce07 8f4f f7af f3f0 f9f6 616d ffd1 3098 ...O......am..0.
000000e0: 48c1 ee22 0dfe 79ff 5367 0967 908a 7500 H.."..y.Sg.g..u.
000000f0: 2ecf 520b c4e4 00d1 ced1 e93c 9199 b0c9 ..R........<....
00000100: 0d38 c92c 9163 7b2c da60 4aa0 c525 96f7 .8.,.c{,.`J..%..
00000110: 9d7f 341a 8d46 9b79 01a1 c206 7e00 0c00 ..4..F.y....~...
00000120: 00
이럴 때 첫 번째1f8b
를 マジックナンバー 1f8b
같은 방법으로 조사해 주면 무슨 문제가 생길까 해서요.참고로
1f8b
는 gzip이 압축한 데이터입니다.다양한 확장자의 마술 번호
매직 번호 목록이 UNIX 시스템 OS인 경우 다음 디렉토리에 정의 파일이 있습니다.
/usr/share/file/magic
예를 들어 jpeg 파일을 열면0xffd8
확인할 수 있을 것 같아요.이것은 jpeg의 마술 번호입니다.
다른 대표적인 것들도 다 모아서 적으신 분들이 있어요.
단숨에 확인하고 싶은 사람은 확인해 보세요.
마술 번호 요약
또한 배포
/usr/share/file/magic
마다 다른 파일 존재릴리즈에 따라 모든 확장자가 지원되지 않을 수 있습니다.
(Appendix) file 명령을 통한 확인 방법
서류를 확인할 때 반드시 상술한 것처럼 이진법으로 판단해야 합니까?
사실은 그렇지 않다.
내부에서 상술한 일을 진행할 수 있는 매우 부드러운 지령이 있다.
그게 파일 명령이야.
file 명령은 파일을 매개 변수로
파일 내용을 보고 파일 형식을 표시하는 명령
file 명령으로 파일 내용을 볼 때
위에서 설명한 마술 번호로 그 서류가 무엇인지 판단하다.
$ file youknowme
youknowme: gzip compressed data, last modified: Tue Jan 12 08:29:43 2021, from Unix, original size modulo 2^32 3072
이렇게 간단하고 이해하기 쉬우면 file 명령만 가르쳐 주세요.간혹 확장자가 있는 파일도
때때로 마술 번호는 다른 문제(CTF 등 문제 중 비교적 많다).
이 경우 파일의 마술 번호를 바꿉니다
나는 그래도 xxd 같은 확인 방법을 미리 아는 것이 좋다고 생각한다.
끝말
열 수 없는 파일의 대응 방법을 주제로 기술하는 동시에 실제 일부 파일 형식은
어떤 사람은 눈썹 (마술 번호) 을 표식자로 정의한다
나는 그곳에서 서류 양식을 확인할 수 있는 내용에 초점을 맞췄다.
의외로 알려지지 않은 마술 번호인 것 같아요.
알면 평소에 정말 미세한 고장 제거가 이루어져 무기가 늘어나 쉽게 해결될 수 있다.
Reference
이 문제에 관하여(확장자를 열 수 없을 때 조사하는 방법을 몰라요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/riku_shiru/articles/091677b9dd2073텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)