> For the complete documentation index, see [llms.txt](https://nskarapetyants.gitbook.io/linux-hevd-tutorial/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nskarapetyants.gitbook.io/linux-hevd-tutorial/laboratornaya-rabota-1/kernel-build/zadanie/sborka-zagruzhaemogo-modulya.md).

# Сборка загружаемого модуля

Для сборки модуля ядра необходимо скачать его исходный код с удаленного репозитория Github. Скачивание данных осуществляется с помощью утилиты `git` . Пакет для её установки имеет одноименное название.&#x20;

## Настройка рабочего окружения

В первую очередь необходимо перейти в домашнюю директорию `/home/vagrant/`, иначе необходимые зависимости для сборки модуля не установятся.

Чтобы скачать файлы из репозитория достаточно выполнить следующую команду:&#x20;

```
$ git clone --depht=1 https://github.com/kolyandaemon/linux-hevd.git
```

После её выполнения в текущей директории появиться папка "linux-hevd" . Далее чтобы установить все программные пакеты необходимо выполнить данную команду:&#x20;

```
$ sh /home/vagrant/linux-hevd/scripts/install_package.sh
```

В случае её успешного  выполнения виртуальная машина перезагрузится.

## Сборка загружаемого модуля

Собрать можно два варианта модуля. Один будет содержать уязвимости, а другой их исправление. На данном этапе будет демонстрироваться сборка уязвимой версии модуля.

Для начала необходимо перейти в директорию `/home/vagrant/linux-hevd/builder` и запустить скрипт сборки уязвимой версии модуля:&#x20;

```
$ sh ./Build_HEVD_Vulnerable_x64.sh
```

В случае успешной сборки модуля ядра бинарный файл `hevd.ko` модуля появиться в директории `/home/vagrant/linux-hevd/output/vulnerable/x64/`.&#x20;

## Установка модуля

Установка модуля осуществляется с помощью команды `insmod`. Установить модуль можно только с правами администратора.  В данном случае полная команда будет выглядеть следующим образом:&#x20;

```
$ sudo insmod /home/vagrant/linux-hevd/output/vulnerable/x64/hevd.ko
```

В случае успешной установки программа ничего не выведет. А для того чтобы проверить статус инициализации модуля в ядре достаточно выполнить команду `dmesg` .

Для того чтобы не возникало проблем при взаимодействии с модулей необходимо установить соответствующие права:&#x20;

```
$ sudo chmod 777 /dev/hevd
$ sudo chown vagrant:vagrant /dev/hevd
```

На данном этапе рекомендуется сделать снимок виртуальной машины, поскольку далее будет осуществляется прямое взаимодействие с модулем.

## Автоматическая настройка виртуального окружения&#x20;

Осуществлять каждый раз настройку не имеет никакого смысла в случае использования Vagrant. Для выполнения всех вышеописанных действий, за исключением сборки модуля, достаточно скачать последнюю версию Vagrantfile по ссылке: <https://github.com/kolyandaemon/linux-hevd/releases> . После переместить скачанный файл в пустую директорию и выполнить команду `vagrant up`.&#x20;
