87 lines
2.2 KiB
Bash
Executable File
87 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
echo "=== YACBA ISO Builder ==="
|
||
|
||
# Проверяем наличие os.bin
|
||
if [ ! -f "os.bin" ]; then
|
||
echo "[-] os.bin не найден. Сначала соберите проект:"
|
||
echo " ./build.sh или ./docker-build.sh"
|
||
exit 1
|
||
fi
|
||
|
||
if ! command -v genisoimage >/dev/null 2>&1 && ! command -v mkisofs >/dev/null 2>&1; then
|
||
echo "[-] Нужен genisoimage или mkisofs"
|
||
echo "[*] Ubuntu/Debian: apt install genisoimage"
|
||
echo "[*] macOS: brew install cdrtools"
|
||
exit 1
|
||
fi
|
||
|
||
ISO_TOOL="genisoimage"
|
||
if command -v mkisofs >/dev/null 2>&1; then
|
||
ISO_TOOL="mkisofs"
|
||
fi
|
||
|
||
ISO_DIR=$(mktemp -d)
|
||
BOOT_DIR="$ISO_DIR/boot"
|
||
mkdir -p "$BOOT_DIR"
|
||
|
||
echo "[*] Подготавливаем ISO структуру..."
|
||
|
||
cp os.bin "$BOOT_DIR/yacba.bin"
|
||
|
||
cat > "$BOOT_DIR/isolinux.cfg" << 'EOF'
|
||
DEFAULT yacba
|
||
LABEL yacba
|
||
KERNEL yacba.bin
|
||
APPEND
|
||
EOF
|
||
|
||
cat > "$ISO_DIR/README.txt" << 'EOF'
|
||
YACBA - Yet Another Cold Boot Attack
|
||
|
||
Автономная система для cold-boot атак.
|
||
|
||
Для загрузки:
|
||
1. Запишите ISO на CD/DVD/флешку
|
||
2. Загрузитесь с носителя
|
||
3. Система автоматически начнет дамп памяти
|
||
|
||
Проект: https://git.iwakurahome.ru/lain/YACBA
|
||
EOF
|
||
|
||
cp extract_dump.sh "$ISO_DIR/" 2>/dev/null || true
|
||
cp USAGE.txt "$ISO_DIR/" 2>/dev/null || true
|
||
|
||
ISO_NAME="yacba-coldboot-$(date +%Y%m%d).iso"
|
||
|
||
echo "[*] Создаем загрузочный ISO: $ISO_NAME"
|
||
|
||
$ISO_TOOL -o "$ISO_NAME" \
|
||
-b boot/yacba.bin \
|
||
-c boot/boot.cat \
|
||
-no-emul-boot \
|
||
-boot-load-size 4 \
|
||
-boot-info-table \
|
||
-R -J -v -T \
|
||
-V "YACBA_COLDBOOT" \
|
||
"$ISO_DIR"
|
||
|
||
rm -rf "$ISO_DIR"
|
||
|
||
if [ -f "$ISO_NAME" ]; then
|
||
echo "[+] ISO образ создан: $ISO_NAME"
|
||
echo "[*] Размер: $(ls -lh "$ISO_NAME" | awk '{print $5}')"
|
||
echo ""
|
||
echo "=== Использование ==="
|
||
echo "Запись на флешку:"
|
||
echo " sudo dd if=$ISO_NAME of=/dev/sdX bs=1M status=progress"
|
||
echo ""
|
||
echo "Тест в QEMU:"
|
||
echo " qemu-system-i386 -cdrom $ISO_NAME"
|
||
echo ""
|
||
echo "Запись на CD/DVD:"
|
||
echo " cdrecord -v dev=/dev/sr0 $ISO_NAME"
|
||
else
|
||
echo "[-] Ошибка создания ISO"
|
||
exit 1
|
||
fi |