GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Wie testet man, ob eine Linux-Binärdatei als positionsunabhängiger Code kompiliert wurde?

Ich habe kürzlich erfahren, dass (zumindest auf Fedora und Red Hat Enterprise Linux) ausführbare Programme, die als Position Independent Executables (PIE) kompiliert sind, einen stärkeren Schutz vor Adressraum-Randomisierung (ASLR) erhalten.

Also:Wie teste ich unter Linux, ob eine bestimmte ausführbare Datei als Position Independent Executable kompiliert wurde?

Akzeptierte Antwort:

Sie können den perl verwenden Skript, das im hardening-check enthalten ist Paket, verfügbar in Fedora und Debian (als hardening-includes ). Lesen Sie diese Debian-Wiki-Seite für Details darüber, welche Kompilier-Flags überprüft werden. Es ist Debian-spezifisch, aber die Theorie gilt auch für Red Hat.

Beispiel:

$ 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. Linux – Wie testet man, ob ein Blockgerät von /sys oder /proc aus schreibgeschützt ist?

  2. Wie kodiere ich ein Linux-Kernel-Modul?

  3. Wie konvertiert man eine ausführbare Linux-Datei (binär) in eine Windows-Exe-Datei?

  4. Wie kann man feststellen, ob eine Linux-Binärdatei 32-Bit oder 64-Bit ist?

  5. Wie kann ich eine nicht vertrauenswürdige ausführbare Datei sicher unter Linux ausführen?

Wie ich Tetris auf dem Mainframe spiele

Wie der Linux-Desktop gewachsen ist

So installieren und testen Sie Ansible unter Linux

So verwenden Sie Bash-Dateitestoperatoren in Linux

Wie man eine Datei unter Linux ausführbar macht

Läuft eine ausführbare Linux-Datei, die auf einer Linux-Variante kompiliert wurde, auf einer anderen?