텍스트 파일 또는 문자열의 Hexdump를 만드는 방법

소개

16 진 덤프는 데이터의 16 진수 뷰입니다. 프로그램을 디버깅하거나 프로그램을 리버스 엔지니어링 할 때 16 진수를 사용할 수 있습니다.

예를 들어, 많은 파일 형식에는 유형을 나타내는 특정 16 진 문자가 있습니다. 프로그램을 사용하여 파일을 읽으 려하고 어떤 이유로 올바르게로드되지 않는 경우 파일이 예상 한 형식이 아닐 수 있습니다.

프로그램이 어떻게 작동 하는지를보고 싶고 코드를 리버스 엔지니어링하는 소스 코드 나 소프트웨어가 없다면 16 진 덤프를보고 무슨 일이 일어나고 있는지 시험해 볼 수 있습니다.

16 진수 란 무엇입니까?

컴퓨터는 바이너리로 생각합니다. 모든 문자, 숫자 및 기호는 2 진 또는 복수 이진 값에 의해 참조됩니다.

그러나 인간은 십진법으로 생각하는 경향이있다.

수천 수백명 단위
1 0 1 1

인간으로서 가장 낮은 수를 단위라고 부르며 0에서 9까지의 숫자를 나타냅니다. 10이되면 단위 열을 다시 0으로 재설정하고 10을 열 (10)에 1을 더합니다.

128 자 64 개 32 16 8 4 2 1
1 0 0 1 0 0 0 1

바이너리에서 가장 낮은 숫자는 0과 1만을 나타냅니다. 지난 1이되면 2의 열에 1을 넣고 1의 열에는 0을 넣습니다. 4를 나타내려면 4 열에 1을 넣고 2와 1 열을 다시 설정하십시오.

그러므로 15를 나타 내기 위해서는 1111이 1 8, 1 4, 1 2, 1을 의미합니다. (8 + 4 + 2 + 1 = 15)이다.

우리가 바이너리 형식의 데이터 파일을 보았다면 그것은 절대적으로 거대하고 이해하기 란 사실상 불가능합니다.

바이너리에서 다음 단계는 8 진수로 8을 기본 숫자로 사용합니다.

24 16 8 1
0 1 1 0

8 진수 시스템에서 첫 번째 열은 0에서 7로, 두 번째 열은 8에서 15로, 세 번째 열은 16에서 23으로, 네 번째 열은 24에서 31로 계속됩니다. 일반적으로 이진수보다 읽기가 쉽지만 대부분의 사람들은 16 진수를 사용하는 것을 선호합니다.

16 진수는 기본 숫자로 16을 사용합니다. 이제 인간이 숫자를 0부터 9까지 생각하기 때문에 혼란스러워집니다.

그래서 10, 11, 12, 13, 14, 15에 사용되는 것은 무엇입니까? 대답은 글자입니다.

따라서 값 100은 64로 표시됩니다. 96을 가져 오는 16 열의 6 개가 필요하고 100을 만드는 units 열에 4가 있어야합니다.

파일의 모든 문자는 16 진수 값으로 표시됩니다. 이러한 값의 의미는 파일 자체의 형식에 따라 다릅니다. 파일의 형식은 일반적으로 파일의 시작 부분에 저장된 16 진 값으로 표시됩니다.

파일 시작 부분에 나타나는 16 진수 값 시퀀스를 알고 있으면 파일의 형식을 수동으로 수정할 수 있습니다. 16 진 덤프에서 파일을 보면 파일이있을 때 표시되지 않는 숨겨진 문자를 찾을 수 있습니다 일반 텍스트 편집기에로드됩니다.

리눅스를 사용하여 16 진 덤프를 만드는 방법

Linux를 사용하여 16 진 덤프를 작성하려면 hexdump 명령을 사용하십시오.

터미널에 파일을 16 진수로 표시하려면 (표준 출력) 다음 명령을 실행하십시오.

hexdump 파일 이름

예를 들어

hexdump image.png

기본 출력은 줄 번호 (16 진수 형식)를 표시 한 다음 줄당 4 개의 16 진수 값 8 세트를 표시합니다.

예 :

00000000 5089 474e 0a0d 0a1a 0000 0d00 4849 5244

다른 스위치를 제공하여 기본 출력을 변경할 수 있습니다. 예를 들어 마이너스 b 스위치를 지정하면 8 자리 오프셋 뒤에 16 진수 3 바이트, 0으로 채워진 8 진수 형식의 입력 데이터 바이트가 생깁니다.

hexdump -b image.png

따라서 위의 예는 다음과 같이 나타낼 수 있습니다.

00000000 211 120 116 107 015 012 032 012 000 000 000 015 111 110 104 122

위 형식은 1 바이트 8 진수 표시로 알려져 있습니다.

파일을 보는 또 다른 방법은 minus c 스위치를 사용하여 1 바이트 문자로 표시하는 것입니다.

hexdump -c image.png

다시 오프셋을 표시하지만 이번에는 한 줄에 16 개의 공백으로 구분 된, 3 개의 열로 채워진 입력 데이터의 문자가옵니다.

다른 옵션에는 빼기 C 스위치를 사용하여 표시 할 수있는 표준 16 진수 + ASCII 표시와 빼기 d 스위치를 사용하여 표시 할 수있는 2 바이트 10 진수 표시가 있습니다. 마이너스 스위치를 사용하여 2 바이트 8 진수 디스플레이를 표시 할 수 있습니다. 마지막으로 minux x 스위치를 사용하여 2 바이트 16 진 표시를 표시 할 수 있습니다.

hexdump -C image.png

hexdump -d image.png

hexdump -o image.png

hexdump -x image.png

위의 형식 중 원하는 형식이없는 경우 마이너스 스위치를 사용하여 형식을 지정하십시오.

데이터 파일이 매우 길고 처음 몇 문자 만보고 그 유형을 확인하려면 -n 스위치를 사용하여 16 진수로 표시 할 파일의 양을 지정할 수 있습니다.

hexdump -n100 image.png

위의 명령은 처음 100 바이트를 표시합니다.

파일의 일부를 건너 뛰려면 빼기 스위치를 사용하여 시작 오프셋을 설정할 수 있습니다.

hexdump -s10 image.png

파일 이름을 제공하지 않으면 표준 입력에서 텍스트를 읽습니다.

다음 명령을 입력하십시오.

헥스 덤프

그런 다음 텍스트를 표준 입력에 입력하고 quit를 입력하여 마칩니다. 16 진수가 표준 출력에 표시됩니다.

개요

hexdump 유틸리티는 분명히 매우 강력한 도구이며 모든 기능을 완벽하게 이해하려면 설명서 페이지를 반드시 읽어야합니다.

출력을 읽을 때 당신이 찾고있는 것을 잘 이해할 필요가 있습니다.

매뉴얼 페이지보려면 다음 명령을 실행하십시오 :

남자 hexdump