Binääritiedosto

Binääritiedosto on tietokoneen luettavaksi tarkoitettu tiedosto, joka voi sisältää millaista tietoa tahansa. Siihen voi olla tallennettuna esimerkiksi kuvia, tekstiä tai ääntä. Binäärimuotoiset dokumenttitiedostot, kuten .doc-tiedostot, sisältävät sekä dokumentin tekstin että muotoiluohjeet tiedoston tuottaneen tietokoneohjelman ymmärtämässä muodossa. Binääritiedoston näennäinen vastakohta on tekstitiedosto (ASCII, EBCDIC tai muuta merkistöä käyttävä tiedosto), josta ohjelmalla voidaan muuttaa binääriluvut kirjaimiksi. Tekstitiedostossa merkistön ulkopuolista muotoilutietoa ei ole. Sinänsä kaikki tietokonetiedostot ovat binääritiedostoja, jotka tarvitsevat ohjeen tai standardin, jonka mukaan sen sisältö voidaan tulkita.[1]

Heksadumppi 318 tavuisesta Wikipedian faviconista, tai . Ensimmäinen palsta osoittaa aloitusosoitteen, kun* osoittaa toiston.

Rakenne

muokkaa

Binääritiedostoa ajatellaan usein jaksona tavuja, mikä tarkoittaa, että binääriluvut eli bitit ovat kahdeksan ryhmissä. Binääritiedosto voidaan esittää tekstinä, mutta yleensä se on tarkoitettu tulkittavaksi jollakin muulla tapaa, kuten kuvana tai äänenä. Käännetyt tietokoneohjelmat ovat tyypillinen esimerkki: käännettyjä ohjelmatiedostoja kutsutaan myös binääritiedostoiksi.[2]

Usein binääritiedostot sisältävät headereja ("otsikoita"), jotka sisältävät metatietoa tiedostomuodosta ja sisällöstä, jota tarvitaan tiedon esittämiseen. Metatiedot voidaan tallentaa esimerkiksi IFF-muodon käyttämällä tavalla, jolloin tiedostossa on useita lohkoja (chunk) tietoja varten. Lohkojen alussa on lohkon koko sekä sen sisältämän tiedon tunniste.[3] Executable and Linkable Format (ELF) -tiedostomuoto sisältää tietoa siinä olevassa ajettavasta ohjelmasta.[4] Jotkin kuvatiedostomuodot kuten GIF-tiedostot voivat sisältää useita kuvia, jolloin headereita käytetään erottamaan kuvat toisistaan.

Katselu

muokkaa

Katseluun tarvitaan tiedostomuotoa tukevaa katseluohjelmaa tai niin sanottua heksaeditoria. Näin voidaan nähdä tiedosto jaksona heksadesimaalisia (tai desimaalisia, binäärisiä tai ASCII-merkkejä) arvoja vastaaville tavuille binääritiedostossa.

Jos binääritiedosto avataan tekstieditorissa, jokainen kahdeksan bitin ryhmä käännettäisiin merkiksi, ja tulos on luultavimmin käsittämätöntä merkkijonoa. Jos tiedosto avataan jossain muussa ohjelmassa, sillä ohjelmalla on oma tapansa kääntää jokainen tavu: esimerkiksi ohjelma saattaa käsitellä joka tavun numerona jolloin näytetään sarja lukuja 0:n ja 255:n väliltä, tai jokainen tavu saattaa vastata väriä ja näyttää vastaavan kuvan. Muunlaiset katseluohjelmat vain korvaavat lukukelvottomat merkit väleillä ja näyttävät vain luettavan tekstin. Tätä voidaan käyttää pikaiseen tarkasteluun esimerkiksi piilotetun tekstin ei-tekstitiedostoista löytämiseen tai hävinneen datan palauttamiseen. Sitä voidaan käyttää jopa epäilyttävien tiedostojen tutkimiseen ei-toivottujen vaikutusten varalta.

Ohjelmatiedostot

muokkaa

Kun binääritiedosto käsitellään ohjelmana ja suoritetaan, niin käyttöjärjestelmä tunnistaa tiedoston taikanumeron avulla esimerkiksi ELF-muotoiseksi ja lukee headereista prosessin luomiseen ja mahdollisten jaettujen kirjastojen lataamiseen ja linkitykseen tarvittavia tietoja. Tämän jälkeen suoritin alkaa ajamaan tiedostosta ladattua konekieltä. [4] Joissakin käyttöjärjestelmissä (esim. MS-DOS COM-tiedostot) ohjelmatiedostot voivat olla ilman minkäänlaista tunnistetta tai metatietoa, ja ne tulkitaan sarjaksi konekielikäskyjä sellaisenaan. [5]

Tulkinta

muokkaa

Standardit ovat olennaisia binääritiedostoille. Esimerkiksi ASCII-merkistön pohjalta tulkittu binääritiedosto johtaa ASCII-merkistön mukaisen tekstin näyttämiseen. Ohjelma voi tulkita tiedoston eri tavalla: tavu voi olla ääni, pikseli, tai jopa kokonainen sana. Binääritiedoston sisältö sellaisenaan on merkityksetöntä ilman sen sisältöä tulkitsevaa algoritmia. Siten, vain binäärin tutkiminen sen tarkoituksen määrittämiseksi voi johtaa väärään tulokseen. Tällaista lähestymistä käytetään steganografiassa, missä algoritmi tulkitsee binääridatan eri tavoin paljastaakseen piilotetun datan. Ilman algoritmia on mahdotonta todistaa, että piilotettu data on olemassa.

Lähteet

muokkaa
  1. http://www.webopedia.com/TERM/B/binary_file.html
  2. Jukka K. Korpela: Ohjelmointi jkorpela.fi. Viitattu 14.7.2018.
  3. IMOD Binary File Format. Version 1, Revision 2 bio3d.colorado.edu. Viitattu 16.5.2024. (englanniksi)
  4. a b Executable and Linkable Format (ELF) (PDF) cs.cmu.edu. Viitattu 16.5.2024. (englanniksi)
  5. Somerson, Paul: ”COM vs. EXE”, DOS Power Tools: Techniques, Tricks and Utilities, s. 368. Bantam Books, 1988.