Hexdump 및 xxd 명령

육각 덤프?

RAM, 파일 또는 저장 장치에 있는 컴퓨터 데이터의 16진수 표현이며 주로 디버깅 또는 리버스 엔지니어링에 사용됩니다. (프로그램이 어떻게 동작하는지 궁금하거나 코드를 리버스 엔지니어링할 소스 코드나 소프트웨어가 없다면 이 값을 보고 어떤 일이 일어나는지 테스트해 볼 수 있습니다.)

16진수(Hex)

  • 숫자는 0-15(2^4)를 나타낼 수 있으며 10-15는 로마자 AF 문자로 나타냅니다.
  • 특히 컴퓨터에서 2^8은 2자리로 표현할 수 있는데, 1바이트를 나타내기에 좋은 약어입니다.
  • 숫자 뒤에 (16) 기호를 붙이거나 16 또는 16진수를 아래첨자로 쓰는 방법을 사용한다.
  • 접두사 0x를 붙여서 0x10으로 표현하기도 한다(프로그래밍 언어에서 16진수 상수(리터럴)을 표현하는 방법)

10진수 변환 예

  • 이진수 > 16진수

10111010101010101011110100010(2) > 175557A2(16)

이진수 (000)1 0111 0101 0101 0101 0111 1010 0010
십진수 하나 7 5 5 5 7 10 2
16진수 하나 7 5 5 5 7 2

  • 16진수 > 이진수

25FB(16) > 10010111111011(2)

16진수 2 5 에프
십진수 2 5 16 11
이진수 0010 0101 1111 1011


xxd?

이 명령은 파일 또는 stdin에서 hexdump를 생성하거나 복원합니다. 바이너리 형식으로 hexdump를 생성할 수도 있습니다.

사용하는 방법

$ xxd (옵션) (변환할 파일명)

가능성

-ㅏ 단일 제로 라인을 ‘*’로 처리
-비 덤프 출력 바이너리(0 또는 1)
-씨 행당 표시되는 열 수 설정
-이자형 육각 덤프 *리틀 엔디안다음과 같이 출력
-이자형 ASCII의 오른쪽 문자열 *EBCDIC 변화
-G 출력 시 그룹에 바인딩된 바이트 수 설정
-시간 사용 가능한 명령 요약을 인쇄하고 종료합니다.
-나 C언어에서 사용 가능한 형식으로 출력
-엘 설정된 길이 바이트 만큼만 출력
-피 주소나 ASCII 없이 hexdump 콘텐츠만 덤프
-아르 자형 16진수 데이터를 2진수 데이터로 변환
-에스 설정된 저장 위치에서 Hexdump.
position 또는 +position은 파일 시작 위치를 지정하고 position은 파일 끝 위치를 지정합니다.
-유 소문자 대신 대문자로 16진수 출력
-V xxd 버전의 출력

*리틀 엔디안?

데이터를 저장할 때 상위 바이트, 즉 큰 바이트가 먼저 저장됩니다. 빅 엔디안; 하위 바이트, 즉 작은 바이트를 먼저 저장하는 것이 좋습니다. 리틀 엔디안~라고 불리는

*EBCDIC(확장 BCD 교환 코드, Epsidic)

문자를 6비트로 표현하는 BCD 코드의 확장으로 확장 이진화 십진수라고 하며 8비트로 256개의 문자를 표현할 수 있다.

(참고로 아스키는 7비트)