반응형
Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- telnet
- 암표거래
- cron
- status diagram
- sofrware architeture
- fan-in fan-out
- gof design pattern
- factory metohd pattern
- nc reverse shell
- usecase description
- ui 디자인 기본원칙
- 모듈구조도
- 디자인패턴
- 구조적 설계
- strucuture charat
- 팬인과 팬아웃
- 객체 상속 속성 인스턴스 메소드 오퍼레이션
- prototypepattern 예시 example
- ssh
- bandit21
- 클래스 관계
- UseCase
- madia designer ui design
- 상태다이어그램
- Bandit
- 매크로를 바라보는 시각
- 생성패턴 행위패턴 구조패턴
- 소프트웨어공학 디자인패턴
- base64
- 리버스쉘
Archives
- Today
- Total
2.log
Hexdump 와 xxd 명령어 본문
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
https://websecurity.tistory.com/82
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