Slijede razlike između dviju inačica stranice.
Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
racfor_wiki:seminari:analiza_pe_datoteka_iz_perspektive_forenzike [2023/01/12 19:18] ab51335 [Sections] |
racfor_wiki:seminari:analiza_pe_datoteka_iz_perspektive_forenzike [2024/12/05 12:24] (trenutno) |
||
---|---|---|---|
Redak 30: | Redak 30: | ||
Podsjetimo se, na kraju MZ headera specificirano je gdje započinje PE header. On je veličine 0x14 bajtova i prepoznaje se po magic bajtovima **0x50 0x45 0x00 0x00 (PE)** (označeni na slici 2.1). Unutar PE headera nalaze se informacije o ciljanoj arhitekturi za koju je izvršna datoteka namijenjena (i386, AMD64, MIPS, PowerPC, …), **broj sekcija PE datoteke**, vremenska oznaka kada je izvršna datoteka kompajlirana, | Podsjetimo se, na kraju MZ headera specificirano je gdje započinje PE header. On je veličine 0x14 bajtova i prepoznaje se po magic bajtovima **0x50 0x45 0x00 0x00 (PE)** (označeni na slici 2.1). Unutar PE headera nalaze se informacije o ciljanoj arhitekturi za koju je izvršna datoteka namijenjena (i386, AMD64, MIPS, PowerPC, …), **broj sekcija PE datoteke**, vremenska oznaka kada je izvršna datoteka kompajlirana, | ||
- | Sva polja PE header | + | Sva polja PE headera |
{{: | {{: | ||
Redak 50: | Redak 50: | ||
* broj podatkovnih direktorija (**NumberOfDataDirectories**) | * broj podatkovnih direktorija (**NumberOfDataDirectories**) | ||
- | Nakon toga u datoteci se nalazi navedeni broj podatkovnih direktorija (Data Directories) koji zapravo predstavljaju tablice koje Windows OS koristi za ispravno učitavanje datoteke u radnu memoriju. Za svaki podatkovni direktorij navedena je relativna virtualna adresa početka podatkovnog direktorija i njegova veličina u bajtovima (**RVA, Size**). Najčešći i najvažniji direktoriji su **export, import i resource directory**. Resource directory sadrži sve resurse koje PE datoteka koristi (npr. slike, ikone, informacije o verziji i autoru datoteke, prijevodi, | + | Nakon toga u datoteci se nalazi navedeni broj podatkovnih direktorija (Data Directories) koji zapravo predstavljaju tablice koje Windows OS koristi za ispravno učitavanje datoteke u radnu memoriju. Za svaki podatkovni direktorij navedena je relativna virtualna adresa početka podatkovnog direktorija i njegova veličina u bajtovima (**RVA, Size**). Najčešći i najvažniji direktoriji su **export, import i resource directory**. Resource directory sadrži sve resurse koje PE datoteka koristi (npr. slike, ikone, informacije o verziji i autoru datoteke, prijevodi, |
Sva polja Optional headera i nekoliko podatkovnih direktorija vidljivi su na slici 4.1. | Sva polja Optional headera i nekoliko podatkovnih direktorija vidljivi su na slici 4.1. | ||
Redak 82: | Redak 82: | ||
===== Export directory ===== | ===== Export directory ===== | ||
- | Export directory | + | Export directory najčešće |
* adresna tablica - sadrži relativne virtualne adrese na kojima započinju funkcije | * adresna tablica - sadrži relativne virtualne adrese na kojima započinju funkcije | ||
* tablica s pokazivačima na imena - abecedno poredana lista relativnih virtualnih adresa prema imenima funkcija | * tablica s pokazivačima na imena - abecedno poredana lista relativnih virtualnih adresa prema imenima funkcija | ||
- | * tablica rednih brojeva (ordinala) - lista vrijednosti od 2 bajta koje služe kao indeks u adresnu tablicu, redoslijed isti kao i u tablici pokazivača na imena | + | * tablica rednih brojeva (ordinala) - lista vrijednosti od 2 bajta koje služe kao indeks u adresnoj tablici, a redoslijed |
Izgled Export direktorija vidljiv je na slici 6.1. | Izgled Export direktorija vidljiv je na slici 6.1. | ||
Redak 96: | Redak 96: | ||
===== Import directory ===== | ===== Import directory ===== | ||
- | Import Directory opisuje dodatne ovisnosti koje trebaju programu za izvođenje u obliku skupine biblioteka i njihovih API-a. Svaki zapis je veličine 0x14 bajtova, opisuje jednu biblioteku, listu njenih funkcija koje je potrebno importati i mjesto u datoteci gdje su zapisane relativne virtualne adrese na koje se trebaju spremiti imena tih funkcija ili ordinala koji služe za pristup funkcijama. Korištenjem importa autor ne mora sam implementirat | + | Import Directory opisuje dodatne ovisnosti koje trebaju programu za izvođenje u obliku skupine biblioteka i njihovih API-a. Svaki je zapis veličine 0x14 bajtova |
Izgled Import direktorija vidljiv je na slici 7.1. | Izgled Import direktorija vidljiv je na slici 7.1. | ||
Redak 105: | Redak 105: | ||
===== Zaključak ===== | ===== Zaključak ===== | ||
- | Za ispravno izvršavanje datoteke potrebno je pohranjeni izvršni kod učitati u radnu memoriju. Format PE datoteke omogućuje loaderu da na točno određenim mjestima unutar datoteke pronađe potrebne informacije koje mu govore kako da to učini. Bez tih informacija ili sa krivo upisanim informacijama na tim mjestima, Windows operacijski sustav neće znati pokrenuti izvršnu datoteku. | + | Za ispravno izvršavanje datoteke potrebno je pohranjeni izvršni kod učitati u radnu memoriju. Format PE datoteke omogućuje loaderu da na točno određenim mjestima unutar datoteke pronađe potrebne informacije koje mu govore kako da to učini. Bez tih informacija ili s krivo upisanim informacijama na tim mjestima, Windows operacijski sustav neće znati pokrenuti izvršnu datoteku. |
===== Literatura ===== | ===== Literatura ===== | ||