This patch adds logic to check for a position independent executable
and will refuse to run if the executable does not look to be PIE.
An option --ignorepie exists to suppress this check (for example if
for some reason the check is not valid on different architectures).
This may not fix retrowrite in all cases. In particular there appears to be multiple "retrowrite" commands, both librw/rw.py and retrowrite itself. There should not be as this is just a maintenance nightmare.
You can add multiple binary entrypoints in the setup.py of a python setuptools project, i.e. here is my WIP for Halucinator:
This patch adds logic to check for a position independent executable and will refuse to run if the executable does not look to be PIE.
An option --ignorepie exists to suppress this check (for example if for some reason the check is not valid on different architectures).
This may not fix retrowrite in all cases. In particular there appears to be multiple "retrowrite" commands, both librw/rw.py and retrowrite itself. There should not be as this is just a maintenance nightmare.
You can add multiple binary entrypoints in the
setup.py
of a python setuptools project, i.e. here is my WIP for Halucinator:these will all be binaries installed to the system (or pip virtualenv) which will also avoid the link step in setup.sh.
cc @gannimo