-
Notifications
You must be signed in to change notification settings - Fork 257
/
Copy pathinstall.sh
executable file
·136 lines (115 loc) · 3.76 KB
/
install.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#!/bin/bash
set -e
trap error EXIT
error() {
apt-get --yes remove xen* || :
apt-get --yes remove libxen* || :
apt-get --yes remove drakvuf* || :
echo "An error was encountered while trying to install DRAKVUF"
exit 1
}
get_debian() {
VERSION=$1
case $VERSION in
buster)
wget -q https://github.com/tklengyel/drakvuf/releases/download/1.0/debian_10-slim_drakvuf-bundle-1.0-git20221220221439+068b10f-1-generic.deb
wget -q https://github.com/tklengyel/drakvuf/releases/download/1.0/debian_10-slim_xen-hypervisor-4.17.0-generic-amd64.deb
;;
bullseye)
wget -q https://github.com/tklengyel/drakvuf/releases/download/1.0/debian_11-slim_drakvuf-bundle-1.0-git20221220221439+068b10f-1-generic.deb
wget -q https://github.com/tklengyel/drakvuf/releases/download/1.0/debian_11-slim_xen-hypervisor-4.17.0-generic-amd64.deb
;;
*)
echo "Unsupported Debian version: $VERSION"
exit 1
;;
esac
}
get_ubuntu() {
VERSION=$1
case $VERSION in
focal)
wget -q https://github.com/tklengyel/drakvuf/releases/download/1.0/ubuntu_focal_drakvuf-bundle-1.0-git20221220221439+068b10f-1-generic.deb
wget -q https://github.com/tklengyel/drakvuf/releases/download/1.0/ubuntu_focal_xen-hypervisor-4.17.0-generic-amd64.deb
;;
jammy)
wget -q https://github.com/tklengyel/drakvuf/releases/download/1.0/ubuntu_jammy_drakvuf-bundle-1.0-git20221220221439+068b10f-1-generic.deb
wget -q https://github.com/tklengyel/drakvuf/releases/download/1.0/ubuntu_jammy_xen-hypervisor-4.17.0-generic-amd64.deb
;;
*)
echo "Unsupported Ubuntu version: $VERSION"
exit 1
;;
esac
}
get_packages() {
TARGET=$1
PACKAGE_DIR=$2
DISTRO=$(cat /etc/os-release | grep ID)
VERSION=$(cat /etc/os-release | grep VERSION_CODENAME)
DIR=$PWD
mkdir -p $PACKAGE_DIR
cd packages
if [ $TARGET == "LATEST" ]; then
debs=$(curl -s https://api.github.com/repos/tklengyel/drakvuf-builds/releases/latest | grep "browser_download_url.*deb" | awk '{ print $2 }' | tr -d '"')
for deb in $debs; do
if [ $(echo $deb | grep $DISTRO | grep $VERSION | wc -l) -ne 0 ]; then
wget -q $deb
fi
done
if [ $(ls -la *.deb 2>/dev/null | wc -l ) -eq 0 ]; then
echo "$DISTRO $VERSION is not supported by this script"
exit 1
fi
fi
if [ $TARGET == "STABLE" ]; then
case $DISTRO in
ubuntu)
get_ubuntu $VERSION
;;
debian)
get_debian $VERSION
;;
*)
echo "Unsupported distribution: $DISTRO"
exit 1
esac
fi
cd $DIR
}
#################
VERSION=${1:-"STABLE"}
PACKAGE_DIR=packages
if [ $1 == "--help" ] || [ $1 == "-h" ]; then
echo "./scripts/install.sh {STABLE|LATEST|<folder>}"
exit 0
fi
# Grab latest debs
if [ ! -d $VERSION ]; then
get_packages $VERSION $PACKAGE_DIR
else
PACKAGE_DIR=$VERSION
fi
# Install
apt-get update
apt-get --yes remove xen* libxen*
apt-get -f --yes install
for deb in $(ls $PACKAGE_DIR/*.deb); do
for p in $(dpkg -I $deb | grep Depends | awk -F':' '{ print $2 }' | tr -d ',' | tr -d '|'); do
apt-get --quiet --yes install $p || :
done
done
dpkg -i $PACKAGE_DIR/*xen*.deb
dpkg -i $PACKAGE_DIR/*drakvuf-bundle*.deb
apt-get -f --yes install
apt-get --quiet --yes install python3-pip python3-venv
python3 -m venv /opt/volatility3
source /opt/volatility3/bin/activate
pip3 install wheel construct pefile setuptools
cd /opt/volatility3
python3 setup.py build
python3 -m pip install .
echo "DRAKVUF was successfully installed"
echo "You should reboot your system now and pick Xen in your GRUB menu"
trap - EXIT
exit 0