디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

Reading ZIP File Format #2, 전체 구조

DMW(125.138) 2010.10.24 02:55:17
조회 401 추천 0 댓글 3


크리에이티브 커먼즈 라이선스

Creative Commons License



2.   Overall Structure of ZIP


1.    Overall Structure


앞 쳅터에서 우리는 ZIP 파일 포맷을 하향식으로 살펴본다고 했다. 모르는 사람은 업ㅂ겠지만

하향식 (Top-Down)으로 살펴본다는 말은 최상위 구조를 먼저 파악한 후 디테일한 내용은 나중에

설명하겠다는 말이다. 그래서 이번 쳅터에서 설명할 ZIP 파일 포맷의 전체 구조는 뒤에 오는

내용들을 가늠하게 될 중요한 내용이다. 최상위 레벨에서 바라 보았을 때 ZIP 파일의 구조는

심플하기 짝이 업ㅂ으니 일단 가벼운 맘으로 시작하자능.
 


ZIP 파일의 전체 구조는 위의 그림처럼 생겼다. 자질구레한 섹션들은 삭제하고 굵직굵직한

섹션만 포함시켰을 때 위와 같은 모습이 된다. 복수의 Local File Entry와 하나의 Central

Directory로 구성되어 있다. 저것만 알아도 ZIP파일의 Hex 덤프를 보고 내용을 어떤 파일들이

압축되어 있는지 내용을 파악할 수 있다.


2.    Local File En+try

Local File Entry가 어떻게 생겼는지 구조만 살펴보고 넘어가보자. 자세한 내용들은 다음 쳅터에서

설명하기로 했으니 우리는 그림만 살펴보고 넘어가자.


점선으로 표시한 Data Deor는 Local File Header의 내용에 따라 있을 수도 있고 업ㅂ을 수도

있다. 짐작은 하겠지만 Local File Header에 파일 이름이나 뭐 이런 정보가 저장돼있고 File Data에

실제 파일의 내용이 압축된 상태로 저장돼 있다. Local File은 Local File Header와 File Data의

내용만 멀쩡하다면 전체 ZIP 파일이 완전하지 않더라도 원본 파일로 복원할 수 있다. 우리가 받다

말은 ZIP파일의 내용을 훔쳐볼 수 있는 이유가 바로 이 때문이다.


3.    Central Directory


Central Directory는 Local File Entry들의 메타 데이터를 담고 있다. 역시 자세한 내용은 뒤에서

다룰 테니 그림을 먼저 보자.
 


Central Directory의 File Header는 Local File Entry의 Local File Header와 매우 유사한 데이터를

담고 있다. 데이터가 중복 저장되는 이유는 이렇게 하면 Central Directory만 파싱하면 전체 ZIP

파일의 구조를 한번에 파악할 수 있기 때문이다. Central Directory를 파싱하면 한번에 모든 Local

File의 메타 데이터를 획득할 수 있으니 꽤 중요하다고 할 수 있겠다. 이런 이유로 Central

Directory의 File Header는 Local File Header와의 relative offset도 담고 있어 빠르게 Local File을

찾을 수 있게 해준다. 참고로 실제 압축 파일에 Local File Entry가 담겨 있는 순서와 Central

Directory의 File Header가 담겨 있는 순서가 틀려도 관계 없다.


Digital Signature는 있어도 그만 없어도 그만인 것 같은데 PKWARE의 Application Note에서 정확한

정보를 찾을 수 없었다. 실제로 파일을 압축해보면 Digital Signature가 들어있지 않다. 정확한 정보를

계속 찾고 있으니 찾아 내는 데로 문서에 반영될 꺼라능.


4.    miscellaneous

전체 구조를 대충 살펴 봤으니 이제 PKWARE의 Application Note에서 소개해주는 진짜 전체 구조를 살펴보자.


위에서 봤던 구조랑 비슷한데 뭐가 이것저것 더 붙어 있다. 일단 처음 나오는걸 살펴보자능. EFS라고

표시된 섹션들은 Strong Encryption Specification과 관련이 있다. 우리는 Encryption과 관련된

내용은 다루지 않을 거기 때문에 저건 없다고 생각하자. 

 

이름이 Zip64로 시작하는 섹션들은 오리지널 ZIP 포맷의 크기 제한을 없에는 ZIP64 포맷과 관련이 있다.

우리는 이 내용도 다루지 않을 꺼다. 참고로 오리지널 ZIP 포맷의 크기 제한이란 전체 ZIP 파일의

크기와 Local File의 압축된 크기 및 압축이 해제된 크기의 4GB 제한과 전체 Local File Entry의 개수가

65535개로 제한되는 것을 말한다. 아무튼 저 두 섹션들도 없다고 생각하자. 

 

각각의 Central Directory의 File Header는 version needed to extract라는 이름으로 자신의 압축을

해제하기 위해 구현해야 되는 ZIP 파일 포맷의 스펙의 버전을 명시하고 있다. 이걸 보고 위의 두 가지

특징들이 사용되었는지 알 수 있다. 

 

다음 챕터부터 Local File Entry와 Central Directory의 구조를 살펴보면서 리얼 월드에서 돌아다니고

있는 ZIP파일의Hex dump를 분석해볼 꺼라능. 이 과정에서 프로그램으로 ZIP파일을 분석하려면 어떻게

해야 하는지에 대한 노하우도 조금은 얻을 수 있을꺼라능.....아마도 -_-


=================================================================================

디씨 게시판 너무 불편함 -_-;;

그래도....디씨야 아프지만 말아다오

추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 우리나라를 대표해서 UN 연설자로 내보내고 싶은 스타는? 운영자 25/09/29 - -
AD 프로게이머가 될테야!! 운영자 25/10/01 - -
공지 프로그래밍 갤러리 이용 안내 [96] 운영자 20.09.28 47614 65
2893734 결혼식 갔다왔다 발명도둑잡기(118.235) 14:57 0 0
2893733 시원하당 ♥냥덩이♥갤로그로 이동합니다. 14:43 5 0
2893731 동생 동영상편집 하고 싶다는데 중고나라에서 30짜리 컴으로 될까?? ㅇㅇ(223.39) 14:17 11 0
2893730 대한민국에 쓰레기들 생각하니까 짱개가 땡기네 프갤러(210.217) 13:41 17 0
2893729 정치가 ㄹㅇ 역겨움 프갤러(210.217) 13:22 23 0
2893728 카카오같은거 보면 개발자들 ㄹㅇ 띨방한 애들밖에 없는듯 [4] 프갤러(210.217) 13:11 50 1
2893727 나는내향적이야 나는조현병이야 손발이시립디다갤로그로 이동합니다. 12:36 24 0
2893725 창업 조언 발명도둑잡기(118.235) 12:23 19 0
2893724 프로그래밍 이야기가 1도 없노 ㅇㅇ(218.157) 12:23 23 0
2893723 신은 왜 쓰레기 같은 새끼한테 시간을 줬을까? 프갤러(210.217) 12:14 28 1
2893722 앱 오버레이 컴포넌트들 다 만들었다 [1] 노력갤로그로 이동합니다. 11:44 30 0
2893721 인공지능, ai 국비하면 취업 가능? [4] cvs.갤로그로 이동합니다. 11:24 51 0
2893720 [이스트소프트] AI 교육받고 제주 자연 속 워케이션 즐기자! [1] [ESTsoft]oreumi-camp(125.183) 10:39 37 1
2893719 뭔지랄을해야 이딴나라에서 태어날수있는거지 [1] 타이밍뒷.통수한방(1.213) 10:35 27 0
2893718 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 10:09 26 0
2893717 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 09:33 24 0
2893716 수..숨막혀..ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 09:31 19 0
2893714 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 09:26 21 0
2893713 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 09:25 28 0
2893712 의정부역 PC방 ㅇㅇ(223.38) 08:40 18 0
2893711 앱공장 해볼만함? 프갤러(180.231) 08:12 24 0
2893692 넥도리아 양념 헌돈 돼지 갈비 추석을 향해 전진. [1] 넥도리아2025(220.74) 06:22 23 0
2893675 음기 충전 발명도둑잡기(118.216) 05:13 48 0
2893673 조심해라 프갤러(211.118) 04:44 43 0
2893671 스포티파이 개인정보 국방부로 팔려나가는 건 시간문제 발명도둑잡기(118.216) 04:16 23 0
2893666 이 패션 진짜 올 가을 유행인가요? 발명도둑잡기(118.235) 04:01 26 0
2893665 스포티파이 인공지능 규제 발표 [1] 발명도둑잡기(118.235) 03:56 30 0
2893663 “엡스타인, 정보기관과 연관됐나” 의혹 여전… 美 정부는 침묵 발명도둑잡기(118.235) 03:36 21 0
2893655 흐름 상징 발명도둑잡기(118.235) 02:54 30 0
2893649 한국 국회, 정부, 법원은 여전히 미군위안부같은 정치를 하고 있다 발명도둑잡기(118.216) 02:42 20 0
2893644 사실 세대론으로 비판하면 안되고 생산수단 가진자를 비판해야 발명도둑잡기(118.235) 01:57 25 0
2893642 오늘의 소설, 영화 실마리: 성매매자 데이터베이스가 외국 정보기관에 발명도둑잡기(118.235) 01:52 16 0
2893641 엠스타인 명단 공개 예정인 의원 발명도둑잡기(118.235) 01:38 21 0
2893639 형님들 스타트업은 원래 조용한가요? [4] ㅇㅇ(106.101) 01:16 80 0
2893638 이직 하고 싶은데 물경력이라 방법이 없다.. ㅇㅇ(175.197) 01:16 36 0
2893637 BTS (방탄소년단) 'Dynamite' 발명도둑잡기(118.216) 01:07 20 0
2893636 먹고 살려고 안해본 일이 없는데, IT 프리랜서 장점은 [1] ㅆㅇㅆ(124.216) 01:06 61 0
2893635 내가 느끼는게 랜딩 페이지 하나 작성에 15만 ㅆㅇㅆ찡갤로그로 이동합니다. 00:59 38 0
2893634 프리로 협업 몇번해봤는데 항상 느끼지만 ㅆㅇㅆ찡갤로그로 이동합니다. 00:56 42 0
2893632 어차피 개발하다보면 서로 지식의 빈곳이 있을수밖에 없어서 [3] ㅆㅇㅆ찡갤로그로 이동합니다. 00:48 66 0
2893631 신해철, 싸이-Dear America [1] 발명도둑잡기(118.216) 00:38 32 0
2893629 우리나라가 소프트웨어 강국이 되려면 ㅇㅇ(121.168) 00:30 29 0
2893628 한국 10년뒤엔 러스트충들 국비찍어될듯 타이밍뒷.통수한방(1.213) 00:29 52 0
2893627 일하면 그냥 현타 존나옴 [25] ㅇㅇ갤로그로 이동합니다. 00:24 125 0
2893626 오늘의 작사 실마리: 관세전쟁 [3] 발명도둑잡기(118.216) 00:24 28 0
2893625 진짜 돈 모아서 C드라이브랑 메인보드 교체해야할듯 [2] ㅆㅇㅆ(124.216) 00:20 45 0
2893624 이거 교정 방법 잘못 고른건가? 발명도둑잡기(118.216) 00:18 26 0
2893622 후 아뮤튼 러스트 배워두십시오. 지능이 향상됩니다. [1] 프갤러(110.8) 00:12 40 0
2893620 밀레니얼로서 난 X세대보다 더 행복한 유년기에 꿀빨았다고 생각해 ㅇㅇ(121.168) 00:12 26 0
뉴스 ZEROBASEONE & RIIZE & NCT WISH & 아일릿 & MEOVV & Hearts2Hearts, 아이돌 총출동 ‘레전드 라인업’ (2025 추석특집 아육대) 디시트렌드 10.02
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2