2.log

Hexdump 와 xxd 명령어 본문

HACKING/Bandit+

Hexdump 와 xxd 명령어

2.log 2023. 3. 22. 22:37
728x90
반응형

Hex dump?

램 또는 파일이나 저장장치에 있는 컴퓨터 데이터를 16진수로 표시한 것으로 주로 디버깅이나 리버스 엔지니어링 할 때 사용됨 (프로그램 동작 방식이 궁금하거나 코드를 리버스 엔지니어링 하는 소스코드나 소프트웨어가 없을 때 이 값을 보고 무슨 일이 일어나고 있는지 시험 가능)

 

 

16진수 (Hexadecimal, Hex)

  • 자릿수 하나가 0-15 (2^4) 까지 표현할 수 있으며 10-15 까지는 A-F 로마자로 표현함
  • 특히 컴퓨터에서는 자릿수 2개를 사용하면 2^8 을 표현할 수 있고, 이는 곧 1byte를 나타내기에 축약하기 좋은 표현법임
  • 숫자 뒤어 (16) 이라는 기호를 붙이거나 아래 첨자로 16 or hex 라고 기재하는 방식 사용
  • 접두어 0x를 붙여 0x10처럼 표기하기도 함 (프로그래밍 언어 쪽에서 16진수 상수(literal)를 표현하는 방식)

 

진수 변환 예제

  • 2진수 > 16진수

10111010101010101011110100010(2) > 175557A2(16)

2진수 (000)1 0111 0101 0101 0101 0111 1010 0010
10진수 1 7 5 5 5 7 10 2
16진수 1 7 5 5 5 7 A 2

 

 

  • 16진수 > 2진수

25FB(16) > 10010111111011(2)

16진수 2 5 F B
10진수 2 5 16 11
2진수 0010 0101 1111 1011

 

 


 

xxd?

파일 or 표준 입력으로부터 hexdump 를 만들거나 복원해주는 명령어로, 바이너리 형식에서 hexdump 를 만들수도 있음

 

 

사용법

$ xxd [옵션] [변환할 파일명]

 

옵션

 -a 하나의 null line 을 '*' 로 대처
 -b dump 가 이진(0 or 1)으로 출력됨
 -c  행(line) 당 출력되는 열 (column) 갯수 설정
 -e hexdump를 *리틀엔디안으로 출력
 -E 오른쪽 문자열을 ASCII 에서 *EBCDIC 로 변경
 -g 출력시 group 으로 묶이는 byte 갯수 설정
 -h 사용가능한 명령 요약하여 출력하고 종료
 -i C언어에서 사용가능한 형식으로 출력
 -l 설정된 길이 byte 만큼만 출력
 -p 주소나 ASCII 없이 hexdump 내용만 출력
 -r 16진수 데이터를 바이너리 데이터로 변환
 -s 설정된 위치에서 부터 hexdump 함.
위치 or +위치는 파일의 시작부터으 위치를 나타내고 위치는 파일 끝에서부터의 위치를 나타냄
 -u hex 를 소문자 대신 대문자로 출력
 -v xxd 버전 출력

 

*리틀엔디안?

데이터 저장할 때 상위 바이트 즉, 큰 쪽을 먼저 저장하는 것을 빅 엔디안(Big Endian), 하위 바이트 즉, 작은 쪽을 먼저 저장하는 것을 리틀 엔디안(Little Endian)이라고 함

 

*EBCDIC(Extended BCD Interchange Code, 엡시딕)

6bit로 한 문자를 표현하는 BCD 코드를 확장한 코드로, 확장 2진화 10진 코드라 부르며 8bit로 256가지 문자 표현 가능

(참고로 ASCII 는 7bit)

 

 

 

 

 

 

 

 

참고

https://ko.wikipedia.org/wiki/Hex_dump

 

Hex dump - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 318바이트 Wikipedia 파비콘의 hex dump hex dump는 램 또는 파일이나 저장장치에 있는 컴퓨터 데이터의 십육진법적인 보임새이다. 데이터의 hex dump를 보는 것은 주

ko.wikipedia.org

https://websecurity.tistory.com/82

 

리눅스(linux) xxd/string 명령어

xxdxxd 명령은 바이너리 데이터를 16진수로, 16진수 데이터를 바이너리 데이터로 변환해주는 명령어 입니다.> xxd [-옵션] [변환할 파일명] 옵션 설명-a하나의 null line을 '*'으로 대처-bdump가 이진법(즉,

websecurity.tistory.com

 

728x90
반응형

'HACKING > Bandit+' 카테고리의 다른 글

공개키(비대칭) 암호와 RSA 에 대하여  (0) 2023.03.23
linux 파일 압축에 대하여 [tar, gz, bz2]  (0) 2023.03.22
ROT13 과 tr 명령어  (0) 2023.03.22
인코딩/디코딩과 Base64 대하여  (0) 2023.03.22
sort와 uniq  (0) 2023.03.21
Comments