Linker, loader en uitvoerbare formaten
Wat is de belangrijkste reden om een uitvoerbaar bestand als PIE (position-independent executable) te bouwen?
- AOm het uitvoerbare bestand op elk OS te laten werken
- BOm alle bibliotheken in het uitvoerbare bestand op te nemen
- CZodat ook de code van het uitvoerbare bestand zelf met ASLR bij elke uitvoering op een ander adres kan worden geplaatst
Antwoord en toelichting tonen
Antwoord: C. Zodat ook de code van het uitvoerbare bestand zelf met ASLR bij elke uitvoering op een ander adres kan worden geplaatst
Oude uitvoerbare bestanden werden gemaakt in de veronderstelling dat ze op een vast adres worden geladen, dus ook met ASLR konden alleen bibliotheken en stack worden verschoven en waren de adressen van de hoofdcode bij aanvallers bekend. PIE maakt ook de hoofdcode als position-independent code die overal werkt, zodat ook de adressen van de hoofdcode willekeurig kunnen zijn. Veel huidige Linux-distributies gebruiken PIE standaard.
Verder: nog 9 vragen over Linker, loader en uitvoerbare formaten