aboutsummaryrefslogtreecommitdiff
blob: 5616a8c61f234de568af2e34361d19e01dd7f4fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Utilities to modify Elf binaries to work with PaX hardened kernel.
There are several utilities in here, to help you navigate:

Directories src/ scripts/ doc/ test/ are integral parts of the elfix package.
These are distributed as one source tarball with `make dist` run in the top
diretory.
    * paxctl-ng - C utility for doing XT_PAX and/or PT_PAX markings.
    * pypaxctl - python utility for doing XT_PAX and/or PT_PAX markings.  Depends on pax.so.
    * migrate-pax - python utility for migrating from XT_PAX flags to PT_PAX.  Depends on pax.so.
    * revdep-pax - python utility for mapping ELF libraries to/from the ELF objects that link
      against them and migrating PAX flags between them.  Depends on pax.so.
    * paxmark.sh - Bash script that does intelligent pax-marking like the pax-utils.eclass.
    * paxmodule.c - C code for python module pax.so

Directories under misc/ are independant packages from one another and from the
elfix package.  They are NOT distributed with elfix when running `make dist` in
the top directory.  Each directory supplies its own build system.
    * install-xattr - C wrapper to coreutils' install which preserves file system extended attributes.
    * fix-gnustack - query or clear any ELF GNU_STACK executable flag

Directory pocs/ - Very experimental stuff.
    * change-interp - C utility to the dynamic linker, INTERP as reported by `readelf -l`.
    * eclass - a local copy of the pax-utils.eclass
    * elf-manipulate - some dirty utilities to
        * clear-dt-path.c - remove RPATH and RUNPATH
        * parse-elf.c - print out the ELF header, sections headers and program headers.
        * print-sections.c - print out the contents of the section headers
        * remove-ptpax.c - change a PT_PAX_FLAGS phdr to PT_NULL
    * ldd - python script to reproduce ldd's output using pyelftools
    * link-maps - use VDB information to produce a full linkage map of the system
    * mangle-paxflags - printout old EI_PAX flags and PT_PAX flags
    * paxmark-libs - test how PAX flags migrate from libraries and plugins to their consumers
    * revdep-pax-ng - same as revdep-pax but using information obtained from `ldd` and
      not VDB information.


## Repoman status
[![Repoman Status](https://travis-ci.org/gentoo/elfix.png)](https://travis-ci.org/gentoo/elfix)