mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 03:27:39 +00:00
b46ac13504
Files beginning with "MZqFpD" are Actually Portable Executables, which have a printf statement in the first 4096 bytes with octal codes that specify the ELF header. APE also specifies `jartsr='` as an alternative prefix, intended for binaries that do not want to be identified as Windows executables. Like the \177ELF magic, all these prefixes decode as x86 jump instructions that could be used for 16-bit bootloaders or 32-bit / 64-bit flat executables. Most importantly they provide a fallback path for Thompson shell copmatible command interpreters, which do not require a shebang, e.g. bash, zsh, fish, bourne, almquist, etc. Please note that in order to meet the requirements of POSIX.1, the single quote must be followed by a newline character, before any null bytes occur. See also: https://www.austingroupbugs.net/view.php?id=1250
26 lines
547 B
Bash
Executable file
26 lines
547 B
Bash
Executable file
#!/bin/sh
|
|
|
|
if [ "$UID" = "0" ]; then
|
|
SUDO=
|
|
else
|
|
SUDO=sudo
|
|
fi
|
|
|
|
{
|
|
echo
|
|
echo "APE Uninstaller intends to run (in pseudo-shell)"
|
|
echo
|
|
echo " sudo echo -1 into /proc/sys/fs/binfmt_misc/APE*"
|
|
echo " sudo rm -f /usr/bin/ape ~/.ape o/tmp/.ape /tmp/.ape"
|
|
echo
|
|
echo "You may then use ape/apeinstall.sh to reinstall it"
|
|
echo
|
|
} >&2
|
|
|
|
set -ex
|
|
for f in /proc/sys/fs/binfmt_misc/APE*; do
|
|
if [ -f $f ]; then
|
|
$SUDO sh -c "echo -1 >$f" || exit
|
|
fi
|
|
done
|
|
$SUDO rm -f /usr/bin/ape ~/.ape o/tmp/.ape o/tmp/ape /tmp/.ape /tmp/ape || exit
|