Encyklopedia Formatów Plików.doc

(4281 KB) Pobierz
Encyklopedia Rozszerzeń i formatów plików

Wersja książki wysłana 21-01-2001, ok. 14:30 na email: helion@helion.com.pljaz@helion@com.pl  ze względu na niemożność zalogowania się do serwera FTP. W razie jakichś pytań proszę o kontakt pod numerem 0606 350 160 (jestem na urlopie).

pozdrawiam

Adam Błaszczyk

p.s.              Czy dałoby się jakoś zmniejszyć ilość stron, nie tracąc na przejrzystości ?!

              Proszę nie zamieniać globalnie podwójnych spacji na pojedynczą, gdyż może to uszkodzić opis pliku .XBM

Treść Notki.1 (odp. na pyt. „Co Czytelnik zyska dzięki tej książce?”):

Rozpoznasz typ pliku i określisz program, za pomocą którego został on utworzony. Informacja ta pozwoli Ci następnie na odnalezienie aplikacji macierzystej i w końcu na „otworzenie” pliku. Poznasz także strukturę najpopularniejszych plików i będziesz w stanie obsłużyć większość z nich w Twoim programie. Książka ta zawiera długo oczekiwaną odpowiedź na pytania „Co to za plik?” i „Jaki ma format?”.

Treść Notki.2 (odp. na pyt. „Co zawiera książka?”):

Pytanie ”Co oznacza bit 5 słowa pod ofsetem 002A?” nareszcie znalazło odpowiedź.

Książka, którą trzymasz w ręku jest unikalnym na polskim rynku wydawniczym zestawieniem zawierającym  opis  ponad 3600 rozszerzeń oraz ponad 50 formatów plików. Wśród opisów znaleźć można pliki tworzone przez programy:

q       archiwizujące

q       graficzne

q       muzyczne

q       edytory tekstu

q       arkusze kalkulacyjne

Krótka i zwięzła informacja oparta na jednolitym kryterium nareszcie uwalnia Cię od gorączkowych poszukiwań w stercie innych książek odpowiedzi na jedno z podstawowych pytań pojawiających się regularnie w komputerowym światku: „Jaki format ma plik XXX?”.

Jedna książka – ponad 3600 zastosowań.

 

[komentarz autora: hmmm może jeszcze dodać coś takiego ?!]

Pokuś się o sprawdzenie jakie pliki masz na swoim komputerze. Może nareszcie odkryjesz tajemnice ukryte za gąszczem dziwnie wyglądających binarnych „krzaczków”. Do tej pory rozumieli je tylko specjaliści z wąskiego grona, teraz i Ty masz szansę stać się jednym z nich. Pliki zostały stworzone przez ludzi dla ludzi, a więc także dla Ciebie. Profesjonalizm leży w zasięgu ręki.

 

Adam Błaszczyk

Encyklopedia
rozszerzeń i formatów plików

Gdańsk, 21-1-2001

              Dla Christie

              Chciałbym podziękować następującym osobom:
              Jouni Miettunen
              autorowi „The Filex Database”
              Max Maischein
              autorowi „File Format List”
              Paul Oliver
              autorowi „File Formats”


4

              Adam Błaszczyk, Encyklopedia rozszerzeń i formatów plików

 

 

 

1      Spis treści

1              Spis treści              1

2              Wstęp              3

3              Co to za plik? Jaką ma strukturę?              5

4              Używane skróty i konwencje              7

5              ENCYKLOPEDIA              8

!#$&) @_~              8

0              11

1              12

2              13

3              14

4              16

6              17

7              18

8              19

9              20

A              21

B              50

C              67

D              95

E              118

F              144

G              162

H              178

I              189

J              210

K              221

L              224

M              237

N              274

O              284

P              292

Q              331

R              338

S              358

T              395

U              412

V              419

W              433

X              450

Y              463

Z              465

6              MIME              472

7              Encyklopedia typów MIME              475

8              Lista opisanych formatów plików              499

9              Materiały żródłowe              500

2      Wstęp

Głównym zadaniem jakie postawiłem sobie pisząc tę książkę było zebranie w spójną całość i usystematyzowanie informacji dotyczących plików o różnych rozszerzeniach. Dane na ten temat można było do tej pory spotkać „porozrzucane” po różnych publikacjach zarówno tradycyjnych jak i elektronicznych.

Podczas częstej pracy z komputerem każdy – i to zarówno programista jak i zwykły użytkownik –często boryka się z koniecznością interpretacji oraz identyfikacji (nawet jeśli pobieżnej) plików, stąd umiejętność dotarcia do właściwej informacji zawartej w jego rozszerzeniu bądź strukturze jest niezwykle ważna.

W obecnej postaci książka opisuje ponad 3600 rozszerzeń plików w formie skróconej, a kilkudziesięciu z nich towarzyszy jak najbardziej pełny opis ich struktury – ten ostatni o ile byłem w stanie dotrzeć do informacji technicznych na temat danej specyfikacji oraz o ile rozmiar specyfikacji mieścił się w rozsądnych granicach. Dla dużej części plików zostały podane ich oznaczenia zgodnie z bardzo popularną specyfikacją MIME, a także środowiska, w których można je spotkać. Ważną informacją może być także lista aplikacji, które je tworzą lub ich używają dzięki czemu prostszym zadaniem może stać się w przyszłości „otworzenie” pliku o zadanym rozszerzeniu.

Dla ułatwienia pliki można szukać po ich rozszerzeniach, a także po wspomnianych powyżej typach MIME – co może być np. przydatne przy odszyfrowywaniu zawartości nieznanych plików otrzymywanych pocztą elektroniczną.

Warto mieć na uwadze, iż nie sposób jest podać definicji struktury wszystkich opisywanych rozszerzeń plików (a nierzadko nawet tych najbardziej popularnych), gdyż jest to zagadnienie bardzo często zbyt szerokie, aby mogło się dla niego znaleźć miejsce w niniejszej książce – o ograniczonej przecież objętości. Nie zapominajmy o tym, iż pewna część plików ma strukturę opisową czy obiektową (np.: pliki .PDF, .RTF), a oprócz nich istnieje także spora grupa plików zawierających trudną do streszczenia w kilku tabelach zawartość (np.: plik z kodem w różnych językach programowania). Coraz częstszym zjawiskiem jest też uciekanie od typowo strukturalnego podejścia do plików. Widać to wybitnie zwłaszcza na przykładzie plików OLE (np.: .DOC czy .XLS) będących strumieniami danych zapisywanymi za pomocą wyspecjalizowanych funkcji API biorących na siebie ciężar obsługi wszystkich operacji niskiego poziomu. Podane ograniczenia czynią z tego typu plików materiał dość nieprzyjazny jeśli chodzi o chęć uwzględnienia w niniejszej książce, a więc praktycznie w wielu miejscach potraktowany po macoszemu, aczkolwiek nie do końca pominięty. Za sprawą wspomnianych powodów pewne braki (jako nieuniknione) stają się więc mam nadzieję oczywiste. Z tego też względu książka może sprawiać momentami wrażenie „niekompletnej” – jednak zaręczam, iż jest to przede wszystkim wynik podjęcia decyzji – niełatwej przecież dla mnie jako autora (kompletność przeciwko racjonalności) – o kompromisie.

Kończąc ten króciutki wstęp wyrażam nadzieję, iż niniejsza książka stanowić będzie nieocenione narzędzie pracy zarówno dla programistów – gorączkowo poszukujących opisu struktury danego pliku, jak i dla zwykłych użytkowników komputerów, którzy ciekawi są co tak naprawdę kryje się na ich twardych dyskach, a ukryte jest pod pozornie bezładną gmatwaniną znaków graficznych.

3      Co to za plik? Jaką ma strukturę?

Nie raz zdarzyło Ci się zapewne sytuacja, w której na próżno usiłowałeś otworzyć jakiś plik o nieznanej zawartości za pomocą wszystkich możliwych programów po kolei. Rozpoznanie typu pliku a co więcej – jego struktury, nie jest sprawą trywialną, ale co muszę podkreślić – bardzo często możliwą.

W rzeczywistości większość plików zawiera bowiem pewne stałe ciągi znaków, których obecność  można wykryć za pomocą zwykłego edytora lub w bardziej wyspecjalizowanej wersji – edytora binarnego. Aby rozpoznać najbardziej popularne pliki wystarczy więc często jeden „rzut oka”. Typowym przykładem są tu pliki uruchamialne .EXE, które na początku zawsze zawierają charakterystyczny ciąg liter ‘MZ’.

Niestety nie zawsze sytuacja wygląda tak różowo i w tym wypadku trzeba zastosować inne metody, które – zaznaczam – wcale nie gwarantują sukcesu.

Najprościej jest użyć specjalny program rozpoznający typy plików po ich rozszerzeniach i ewentualnie zawartości, ale nie łudźmy się – nie zawsze poda on poprawną odpowiedź na nasze pytanie. W takim wypadku pozostaje ostateczna metoda polegająca na określeniu typu pliku na podstawie własnych obserwacji.

Jak się do tego zabrać?

Sprawa nie jest beznadziejna, dlatego też poniżej przedstawiam punkt po punkcie kroki jakie można podjąć w celu identyfikacji (podkreślam, iż chodzi o pobieżną identyfikację) większości plików.

Idąc więc po kolei należy:

q          określić nazwę pliku; niektóre nazwy jasno określają typ zawartości, chociaż nie można ufać tak pobieżnej ocenie (niektóre programy specjalnie nadają plikom tego typu nazwy, sposób ten wykorzystują także wirusy komputerowe, aby oszukać niedoświadczonych użytkowników komputerów)

q          określić rozszerzenie pliku

q          w przypadku występowania rozszerzenia w bazie danych (np. zawartej w tej książce) – rozpocząć poszukiwania programu mającego coś wspólnego z plikiem; w wypadku przeciwnym przejść do następnego punktu

q          przejrzeć zawartość pliku za pomocą edytora zwykłego lub binarnego

q          należy wyszukać jakiekolwiek łańcuchy znaków lub charakterystyczne znaczniki (jakie? – za chwilę jeszcze o tym wspomnę)

q          z takimi informacji można już próbować odnaleźć aplikację

 

Innym problemem jest sytuacja, w  której znamy typ i zawartość pliku natomiast nie znamy jego prawdziwej struktury. W takiej sytuacji znajdujesz się jeśli jesteś programistą chcącym obsługiwać w programie pliki o różnych formatach. Dotarcie do specyfikacji opisującej format danego pliku nie jest łatwe. Autorzy programów je obsługujących raczej niechętnie udostępniają owoce swojej pracy, a jeśli już – to zwykle są to dane dość ubogie. W praktyce wystarczają one np. do identyfikacji pliku czy też sprawdzenia jego poprawności. Czasem udostępnianie formatu pliku objęte jest specjalnymi unormowaniami prawnymi (np. licencje). W niektórych przypadkach do opisu formatu pliku dołączane są algorytmy zapisane w jakimś języku wyższego poziomu (C, Pascal),  za pomocą których można poprawnie obsłużyć plik (opis kompresji, liczenie sum kontrolnych itp. itd.), jednak jest to raczej rzadkość.

Na koniec kilka uwag ogólnych na temat wyszukiwania charakterystycznych łańcuchów tekstu, znaczników oraz pobieżnego określania struktury pliku:

q          w plikach o dużych rozmiarach można na początku próbować wyszukiwać sensownie brzmiące łańcuchy („program”, „Copyright”, „Author”, „coded”, „packed”, „software”  itp. itd.)

q          można w pliku szukać innych nazw plików, a także ścieżek do nich prowadzących

q          niektóre pliki posiadają strukturę widoczną „gołym okiem” (powtarzające się sekwencje danych)

q          pliki używane przez stare programy są zwykle plikami typu .RAW, czyli zawierają dane nieskompresowane, w postaci takiej w jakiej używane są w aplikacji

q          im plik jest starszy, tym ma prostszą strukturę

q          pliki tworzone jako archiwa mają zwykle charakterystyczne ciągi sygnatur na samym początku pliku (każdy posiada nagłówek)

q          pliki graficzne składają się zwykle z nagłówka, danych obrazka oraz palety

q          pliki muzyczne składają się zwykle z nagłówka, sampli (próbek) oraz danych dla poszczególnych kanałów muzycznych (układ danych można uznać za charakterystyczny)

q          jeśli plik zawiera tylko wyłącznie zawiłe „krzaczki” to jest z reguły skompresowany

q          jeśli dane pliku graficznego nie są skompresowane to: paletę można rozpoznać zwykle po podobnych do siebie sekwencjach bajtów (zwykle paleta jest zapisana liniowo)

q          warto pamiętać, iż informacje o aplikacji obsługującej dany plik najprościej znaleźć jest w Sieci Internet (polecam np. grupy dyskusyjne)

4      Używane skróty i konwencje

Na szczęście nie ma ich zbyt dużo.

Wszystkie liczby oprócz numerów bitów są zapisywane w systemie szesnastkowym – w przypadku zaś użycia innego systemu liczbowego – zostało to wyraźnie zaznaczone w tekście.

W opisie formatów plików użyte zostały następujące skróty i oznaczenia:

              =              określa jak jest wyliczana wartość danego pola

np.:              „=[0004]+długość (nazwa pliku)+1” określa wartość pola jako sumę danej z pola o offsecie 4 oraz długości pliku i 1 (dla zera na końcu ASCIIZ)

              ==?              określa sytuację jeśli dana wartość jest równa zadanej ?

np.:              „==0 to koniec danych” opisuje znaczenie danego pola jeśli jest ono równe zero, w tym wypadku oznacza koniec danych

              [????]              oznacza odwołanie się w tekście do wartości z zadanego ofsetu

np.:              „[0008]” oznacza, iż odwołujemy się do pola o ofsecie 8 w opisywanej strukturze danych

              ASCIIZ              łańcuch znaków zakończony znakiem NULL

              białe znaki              wszystki znaki niewidoczne na ekranie czyli np.: spacja, znak tabulacji, CR, LF

              #??              oznaczenie znaku o numerze ??

              CR              oznaczenie znaku sterującego: powrót karetki (#13)

              EOF              oznaczenie znaku sterującego: koniec pliku (#26)

              LF              oznaczenie znaku sterującego: przejście do następnej linii (#10)

              NULL              oznaczenie znaku sterującego: używany np.: jako znacznik końca tekstu ASCIIZ (#00)

              filespec              określa nazwę pliku bez ścieżki

np.:              dla pliku „/dokumenty/przykład.txt” filespec to „przykład.txt”

              wolumin              osobny plik będący integralną część jakiejś grupy powiązanych ze sobą plików np.: archiwum


120

              Adam Błaszczyk, Encyklopedia rozszerzeń i formatów plików

 

 

.edq

 

5      ENCYKLOPEDIA

!#$&) @_~

.!!!

Opis

Zwykle plik README.!!!

.###

Opis

...

Zgłoś jeśli naruszono regulamin