Slijede razlike između dviju inačica stranice.
Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
racfor_wiki:seminari:analiza_datotecnog_formata_elf [2023/01/13 00:19] mf51454 [Primjer 1] |
racfor_wiki:seminari:analiza_datotecnog_formata_elf [2023/06/19 18:17] (trenutno) |
||
---|---|---|---|
Redak 1: | Redak 1: | ||
===== Sažetak ===== | ===== Sažetak ===== | ||
- | Format ELF (engl. // | + | Format ELF (engl. // |
===== Uvod ===== | ===== Uvod ===== | ||
Redak 45: | Redak 46: | ||
Konkretnije, | Konkretnije, | ||
+ | |||
+ | Detaljniji opis strukture tablice //program header table// može se pronaći u [1] i [2]. | ||
==== Section header table ==== | ==== Section header table ==== | ||
Redak 56: | Redak 59: | ||
* //.bss// - predstavlja neinicijalizirane statičke varijable. | * //.bss// - predstavlja neinicijalizirane statičke varijable. | ||
+ | Detaljniji opis strukture tablice //section header table// može se pronaći u [1] i [2]. | ||
===== Analiza ELF datoteke ===== | ===== Analiza ELF datoteke ===== | ||
Redak 85: | Redak 88: | ||
Ovaj primjer ilustrira analizu tipa ELF datoteke. Naime, promatranjem vrijednosti iz ELF zaglavlja moguće je odrediti radi li se o izvršnoj datoteci, objektnoj datoteci ili nekom drugom tipu datoteke. | Ovaj primjer ilustrira analizu tipa ELF datoteke. Naime, promatranjem vrijednosti iz ELF zaglavlja moguće je odrediti radi li se o izvršnoj datoteci, objektnoj datoteci ili nekom drugom tipu datoteke. | ||
- | Prevedimo za početak program '' | + | Prevedimo za početak program '' |
< | < | ||
Redak 175: | Redak 178: | ||
==== Primjer 2 ==== | ==== Primjer 2 ==== | ||
- | ===== Zaključak ===== | ||
+ | Ovaj primjer ilustrira razliku između statički povezane izvršne datoteke i dinamički povezane izvršne datoteke. | ||
+ | Statički povezanu izvršnu datoteku moguće je dobiti predajom zastavice '' | ||
+ | |||
+ | < | ||
+ | gcc -static hello.c -o hello_static | ||
+ | </ | ||
+ | |||
+ | Dobivenu datoteku najlakše je analizirati alatom '' | ||
+ | |||
+ | < | ||
+ | $ file hello_static | ||
+ | hello_static: | ||
+ | </ | ||
+ | |||
+ | Dinamički povezanu izvršnu datoteku zapravo ne treba posebno pripremati jer je to zadano ponašanje alata '' | ||
+ | |||
+ | Vidljivo je da alat '' | ||
+ | ===== Zaključak ===== | ||
+ | |||
+ | Kao što je pokazano na primjerima, iz ELF datoteka moguće je izvući brojne korisne informacije. Primjerice, može se identificirati tip datoteke ili arhitektura za koju je datoteka pripremljena. Od naprednijih pristupa, poznavanjem ulazne točke programa u kombinaciji s informacijama o segmentima, moguće je odrediti (ili barem procijeniti) kako će datoteka biti učitana u memoriju i na koje lokacije te kako će se ponašati prilikom izvršavanja. Dakako, moguće su još i razne druge, složenije analize. Razumijevanje strukture ELF datoteka stoga je vrijedna vještina za forenzičare. | ||
===== Literatura ===== | ===== Literatura ===== | ||
Redak 189: | Redak 211: | ||
[5] [[https:// | [5] [[https:// | ||
+ | |||
+ | [6] [[https:// | ||