|
|
|
@ -9,6 +9,10 @@ BLUE='\033[0;34m'
|
|
|
|
CYAN='\033[0;36m'
|
|
|
|
CYAN='\033[0;36m'
|
|
|
|
NC='\033[0m' # No Color
|
|
|
|
NC='\033[0m' # No Color
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo() {
|
|
|
|
|
|
|
|
printf "$@\n"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
echoinfo() {
|
|
|
|
echoinfo() {
|
|
|
|
echo "${BLUE}$@${NC}"
|
|
|
|
echo "${BLUE}$@${NC}"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -23,7 +27,7 @@ echoerr() {
|
|
|
|
|
|
|
|
|
|
|
|
missing=""
|
|
|
|
missing=""
|
|
|
|
for cmd in wget tar xz uname mktemp rm mkdir ln grep; do
|
|
|
|
for cmd in wget tar xz uname mktemp rm mkdir ln grep; do
|
|
|
|
if ! command -v $cmd >/dev/null 2>&1; then
|
|
|
|
if ! command -v $cmd > /dev/null 2>&1; then
|
|
|
|
missing="$missing$cmd "
|
|
|
|
missing="$missing$cmd "
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
done
|
|
|
|
@ -97,9 +101,9 @@ if [ -t 0 ]; then
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
case "$TYPE" in
|
|
|
|
case "$TYPE" in
|
|
|
|
pwndbg-gdb) BINARY_NAME="pwndbg" ;;
|
|
|
|
pwndbg-gdb) BINARY_NAME="pwndbg" ;;
|
|
|
|
pwndbg-lldb) BINARY_NAME="pwndbg-lldb" ;;
|
|
|
|
pwndbg-lldb) BINARY_NAME="pwndbg-lldb" ;;
|
|
|
|
*)
|
|
|
|
*)
|
|
|
|
echoerr "Please choose the type of Pwndbg installation."
|
|
|
|
echoerr "Please choose the type of Pwndbg installation."
|
|
|
|
show_usage
|
|
|
|
show_usage
|
|
|
|
;;
|
|
|
|
;;
|
|
|
|
@ -128,15 +132,18 @@ else
|
|
|
|
BINARY_DST_PATH="${BINARY_DIR}/${BINARY_NAME}"
|
|
|
|
BINARY_DST_PATH="${BINARY_DIR}/${BINARY_NAME}"
|
|
|
|
|
|
|
|
|
|
|
|
# If we are a root in a container and `sudo` doesn't exist
|
|
|
|
# If we are a root in a container and `sudo` doesn't exist
|
|
|
|
if ! command -v sudo >/dev/null 2>&1 && whoami | grep -q root; then
|
|
|
|
if ! command -v sudo > /dev/null 2>&1 && whoami | grep -q root; then
|
|
|
|
sudo() {
|
|
|
|
sudo() {
|
|
|
|
${*}
|
|
|
|
${*}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
echoinfo "Requesting 'sudo' privileges. You may be prompted for your password..."
|
|
|
|
|
|
|
|
sudo -v
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
case "$OS" in
|
|
|
|
case "$OS" in
|
|
|
|
Linux)
|
|
|
|
Linux)
|
|
|
|
case "$ARCH" in
|
|
|
|
case "$ARCH" in
|
|
|
|
x86_64) FILE="${BINARY_NAME}_${VERSION}_x86_64-portable.tar.xz" ;;
|
|
|
|
x86_64) FILE="${BINARY_NAME}_${VERSION}_x86_64-portable.tar.xz" ;;
|
|
|
|
i686) FILE="${BINARY_NAME}_${VERSION}_x86_32-portable.tar.xz" ;;
|
|
|
|
i686) FILE="${BINARY_NAME}_${VERSION}_x86_32-portable.tar.xz" ;;
|
|
|
|
@ -153,10 +160,9 @@ Linux)
|
|
|
|
;;
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
esac
|
|
|
|
;;
|
|
|
|
;;
|
|
|
|
Darwin)
|
|
|
|
Darwin)
|
|
|
|
case "$ARCH" in
|
|
|
|
case "$ARCH" in
|
|
|
|
# arm64) FILE="${BINARY_NAME}_${VERSION}_macos_arm64-portable.tar.xz" ;;
|
|
|
|
arm64) FILE="${BINARY_NAME}_${VERSION}_macos_arm64-portable.tar.xz" ;;
|
|
|
|
arm64) FILE="${BINARY_NAME}_${VERSION}_macos_amd64-portable.tar.xz" ;;
|
|
|
|
|
|
|
|
x86_64) FILE="${BINARY_NAME}_${VERSION}_macos_amd64-portable.tar.xz" ;;
|
|
|
|
x86_64) FILE="${BINARY_NAME}_${VERSION}_macos_amd64-portable.tar.xz" ;;
|
|
|
|
*)
|
|
|
|
*)
|
|
|
|
echoerr "Unsupported architecture: $ARCH"
|
|
|
|
echoerr "Unsupported architecture: $ARCH"
|
|
|
|
@ -164,7 +170,7 @@ Darwin)
|
|
|
|
;;
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
esac
|
|
|
|
;;
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
*)
|
|
|
|
echoerr "Unsupported operating system: $OS"
|
|
|
|
echoerr "Unsupported operating system: $OS"
|
|
|
|
exit 1
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
;;
|
|
|
|
|