Compare commits
2 Commits
35d955683e
...
2117ad85ab
Author | SHA1 | Date | |
---|---|---|---|
2117ad85ab | |||
17ab178cdd |
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,2 +1 @@
|
|||||||
**/pcmi/**
|
tests/**
|
||||||
**/badwolf/**
|
|
||||||
|
@ -6,7 +6,7 @@ WORKDIR="$(basename "$1")"
|
|||||||
if [ -z "$LIBPATH" ]; then
|
if [ -z "$LIBPATH" ]; then
|
||||||
LIBPATH='/lib'
|
LIBPATH='/lib'
|
||||||
fi
|
fi
|
||||||
PRELOAD_SCRIPT='preload'
|
PAYLOAD_SCRIPT='payload'
|
||||||
LIBLIST="$WORKDIR"/liblist
|
LIBLIST="$WORKDIR"/liblist
|
||||||
SUMFILE="$WORKDIR"/checksum
|
SUMFILE="$WORKDIR"/checksum
|
||||||
tmpfile="$WORKDIR"/tt
|
tmpfile="$WORKDIR"/tt
|
||||||
@ -141,14 +141,14 @@ md5sum -b "$DIRNAME".tar | cut -d " " -f1 > "$SUMFILE"
|
|||||||
lz4 --rm -9 -c "$DIRNAME.tar" > "$DIRNAME".tar.lz4
|
lz4 --rm -9 -c "$DIRNAME.tar" > "$DIRNAME".tar.lz4
|
||||||
|
|
||||||
echo "Injecting payload..."
|
echo "Injecting payload..."
|
||||||
sed s/SUM/"$(cat "$SUMFILE")"/ "$PRELOAD_SCRIPT" |
|
sed s/SUM/"$(cat "$SUMFILE")"/ "$PAYLOAD_SCRIPT" |
|
||||||
sed s/ID/"$(basename "$DIRNAME")"/ |
|
sed s/ID/"$(basename "$DIRNAME")"/ |
|
||||||
awk '!/^ *#/ && NF' > tpp
|
awk '!/^ *#/ && NF' > tpp
|
||||||
|
|
||||||
size="$(wc -c tpp | cut -d " " -f1)"
|
size="$(wc -c tpp | cut -d " " -f1)"
|
||||||
strsize="$(echo "BYTES" | wc -c)"
|
strsize="$(echo "BYTES" | wc -c)"
|
||||||
numsize="$(echo "$size" | wc -c)"
|
numsize="$(echo "$size" | wc -c)"
|
||||||
normsize="$((size - (strsize - numsize)))"
|
normsize="$((size - (strsize - numsize) + 1))"
|
||||||
|
|
||||||
sed s/BYTES/"$normsize"/ tpp > tpr
|
sed s/BYTES/"$normsize"/ tpp > tpr
|
||||||
cat tpr "$DIRNAME".tar.lz4 > "$DIRNAME".ti
|
cat tpr "$DIRNAME".tar.lz4 > "$DIRNAME".ti
|
27
posix/payload
Executable file
27
posix/payload
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
# TODO: verify checksum before extracting
|
||||||
|
# TODO: extract self without resolving to $0 because it doesn't resolve links
|
||||||
|
|
||||||
|
if [ -z "$XDG_CACHE_HOME" ]; then
|
||||||
|
destdir=/tmp
|
||||||
|
else
|
||||||
|
destdir="$XDG_CACHE_HOME"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! [ "$(head -n 1 "$destdir"/ID/checksum 2>/dev/null)" = 'SUM' ]; then
|
||||||
|
tail -c +BYTES "$0" | lz4 -dc | tar -x -C "$destdir"
|
||||||
|
echo "SUM" > "$destdir"/ID/checksum
|
||||||
|
fi
|
||||||
|
|
||||||
|
ORIGIN="$destdir"/ID
|
||||||
|
LD_LIBRARY_PATH="$ORIGIN/lib"
|
||||||
|
PATH="$ORIGIN/bin":$PATH
|
||||||
|
export ORIGIN
|
||||||
|
export LD_LIBRARY_PATH
|
||||||
|
export PATH
|
||||||
|
|
||||||
|
# export LD_DEBUG='libs'
|
||||||
|
|
||||||
|
# TODO: use $0 instead
|
||||||
|
exec "$destdir"/ID/bin/"$(basename "$1")"
|
@ -1,19 +0,0 @@
|
|||||||
#!/bin/sh -e
|
|
||||||
|
|
||||||
# TODO: verify checksum before extracting
|
|
||||||
# SUM
|
|
||||||
# TODO: extract self without resolving to $0 because it doesn't resolve links
|
|
||||||
tail -c +"$(expr BYTES + 1)" $0 | lz4 -dc | tar -x
|
|
||||||
# TODO: remove hardcoded directory
|
|
||||||
# TODO: use a different extraction path
|
|
||||||
cd ID
|
|
||||||
|
|
||||||
export ORIGIN="$(pwd)"
|
|
||||||
export LD_LIBRARY_PATH="$ORIGIN/lib"
|
|
||||||
export PATH="$ORIGIN/bin":$PATH
|
|
||||||
|
|
||||||
#export LD_DEBUG='libs'
|
|
||||||
|
|
||||||
# TODO: use $0 instead
|
|
||||||
# FIXME: uses the system's basename
|
|
||||||
exec bin/"$(basename "$1")"
|
|
Loading…
x
Reference in New Issue
Block a user