95 lines
2.9 KiB
YAML
95 lines
2.9 KiB
YAML
name: Build YACBA ISO
|
||
|
||
on:
|
||
push:
|
||
branches: [ main, master ]
|
||
pull_request:
|
||
branches: [ main, master ]
|
||
release:
|
||
types: [ created ]
|
||
|
||
jobs:
|
||
build-iso:
|
||
runs-on: ubuntu-latest
|
||
|
||
steps:
|
||
- name: Checkout код
|
||
uses: actions/checkout@v3
|
||
|
||
- name: Установка зависимостей
|
||
run: |
|
||
sudo apt-get update -qq
|
||
sudo apt-get install -y nasm gcc binutils make genisoimage
|
||
|
||
- name: Проверка инструментов
|
||
run: |
|
||
nasm --version
|
||
gcc --version
|
||
genisoimage --version
|
||
|
||
- name: Сборка проекта
|
||
run: |
|
||
echo "=== Сборка YACBA ==="
|
||
make clean || true
|
||
|
||
echo "[*] Сборка загрузчика..."
|
||
nasm -f bin bootloader.asm -o bootloader.bin
|
||
|
||
echo "[*] Сборка ядра..."
|
||
gcc -m32 -ffreestanding -nostdlib -nodefaultlibs -fno-builtin \
|
||
-fno-stack-protector -c kernel.c -o kernel.o
|
||
|
||
echo "[*] Линковка ядра..."
|
||
ld -m elf_i386 -T linker.ld kernel.o -o kernel.bin
|
||
|
||
echo "[*] Создание образа ОС..."
|
||
cat bootloader.bin kernel.bin > os.bin
|
||
truncate -s 1440K os.bin
|
||
|
||
echo "[+] Сборка завершена"
|
||
ls -la *.bin
|
||
|
||
- name: Создание ISO образа
|
||
run: |
|
||
chmod +x build-iso.sh
|
||
./build-iso.sh
|
||
|
||
- name: Проверка ISO
|
||
run: |
|
||
ls -la *.iso
|
||
file *.iso
|
||
|
||
- name: Сохранение артефактов
|
||
uses: actions/upload-artifact@v3
|
||
with:
|
||
name: yacba-iso-${{ github.sha }}
|
||
path: |
|
||
*.iso
|
||
os.bin
|
||
extract_dump.sh
|
||
retention-days: 30
|
||
|
||
- name: Релиз (только для тегов)
|
||
if: startsWith(github.ref, 'refs/tags/')
|
||
uses: actions/create-release@v1
|
||
env:
|
||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||
with:
|
||
tag_name: ${{ github.ref }}
|
||
release_name: YACBA ${{ github.ref }}
|
||
body: |
|
||
Автоматическая сборка YACBA Cold Boot Attack Tool
|
||
|
||
## Файлы:
|
||
- `yacba-coldboot-*.iso` - Загрузочный ISO образ
|
||
- `extract_dump.sh` - Скрипт извлечения дампа
|
||
|
||
## Использование:
|
||
1. Запишите ISO на CD/DVD/флешку
|
||
2. Загрузитесь с носителя на целевой системе
|
||
3. Дождитесь завершения дампа
|
||
4. Используйте extract_dump.sh для анализа
|
||
|
||
⚠️ **Только для образовательных целей!**
|
||
draft: false
|
||
prerelease: false |