GNU/Linux >> Znalost Linux >  >> Linux

Linux – Jak otestovat, zda byl binární soubor Linuxu zkompilován jako kód nezávislý na pozici?

Nedávno jsem se dozvěděl, že (alespoň na Fedoře a Red Hat Enterprise Linuxu) spustitelné programy, které jsou kompilovány jako Position Independent Executables (PIE), dostávají silnější ochranu před náhodným umístěním adresního prostoru (ASLR).

Takže:Jak otestuji, zda byl konkrétní spustitelný soubor zkompilován jako spustitelný soubor nezávislý na pozici v systému Linux?

Přijatá odpověď:

Můžete použít perl skript obsažený v hardening-check balíček, dostupný ve Fedoře a Debianu (jako hardening-includes ). Přečtěte si tuto wiki stránku Debianu, kde najdete podrobnosti o tom, jaké příznaky kompilace jsou kontrolovány. Je to specifické pro Debian, ale teorie platí i pro Red Hat.

Příklad:

$ hardening-check $(which sshd)
/usr/sbin/sshd:
 Position Independent Executable: yes
 Stack protected: yes
 Fortify Source functions: yes (some protected functions found)
 Read-only relocations: yes
 Immediate binding: yes

Linux
  1. Jak otestovat balíček bez jeho instalace v Linuxu

  2. Jak kódovat modul jádra Linuxu?

  3. Jak převést linuxový spustitelný soubor (binární) na soubor Windows exe?

  1. Jak Linux připravil školní pandemii

  2. Jak učení Linuxu je náš jazyk lásky

  3. Jak nainstalovat a otestovat Ansible na Linuxu

  1. Linux – Jak otestovat, zda je blokové zařízení pouze pro čtení z /sys nebo /proc?

  2. Jak rozebrat, upravit a poté znovu sestavit spustitelný soubor Linuxu?

  3. Jak rozebrat binární spustitelný soubor v Linuxu, abyste získali kód sestavení?