111 lines
3.3 KiB
Markdown
111 lines
3.3 KiB
Markdown
# YACBA
|
||
|
||
Полностью автономная система для cold-boot атак с собственным загрузчиком.
|
||
|
||
## Что это?
|
||
|
||
Самостоятельная микро-ОС на флешке, которая загружается с нуля и дампит оперативную память. Не зависит от установленной системы на компьютере.
|
||
|
||
## Архитектура
|
||
|
||
**Система:**
|
||
- `bootloader.asm` - Загрузчик в стиле OpenBSD
|
||
- `kernel.c` - Минимальное ядро без зависимостей
|
||
- `gdt.asm`, `print32.asm`, `switch_pm.asm` - Системные компоненты
|
||
- `linker.ld` - Скрипт компоновки
|
||
|
||
**Сборка:**
|
||
- `Makefile` - Сборка всей системы
|
||
- `build.sh` - Нативная сборка Linux
|
||
- `docker-build.sh` - Кроссплатформенная сборка
|
||
- `build-iso.sh` - Создание ISO образа
|
||
|
||
**Утилиты:**
|
||
- `create_boot_usb.sh` - Прямое создание загрузочной флешки
|
||
- `extract_dump.sh` - Извлечение дампа с носителя
|
||
|
||
**CI/CD:**
|
||
- `.gitea/workflows/build.yml` - Автоматическая сборка и релизы
|
||
|
||
## Принцип работы
|
||
|
||
1. Загрузчик стартует с MBR (раздел 1 - 10MB)
|
||
2. Загружает ядро в память
|
||
3. Переключается в защищенный режим
|
||
4. Ядро сканирует и дампит память
|
||
5. Сохраняет дамп на раздел 2 (RAW, без ФС)
|
||
|
||
## Сборка
|
||
|
||
**На Linux:**
|
||
```bash
|
||
chmod +x build.sh
|
||
./build.sh
|
||
```
|
||
|
||
**На macOS/Windows (через Docker):**
|
||
```bash
|
||
chmod +x docker-build.sh
|
||
./docker-build.sh
|
||
```
|
||
|
||
## Создание носителя
|
||
|
||
**ISO образ (рекомендуется):**
|
||
```bash
|
||
chmod +x build-iso.sh
|
||
./build-iso.sh
|
||
# или
|
||
make iso
|
||
```
|
||
|
||
**Прямая запись на флешку:**
|
||
```bash
|
||
sudo ./create_boot_usb.sh /dev/sdX
|
||
```
|
||
|
||
**Через Docker + ISO:**
|
||
```bash
|
||
make docker-iso
|
||
```
|
||
|
||
Вставить флешку в целевую систему и перезагрузиться. Система загрузится автоматически и начнет дамп.
|
||
|
||
## Извлечение дампа
|
||
|
||
После использования:
|
||
```bash
|
||
sudo ./extract_dump.sh /dev/sdX
|
||
```
|
||
|
||
Скрипт автоматически извлечет дамп и выполнит базовый анализ.
|
||
|
||
## Использование ISO
|
||
|
||
**Запись ISO на флешку:**
|
||
```bash
|
||
sudo dd if=yacba-coldboot-20241222.iso of=/dev/sdX bs=1M status=progress
|
||
```
|
||
|
||
**Тестирование в VM:**
|
||
```bash
|
||
qemu-system-i386 -cdrom yacba-coldboot-20241222.iso
|
||
```
|
||
|
||
**Запись на CD/DVD:**
|
||
```bash
|
||
cdrecord -v dev=/dev/sr0 yacba-coldboot-20241222.iso
|
||
```
|
||
|
||
## Автоматическая сборка
|
||
|
||
Проект поддерживает автоматическую сборку через Gitea Actions:
|
||
- При каждом push в main создается артефакт с ISO
|
||
- При создании тега автоматически создается релиз
|
||
- Артефакты доступны в разделе Actions
|
||
|
||
## Быстрый старт
|
||
|
||
См. [QUICK_START.md](QUICK_START.md) для краткой инструкции.
|
||
|