파일 · 바이너리 · 압축

헥사 뷰어파일을 바이트 단위로 읽고, 덤프에서 파일을 되살리기

파일을 열면 바이트를 바로 볼 수 있고, '헥사 덤프 붙여넣기'로 바꾸면 xxd나 hexdump -C 출력을 파일로 되돌릴 수 있습니다.

헥사 뷰어

입력

example-1x1.png

70바이트 (0x46)

여기에 파일을 끌어다 놓거나 '파일 열기'를 누르세요.

파일은 브라우저에서 필요한 부분만 조금씩 읽으며, 업로드되지 않습니다.

16진수 보기

00000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 .PNG........IHDR
00000010 00 00 00 01 00 00 00 01 08 06 00 00 00 1f 15 c4 ................
00000020 89 00 00 00 0d 49 44 41 54 78 da 63 64 60 f8 5f .....IDATx.cd`._
00000030 0f 00 02 87 01 80 eb 47 ba 92 00 00 00 00 49 45 .......G......IE
00000040 4e 44 ae 42 60 82 ND.B`.
선택 영역 0x00000000–0x00000000 (1바이트)

바이트를 클릭하면 커서가 이동합니다. Shift+클릭이나 Shift+방향키로 선택 영역을 넓히고, 보기 안에서는 PageUp, PageDown, Home, End도 쓸 수 있습니다.

검사기 @ 0x00000000 (0) · 리틀 엔디언

비트
10001001
int8
-119
uint8
137
int16
20617
uint16
20617
int32
1196314761
uint32
1196314761
int64
727905341920923785
uint64
727905341920923785
float32
52816.53515625
float64
5.292397776572611e-260
UTF-8
—

옵션

example-1x1.png: 70바이트.

설치되지 않는 다운로드 파일, 앱이 저장한 설정 데이터, 펌웨어 .bin, 어떤 프로그램으로도 열리지 않는 이미지처럼 정체를 알 수 없는 파일이 있을 때 헥사 뷰어(이진 뷰어라고도 합니다)를 엽니다. 오프셋 열은 위치를, 16진수 열은 바이트 그대로를, ASCII 열은 그 사이에 숨어 있는 읽을 수 있는 문자열을 보여 줍니다.

터미널에서 xxd나 hexdump -C를 실행해도 되지만, 이 헥사 뷰어는 그와 똑같은 형식으로 출력하므로 줄 단위로 비교할 수 있습니다. 터미널에 없는 것은 커서입니다. 바이트를 클릭하면 그 위치부터 시작하는 정수와 부동소수점 값을 리틀 엔디언과 빅 엔디언으로 읽어 주고, 티켓에 붙어 온 헥사 덤프를 원래 바이너리로 되돌리는 일도 같은 페이지에서 할 수 있습니다.

이 헥사 뷰어를 쓰는 이유

보이는 형식은 터미널과 같고, 바이트를 가리켜 값을 물어볼 수 있습니다.

큰 파일도 바로 열림

디스크에서 읽는 것은 화면에 보이는 16줄과 커서 위치의 8바이트뿐입니다. 3GB 디스크 이미지도 3KB 아이콘처럼 매끄럽게 스크롤되고, 앞부분 1MB에서 잘리지도 않습니다.

왼쪽의 긴 파일에서 작은 구간 하나가 표시되고, 그 구간이 오른쪽의 16줄짜리 16진수 격자로 확대되어 커서 위치 바이트가 강조된 그림.

붙여넣은 덤프가 다시 파일로

xxd나 hexdump -C 출력을, hexdump가 반복 줄을 줄여 쓰는 * 줄까지 그대로 붙여넣으면 .bin으로 저장할 수 있습니다. 오프셋이 비는 줄은 0으로 채우지 않고 줄 번호와 함께 알려 줍니다.

헥사 덤프의 여러 줄 가운데 오프셋이 비는 한 줄이 빨간 테두리로 표시되고, 화살표가 되살린 바이너리 파일을 가리키는 그림.

두 가지 바이트 순서로 값 읽기

검사기는 커서 위치의 바이트를 8~64비트 정수와 32·64비트 부동소수점으로 읽습니다. 엔디언을 바꾸면 같은 4바이트가 전혀 다른 숫자가 되는 것을 바로 볼 수 있습니다.

색이 다른 4바이트를 두 순서로 읽는 그림. 왼쪽은 리틀 엔디언으로 뒤집고 오른쪽은 빅 엔디언으로 그대로 두어 서로 다른 길이의 값 막대가 나온다.

보기를 제대로 쓰는 세 가지 요령

01

파일을 열거나 덤프를 붙여넣기

입력 칸에 파일을 끌어다 놓거나 '파일 열기'를 누르면 바로 표시되며, 파일 전체를 메모리에 올리지 않습니다. '헥사 덤프 붙여넣기'는 xxd, hexdump -C, 16진수 문자열, C 배열을 받고, 입력을 멈춘 뒤 350ms 후에 변환합니다.

  • '자동 변환'을 끄면 '변환'이나 Ctrl/Cmd+Enter를 누를 때만 변환합니다.
  • 붙여넣기 모드에서 '예제 불러오기'를 누르면 * 줄이 있는 hexdump -C 출력이 들어가, 생략된 줄이 어떻게 펼쳐지는지 볼 수 있습니다.
02

스크롤바보다 키보드

바이트를 클릭한 뒤 방향키, PageUp, PageDown으로 움직입니다. Ctrl/Cmd+Home과 Ctrl/Cmd+End는 처음과 끝으로 갑니다. '오프셋으로 이동'은 0x1A0, 1A0h, 10진수 416을 모두 받습니다.

  • 검색 기본값이 16진수 바이트라서 89 50 4E 47이나 FF D8 FF 같은 시그니처를 그대로 찾을 수 있습니다. 문자열은 '텍스트'로 바꿔 찾습니다.
03

고른 바이트만 내보내기

Shift+클릭하거나 시작 오프셋과 길이를 입력해 바이트를 고른 뒤 내보내기 형식을 선택합니다. hexdump -C와 xxd 출력은 파일의 실제 오프셋을 유지하므로, 잘라 낸 조각도 원본 파일과 위치가 맞습니다.

  • 텍스트 내보내기는 1MiB까지이며, '선택 영역 저장(.bin)'은 바이트를 그대로 복사하므로 제한이 없습니다.

바이트로 할 수 있는 일

터미널과 같은 배치

소문자 16진수, 8번째 바이트 뒤의 추가 공백, 출력할 수 없는 바이트는 점, 한 줄에 8·16·32바이트. 00 바이트는 흐리게 표시해 채움 영역을 건너뛰기 쉽습니다.

바이트와 텍스트 검색

16진수 바이트열이나 UTF-8 문자열을 백그라운드 Worker에서 파일 전체에 대해 찾습니다. 진행 표시줄, 일치 개수, 이전·다음 버튼이 있고, 청크 경계에 걸친 일치도 놓치지 않습니다.

데이터 검사기

커서 위치에서 부호 있는·없는 8·16·32·64비트 정수, float32, float64, 현재 바이트의 비트, 그 위치에서 시작하는 UTF-8 문자를 읽어 줍니다.

네 가지 텍스트 형식과 원본 바이트

선택 영역을 hexdump -C, xxd, xxd -p 형식의 16진수 문자열, xxd -i 같은 C 배열로 복사하거나 저장하고, 원본 바이트를 .bin으로 저장할 수 있습니다.

제한과 해석 규칙

읽기 전용, 바이트를 바꾸지 않음
편집, 삽입, 채우기, 찾아 바꾸기가 없고 원본 파일에 다시 쓰지도 않습니다. 패치가 필요하면 범위를 xxd 형식으로 내보내 텍스트를 고친 뒤 '헥사 덤프 붙여넣기'에 다시 넣고 .bin을 저장하세요. xxd와 xxd -r로 하는 과정과 같습니다.
덤프에 빈 곳이 있으면 오류, 0으로 채우지 않음
모든 줄의 오프셋은 이전 줄이 끝난 곳에서 정확히 이어져야 합니다. xxd -r은 빈 곳을 0으로 채우지만, 이 도구는 첫 번째 빈 곳·겹침·알 수 없는 문자에서 멈추고 줄과 열을 알려 줍니다. 빈 곳은 대개 복사하면서 줄이 빠졌다는 뜻이기 때문입니다. Intel HEX 펌웨어 레코드는 따로 알아보고 전용 메시지를 보여 줍니다.
크기 제한
파일은 4GiB까지 열 수 있습니다. 붙여넣기는 16MiB 문자까지, 텍스트 내보내기는 선택한 1MiB까지입니다. 검색은 일치가 10,000개에 이르면 멈추고 그 사실을 알려 주며, 검색 패턴은 256바이트까지입니다.
텍스트 열과 검색이 하지 않는 일
텍스트 열은 ASCII로 고정되어 있어 여러 바이트로 된 UTF-8 문자는 점으로 보입니다. 커서 위치의 문자는 검사기의 UTF-8 줄에서 확인하세요. 대소문자 무시는 A–Z에만 적용됩니다. 와일드카드, 숫자 값 검색, 파일 형식 판별, 구조 해석은 지원하지 않습니다.

헥사 뷰어 자주 묻는 질문

헥사(바이너리)는 어떻게 보나요?

이 헥사 뷰어에 파일을 끌어다 놓으면 됩니다. 왼쪽 오프셋은 바이트 위치, 가운데는 각 바이트의 16진수 값, 오른쪽은 그 바이트를 ASCII로 읽은 글자입니다. 읽을 수 없는 바이트는 점으로 표시됩니다.

파일을 바이너리로 보려면 어떻게 하나요?

프로그램을 설치할 필요 없이 브라우저에서 파일을 열면 됩니다. 브라우저가 파일을 직접 읽으므로 파일이 컴퓨터 밖으로 나가지 않고, 각 바이트의 비트는 검사기의 '비트' 줄에서 볼 수 있습니다.

리눅스에서처럼 16진수(hex) 문자열을 바이너리 파일로 만들 수 있나요?

네. '헥사 덤프 붙여넣기'에 구분자 없는 16진수 문자열, 공백이나 콜론으로 구분한 값, 0x나 \x가 붙은 값, C 배열 중 어떤 것이든 붙여넣고 '파일 전체 저장(.bin)'을 누르면 됩니다.

xxd로 만든 16진수 덤프를 바이너리 파일로 되돌리려면?

xxd 출력을 그대로 붙여넣으면 형식을 자동으로 알아보고 .bin으로 저장합니다. 결과는 xxd -r과 같지만, 줄이 빠진 경우 조용히 0으로 채우지 않고 오류로 알려 줍니다.

Notepad++로 16진수를 보려면 어떻게 하나요?

Notepad++에서는 HEX-Editor 플러그인을 따로 설치해야 합니다. 설치 없이 보고 싶다면, 이 헥사 뷰어는 브라우저만 있으면 되고 큰 파일도 화면에 보이는 부분만 읽기 때문에 빠르게 열립니다.

다른 질문이 있나요?

헥사 뷰어로 파일 열기

먼저 예제 PNG를 불러와 시그니처, IHDR 청크, 검사기에서 빅 엔디언으로 읽은 너비를 확인한 뒤, 가지고 있는 파일을 헥사 뷰어로 열어 보세요.

모든 처리는 브라우저 안에서만 이루어집니다.